名稱(chēng):模塊化設(shè)計(jì)數(shù)字時(shí)鐘Verilog代碼Quartus仿真
軟件:Quartus
語(yǔ)言:Verilog
代碼功能:
模塊化設(shè)計(jì)數(shù)字時(shí)鐘
設(shè)計(jì)數(shù)字鐘,要求如下:
1、23:01:33 24小時(shí)制
整個(gè)數(shù)字鐘端口列表:
clk,輸入,外部時(shí)鐘信號(hào),假設(shè)為50MHz
clr,輸入,清零信號(hào),低電平有效
seg_atog[6:0]輸出信號(hào),用于驅(qū)動(dòng)7段數(shù)碼管,高電平有效
an[5:0]輸出信號(hào),用于使能每個(gè)7段數(shù)碼管,低電平有效,分別連接6個(gè)7段數(shù)碼管的com端
dp輸出信號(hào),小數(shù)點(diǎn),用于模擬時(shí)間分隔符:
2、設(shè)計(jì)分頻電路,產(chǎn)生1s輸出時(shí)鐘
根據(jù)所選板卡外部時(shí)鐘進(jìn)行分頻,或根據(jù)仿真時(shí)間單位進(jìn)行分頻
模塊名clk_div_1s
3、仿照74160端口及功能設(shè)計(jì)4位10進(jìn)制計(jì)數(shù)器模塊,模塊名counter_10,實(shí)例化組成數(shù)字鐘計(jì)數(shù)電路
端口列表:
輸入clk、上升沿觸發(fā)
clr、低電平使能
en、高電平使能
ld、低電平使能
輸出Q[3:0]
Cout 進(jìn)位
4、設(shè)計(jì)七段顯示譯碼器,模塊名seg7
輸入:d[3:0]要顯示數(shù)字的8421BCD碼
en使能
輸出:seg_atog[6:0],[0]-a,[6]-g
dp 小數(shù)點(diǎn)
5、seg7decimal模塊
本模塊作用在于將數(shù)字鐘計(jì)時(shí)電路中每位十進(jìn)制數(shù)字(共6位,例如23:01:33)轉(zhuǎn)換為7段led顯示驅(qū)動(dòng)碼(6個(gè)7段led顯示器分時(shí)復(fù)用)
clk,輸入,外部時(shí)鐘信號(hào),假設(shè)為50MHz
clr,輸入,清零信號(hào),低電平有效
Q[23:0]4位對(duì)應(yīng)1個(gè)74160計(jì)數(shù)器模塊
seg_atog[6:0]輸出信號(hào),用于驅(qū)動(dòng)7段數(shù)碼管,高電平有效
an[5:0]輸出信號(hào),用于使能每個(gè)7段數(shù)碼管,低電平有效,分別連接6個(gè)7段數(shù)碼管的com端
dp輸出信號(hào),小數(shù)點(diǎn),用于模擬時(shí)間分隔符:
5、整個(gè)設(shè)計(jì)框架為:由分頻電路產(chǎn)生1s時(shí)鐘脈沖,經(jīng)過(guò)秒鐘計(jì)數(shù),將秒鐘計(jì)數(shù)進(jìn)位信號(hào)輸出給分鐘計(jì)數(shù)電路,再將分鐘計(jì)數(shù)進(jìn)位信號(hào)輸出給小時(shí)計(jì)數(shù)電路,再
利用seg7decimal模塊驅(qū)動(dòng)2位小時(shí)、2位分鐘、2位秒鐘顯示數(shù)字
6、要求編寫(xiě)測(cè)試模塊,進(jìn)行功能仿真測(cè)試
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
部分代碼展示:
//數(shù)字鐘 module?clock( inputclk,//輸入,外部時(shí)鐘信號(hào),假設(shè)為50MHz inputclr,//輸入,清零信號(hào),低電平有效 output[6:0]seg_atog,//輸出信號(hào),用于驅(qū)動(dòng)7段數(shù)碼管,高電平有效 output[5:0]an,//輸出信號(hào),用于使能每個(gè)7段數(shù)碼管,低電平有效,分別連接6個(gè)7段數(shù)碼管的com端 outputdp//輸出信號(hào),小數(shù)點(diǎn),用于模擬時(shí)間分隔符:? ); wire?clk_1hz; wire?cout_second; wire?cout_minute; wire?[3:0]?cnt_ten_second;//計(jì)數(shù)值十位 wire?[3:0]?cnt_one_second;//計(jì)數(shù)值個(gè)位 wire?[3:0]?cnt_ten_minute;//計(jì)數(shù)值十位 wire?[3:0]?cnt_one_minute;//計(jì)數(shù)值個(gè)位 wire?[3:0]?cnt_ten_hour;//計(jì)數(shù)值十位 wire?[3:0]?cnt_one_hour;//計(jì)數(shù)值個(gè)位 wire?[23:0]Q;//4位對(duì)應(yīng)1個(gè)74160計(jì)數(shù)器模塊 assign?Q={cnt_ten_hour,cnt_one_hour,cnt_ten_minute,cnt_one_minute,cnt_ten_second,cnt_one_second}; //分頻電路,產(chǎn)生1s輸出時(shí)鐘 clk_div_1s?i_clk_div_1s( .clk(clk),//輸入,外部時(shí)鐘信號(hào),假設(shè)為50MHz .clr(clr),//輸入,清零信號(hào),低電平有效 .clk_1hz(clk_1hz)?//1s輸出時(shí)鐘 );
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1312