在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取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

    文章

    2278

    瀏覽量

    95620
  • 數字時鐘
    +關注

    關注

    2

    文章

    153

    瀏覽量

    20606
收藏 2人收藏
  • 假如QQ会变老1

評論

相關推薦

標準網絡時鐘系統:數字時代的通用語法

特效與舞臺燈光保持幀級對齊——這些突破物理界限的協作,都依賴著數字世界的基礎語法:標準網絡時鐘系統。 數字世界的巴別塔解藥 ? ? ? 物聯網設備每秒產生2.5億個帶時間戳的數據點,但若缺乏統一標準,就像全球機場使用不同時區:工
的頭像 發表于 03-03 10:08 ?165次閱讀

數字時鐘系統:城市脈動中的無聲指揮家

數字時鐘從孤立設備進化為智能節點,它承載的功能已超越計時本身。這些跳動的數字如同現代社會的標點符號,在廠房、街巷、云端劃定出精密的時間網格,讓龐雜的都市系統得以和諧共振。
的頭像 發表于 03-02 09:35 ?220次閱讀

基于FPGA的數字時鐘設計

本次的設計的數字鐘思路描述如下,使用3個key按鍵,上電后,需要先配置數字時鐘的時分秒,設計一個按鍵來控制數字時鐘的時,第二個按鍵來控制
的頭像 發表于 01-21 10:29 ?339次閱讀
基于FPGA的<b class='flag-5'>數字</b><b class='flag-5'>時鐘</b>設計

京準科技科普:數字化校園網絡時鐘系統建設

京準科技科普:數字化校園網絡時鐘系統建設
的頭像 發表于 10-29 16:02 ?406次閱讀
京準科技科普:<b class='flag-5'>數字</b>化校園網絡<b class='flag-5'>時鐘</b>系統建設

京準電鐘:校園體育場館數字化NTP網絡時鐘系統

京準電鐘:校園體育場館數字化NTP網絡時鐘系統
的頭像 發表于 09-24 11:10 ?489次閱讀
京準電鐘:校園體育場館<b class='flag-5'>數字</b>化NTP網絡<b class='flag-5'>時鐘</b>系統

隔離式調制器與MCU之間的數字接口的時鐘邊沿延遲補償

電子發燒友網站提供《隔離式調制器與MCU之間的數字接口的時鐘邊沿延遲補償.pdf》資料免費下載
發表于 09-06 11:18 ?0次下載
隔離式調制器與MCU之間的<b class='flag-5'>數字</b>接口的<b class='flag-5'>時鐘</b>邊沿延遲補償

用于3D圖像的14可配置時鐘緩沖器數據表

電子發燒友網站提供《用于3D圖像的14可配置時鐘緩沖器數據表.pdf》資料免費下載
發表于 08-23 10:43 ?0次下載
用于3D圖像的1<b class='flag-5'>至</b>4可配置<b class='flag-5'>時鐘</b>緩沖器數據表

CDC23511線10線時鐘驅動器數據表

電子發燒友網站提供《CDC23511線10線時鐘驅動器數據表.pdf》資料免費下載
發表于 08-21 10:45 ?0次下載
CDC23511線<b class='flag-5'>至</b>10線<b class='flag-5'>時鐘</b>驅動器數據表

時鐘抖動和時鐘偏移的區別

時鐘抖動(Jitter)和時鐘偏移(Skew)是數字電路設計中兩個重要的概念,它們對電路的時序性能和穩定性有著顯著的影響。下面將從定義、原因、影響以及應對策略等方面詳細闡述時鐘抖動和
的頭像 發表于 08-19 18:11 ?1630次閱讀

DS90LV110T 110 LVDS數據/時鐘分配器數據表

電子發燒友網站提供《DS90LV110T 110 LVDS數據/時鐘分配器數據表.pdf》資料免費下載
發表于 07-05 11:37 ?0次下載
DS90LV110T 1<b class='flag-5'>至</b>10 LVDS數據/<b class='flag-5'>時鐘</b>分配器數據表

DS90LV110AT 110 LVDS數據/時鐘分配器數據表

電子發燒友網站提供《DS90LV110AT 110 LVDS數據/時鐘分配器數據表.pdf》資料免費下載
發表于 07-05 11:34 ?0次下載
DS90LV110AT 1<b class='flag-5'>至</b>10 LVDS數據/<b class='flag-5'>時鐘</b>分配器數據表

京準科技:NTP數字時鐘同步系統(子母鐘)用途及特點

京準科技:NTP數字時鐘同步系統(子母鐘)用途及特點
的頭像 發表于 05-30 10:42 ?986次閱讀

示波器的極模式和全功能模式

我們經常會發現主流的數字示波器的功能菜單使用比較麻煩,需要多次點擊按鈕的組合并在多級菜單里進行選擇。所以LOTO虛擬示波器的上位機軟件完全按照不同的思路設計,盡量讓功能按鈕在界面上隨手能操作。但是
發表于 05-16 11:29

儀推出多功能隔離數字IO模塊PXIe-7131

近日,儀公司正式發布了全新的多功能隔離數字IO模塊——PXIe-7131。這款革命性的產品以其出色的性能和廣泛的應用場景,受到了業界的高度關注。
的頭像 發表于 05-15 10:36 ?786次閱讀

實時時鐘模塊RX8901CE具有數字溫度補償功能,助力工業設備實現精準控制

使用帶數字溫度補償特性的實時時鐘模塊來完成設計。實時時鐘模塊通過數字信號接口完成時鐘信號交互,根據溫度的變化在模塊內部將溫度相關的模擬量轉換
發表于 04-09 17:23 ?0次下載

電子發燒友

中國電子工程師最喜歡的網站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品
主站蜘蛛池模板: 尤物啪啪| 一级在线免费视频 | 美脚连裤袜老师正在播放 | 色多多高清在线观看视频www | 午夜欧美精品 | 亚洲 欧美 自拍 另类 欧美 | 精品三级在线观看 | 成人男女啪啪免费观看网站 | 色五月婷婷成人网 | 色视频网站在线观看 | 天堂网bt | 狠狠色依依成人婷婷九月 | 在线免费黄色 | 美女扒开尿口让男人30视频 | 国产三级中文字幕 | 香蕉狠狠再啪线视频 | 免费的很黄很色的床小视频 | 99热色| 日本三级香港三级人妇99 | 免费抓胸吻胸激烈视频网站 | 在线视频永久在线视频 | 男人透女人超爽视频免费 | 天天爽夜夜春 | 久操久操久操 | 久久天天躁狠狠躁夜夜爽蜜月 | 天堂网www在线 | 手机在线免费观看视频 | 国产三级在线观看免费 | 1024你懂的国产欧美日韩在 | 777成了人乱视频 | 手机看片日韩国产 | 亚洲福利一区二区三区 | 欧美成人性高清观看 | 午夜插| 中国成人免费视频 | 97人人揉人人捏人人添 | 四虎永久在线精品影院 | 免费一级欧美片片线观看 | www天堂网| 欧美特级午夜一区二区三区 | 免费在线成人网 |