名稱:秒表計(jì)時(shí)器Verilog代碼Quartus? 小腳丫開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
基本要求:設(shè)計(jì)0.0秒至9.9秒(小數(shù)點(diǎn)需顯示)的秒表計(jì)時(shí)器,計(jì)時(shí)精度為0.1秒,具備復(fù)位清零和暫停功能。
一個(gè)可以計(jì)時(shí)9.9秒的計(jì)時(shí)器實(shí)際上就是一個(gè)99進(jìn)制的計(jì)數(shù)器,它意味著兩個(gè)數(shù)碼管需要以循環(huán)的方式將0.0,0.1,9.9等數(shù)字依次顯示,且間隔時(shí)間為0.1秒,如下圖所示。
擴(kuò)展要求:
(1)計(jì)時(shí)到9.9秒時(shí),秒表自動(dòng)暫停,并在數(shù)碼管上顯示9.9。
(2)自行設(shè)計(jì)的其他功能,如發(fā)光二極管閃爍、可通過按鍵設(shè)定暫停時(shí)間等。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在小腳丫開發(fā)板驗(yàn)證,小腳丫開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. Testbench
7. 仿真圖
部分代碼展示:
//秒表 module?stopwatch( input?clk,//時(shí)鐘 input?reset_n,//復(fù)位 input?stop_n,//暫停 input?start_n,//開始 output?[1:0]?SEG_DIG, output?[7:0]?seg_1,//數(shù)碼管 output?[7:0]?seg_2,//數(shù)碼管 output?led//led閃爍 ); wire?[7:0]?cnt_time;//計(jì)時(shí)值 wire?clk_10Hz; //分頻模塊 clk_div?i_clk_div( .?clk(clk),//12M .?clk_10Hz(clk_10Hz) ); //控制模塊 stopwatch_ctrl?i_stopwatch_ctrl( .?clk(clk),//12M .?clk_10Hz(clk_10Hz),//10Hz .?reset_n(reset_n),//復(fù)位 .?stop_n(stop_n),//暫停 .?start_n(start_n),//開始 .?cnt_time(cnt_time),//計(jì)時(shí)值 .?led(led)//led閃爍 ); //顯示模塊 display?i_display( .?clk(clk),//12MHz .?cnt_time(cnt_time),//計(jì)時(shí)值 .?SEG_DIG(SEG_DIG), .?seg_1(seg_1),//數(shù)碼管 .?seg_2(seg_2)//數(shù)碼管 ); endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=436