国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用至簡設計法的數字時鐘設計

電子設計 ? 來源:網絡整理 ? 作者:工程師1 ? 2018-05-24 10:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數字時鐘是常見的畢業設計題目。我們做畢業設計時,一般使用數碼管來顯示數字。小時、分鐘和秒鐘各兩位數字,所以需要用到6位的數碼管。

如果平時不動手,要做這個畢業設計,很多人都會覺得挺難的。收集到的代碼,其風格也是五花八門,第一感覺是貌似能看懂,但就是不知道怎么設計出來的。

其實如果有正確的設計思路和方法,其實現起來是非常簡單的。下面我們就核心的數字模塊為例,講解如何使用至簡設計法來實現。

數字模塊的功能,是產生6個信號,分別表示時十位、時個位、分十位、分個位、秒十位和秒個位的值。例如上述信號值依次為2、1、4、3、5、9時,則表示時間為21點43分59秒。

仔細觀察6個信號,每個單獨來看,其數字都是遞增的,增加到一定數后就清零。以秒個位為例,開始時值為0,然后是1、2、3依次增加,直到變成9后,然后變成0,再次循環。其他信號都是相同的規律。這些依次遞增的信號,就是計數器。

我們認識到這些信號是計數器,那就好辦了。計數器設計只需要考慮兩點,什么時候加1和要數多少個,明確這兩個問題后,剩下的就是套用計數器模板了。

以秒個位這個計數器為例,這個計數器加1的條件是什么呢?到了1秒就加1。那我們怎么知道1秒鐘時間到了呢?FPGA是通過數時鐘周期數來確定時間的。例如下圖,假設時鐘頻率是50MHz,即時鐘周期是20ns,cnt是每個時鐘加1,則當cnt==99時,就說明數了100個時鐘周期,也就是時間是100*20=2000ns了。

同樣的道理,1秒鐘時間,我們就是數1s/20ns= 50_000_000個時鐘周期。我們也認識到這個cnt也是計數器,其加1條件是“1”,要數50_000_000個數。我們套用計數器模塊,即有下面代碼。

always @(posedge clk or negedge rst_n)begin

if(!rst_n)begin

cnt 《= 0;

end

else if(add_cnt)begin

if(end_cnt)

cnt 《= 0;

else

cnt 《= cnt + 1;

end

end

assign add_cnt = 1 ;

assign end_cnt = add_cnt && cnt== 50_000_000-1;

代碼中,always語句除了名字后,完全套用模板,不用更改。加1條件體現在第13行,要數多少個體現在第14行。

確定了cnt后,那么秒個位的加1條件就非常明確了,就是cnt數到50_000_000個,也就是end_cnt有效的時候。所以秒個位的加1條件是end_cnt。

秒個位要數多少個數字呢?由0到9,因此有10個。

綜上所述,我們得到秒個位的代碼如下表。

always@(posedge clk or negedge rst_n)begin

if(rst_n==1‘b0)begin

miao_g 《= 0;

end

else if(add_miao_g)begin

if(end_miao_g)

miao_g 《= 0;

else

miao_g 《= miao_g + 1;

end

end

assign add_miao_g = end_cnt;

assign end_miao_g = add_miao_g && miao_g == 10-1;

用類似于秒個位的思考方法,我們可以得到秒十位、分個位、分十位、時個位和時十位的代碼,完整的代碼如下表。

always @(posedge clk or negedge rst_n)begin

if(!rst_n)begin

cnt 《= 0;

end

else if(add_cnt)begin

if(end_cnt)

cnt 《= 0;

else

cnt 《= cnt + 1;

end

end

assign add_cnt = 1 ;

assign end_cnt = add_cnt && cnt== 50_000_000-1;

always@(posedge clk or negedge rst_n)begin

if(rst_n==1’b0)begin

miao_g 《= 0;

end

else if(add_miao_g)begin

if(end_miao_g)begin

miao_g 《= 0;

end

else begin

miao_g 《= miao_g + 1;

end

end

end

assign add_miao_g = end_cnt;

assign end_miao_g = add_miao_g && miao_g == 10-1;

always @(posedge clk or negedge rst_n)begin

if(rst_n==1‘b0)begin

miao_s 《= 0;

end

else if(add_miao_s)begin

if(end_miao_s)begin

miao_s 《= 0;

end

else begin

miao_s 《= miao_s + 1;

end

end

end

assign add_miao_s = end_miao_g;

assign end_miao_s = add_miao_s && miao_s == 6-1;

always @(posedge clk or negedge rst_n)begin

if(rst_n==1’b0)begin

fen_g 《= 0;

end

else if(add_fen_g)begin

if(end_fen_g)begin

fen_g 《= 0;

end

else begin

fen_g 《= fen_g + 1;

end

end

end

assign add_fen_g = end_miao_s;

assign end_fen_g = add_fen_g && fen_g == 10-1;

always @(posedge clk or negedge rst_n)begin

if(rst_n==1‘b0)begin

fen_s 《= 0;

end

else if(add_fen_s)begin

if(end_fen_s)begin

fen_s 《= 0;

end

else begin

fen_s 《= fen_s + 1;

end

end

end

assign add_fen_s = end_fen_g;

assign end_fen_s = add_fen_s && fen_s == 6-1;

always @(posedge clk or negedge rst_n)begin

if(rst_n==1’b0)begin

shi_g 《= 0;

end

else if(add_shi_g)begin

if(end_shi_g)begin

shi_g 《= 0;

end

else begin

shi_g 《= shi_g + 1;

end

end

end

assign add_shi_g = end_fen_s;

assign end_shi_g = add_shi_g && shi_g ==x-1;

always @(posedge clk or negedge rst_n)begin

if(rst_n==1‘b0)begin

shi_s 《= 0;

end

else if(add_shi_s)begin

if(end_shi_s)begin

shi_s 《= 0;

end

else begin

shi_s 《= shi_s + 1;

end

end

end

assign add_shi_s = end_shi_g;

assign end_shi_s = add_shi_s && shi_s == 3-1;

always@(*)begin

if(shi_s==2)

x =4;

else

x =10;

end

細心的讀者可以發現,上面每段計數器格式都非常相似。沒錯,這就是技巧。我們設計的這套模板,基本上可以應用于任何場合,任何時候讀者只考慮兩個因素就夠了,不會出現丟三落四的情況,而且每次只需要考慮一個因素,保證能做出最優的設計。

對了,上面代碼中,我們沒有補充信號定義這些。其實我們認為這些信號定義純屬體力勞動,是根本就不需要學習的,所以我們就沒列出來。讀者有興趣可必補充。另外加上數碼管譯碼電路,那么一個完整的數字時鐘代碼就出來了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計數器
    +關注

    關注

    32

    文章

    2315

    瀏覽量

    98172
  • 數字時鐘
    +關注

    關注

    2

    文章

    154

    瀏覽量

    21529
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    探索CDC1104:14可配置時鐘緩沖器的卓越性能

    探索CDC1104:14可配置時鐘緩沖器的卓越性能 在電子設備的設計中,時鐘緩沖器起著至關重要的作用,它能確保時鐘信號的穩定傳輸和分配。今天,我們就來深入了解德州儀器(TI)的CDC
    的頭像 發表于 02-09 11:05 ?146次閱讀

    RE時鐘高次諧波解決方案

    一前言時鐘信號是時序邏輯的基礎,它作為數字電路系統的心臟,在數字電路中具有重要意義。時鐘信號在數字系統中并非完美的方波,其快速邊沿(上升/下
    的頭像 發表于 12-23 11:34 ?384次閱讀
    RE<b class='flag-5'>時鐘</b>高次諧波解決方案

    貼片電阻的標與誤差解析

    、貼片電阻的標法規則:數字與字母的密碼本 貼片電阻的標識方法因尺寸和精度不同而有所差異,主要分為 數字 和 字母數字混合標 兩類。 1
    的頭像 發表于 12-19 14:51 ?674次閱讀
    貼片電阻的標<b class='flag-5'>法</b>與誤差解析

    NTP子母鐘系統、數字時鐘系統、NTP校時

    數字時鐘
    西安同步電子科技有限公司
    發布于 :2025年11月12日 17:02:04

    CPT原子鐘、銣鐘、原子時鐘

    數字時鐘
    西安同步電子科技有限公司
    發布于 :2025年11月12日 16:55:17

    微秒級數字時鐘

    時鐘分配儀器儀表
    西安同步電子科技有限公司
    發布于 :2025年10月22日 10:46:06

    微秒級標準數字時鐘

    時鐘分配儀器儀表
    西安同步電子科技有限公司
    發布于 :2025年10月22日 10:45:50

    毫秒級標準數字時鐘

    時鐘分配儀器儀表
    西安同步電子科技有限公司
    發布于 :2025年10月22日 10:45:34

    ?CDCBT1001 1.2V1.8V時鐘緩沖器與電平轉換器技術文檔總結

    該CDCBT1001是1.2 V1.8 V時鐘緩沖器和電平轉換器。VDD_IN引腳電源電壓定義輸入LVCMOS時鐘電平。VDD_OUT引腳電源電壓定義輸出LVCMOS時鐘電平。VDD
    的頭像 發表于 09-11 13:54 ?951次閱讀
    ?CDCBT1001 1.2V<b class='flag-5'>至</b>1.8V<b class='flag-5'>時鐘</b>緩沖器與電平轉換器技術文檔總結

    1710 2020 MHz 數字可變增益低噪聲放大器 skyworksinc

    電子發燒友網為你提供()1710 2020 MHz 數字可變增益低噪聲放大器相關產品參數、數據手冊,更有1710 2020 MHz 數字可變增益低噪聲放大器的引腳圖、接線圖、封
    發表于 08-21 18:33
    1710 <b class='flag-5'>至</b> 2020 MHz <b class='flag-5'>數字</b>可變增益低噪聲放大器 skyworksinc

    703 915 MHz 數字可變增益低噪聲放大器 skyworksinc

    電子發燒友網為你提供()703 915 MHz 數字可變增益低噪聲放大器相關產品參數、數據手冊,更有703 915 MHz 數字可變增益低噪聲放大器的引腳圖、接線圖、封裝手冊、
    發表于 08-21 18:32
    703 <b class='flag-5'>至</b> 915 MHz <b class='flag-5'>數字</b>可變增益低噪聲放大器 skyworksinc

    648 849 MHz 數字可變增益低噪聲放大器 skyworksinc

    電子發燒友網為你提供()648 849 MHz 數字可變增益低噪聲放大器相關產品參數、數據手冊,更有648 849 MHz 數字可變增益低噪聲放大器的引腳圖、接線圖、封裝手冊、
    發表于 08-21 18:31
    648 <b class='flag-5'>至</b> 849 MHz <b class='flag-5'>數字</b>可變增益低噪聲放大器 skyworksinc

    Analog Devices Inc. AD9546雙通道DPLL 數字化時鐘同步器數據手冊

    Analog Devices Inc. AD9546雙通道DPLL數字化時鐘同步器結合了數字化時鐘技術,可在系統中高效傳輸和分配時鐘信號。AD9546上的數字化時鐘支持設計具有良好控制
    的頭像 發表于 07-01 09:53 ?742次閱讀
    Analog Devices Inc. AD9546雙通道DPLL <b class='flag-5'>數字化時鐘</b>同步器數據手冊

    儀科技出席AI+智能儀器高校研修會暨教師交流會

    此前,2025年4月19日20日,由江蘇省儀器儀表學會主辦、東南大學承辦、上海儀科技有限公司(以下簡稱“儀“),上海華用電子科技有限公司作為支持企業的“AI+智能儀器高校研修會暨教師交流會”在東南大學四牌樓校區隆重舉行。
    的頭像 發表于 04-23 16:22 ?932次閱讀

    AD9546雙DPLL數字時鐘同步器技術手冊

    AD9546 采用數字化時鐘技術,可在系統中高效傳輸和分配時鐘信號。數字化時鐘具有設計靈活性,且可使用可擴展的時鐘傳輸系統,并具有良好的相位(時間)對齊控制。這些特性使 AD9546
    的頭像 發表于 04-09 15:11 ?1106次閱讀
    AD9546雙DPLL<b class='flag-5'>數字</b><b class='flag-5'>時鐘</b>同步器技術手冊