名稱(chēng):Quartus汽車(chē)速度表設(shè)計(jì)verilog代碼
軟件:Quartus
語(yǔ)言:Verilog
代碼功能:
汽車(chē)速度表設(shè)計(jì)
設(shè)計(jì)一個(gè)汽車(chē)速度表。車(chē)輪每轉(zhuǎn)一圈會(huì)產(chǎn)生一個(gè)脈沖,每個(gè)脈沖代表1米的距離,根據(jù)單位時(shí)間的脈沖數(shù)可推算出汽車(chē)的速度。
要求:
(1)模擬產(chǎn)生車(chē)輪運(yùn)轉(zhuǎn)產(chǎn)生的脈沖信號(hào)并對(duì)其計(jì)數(shù),用按鍵選擇脈沖信號(hào)的不同頻率;
(2)每隔10秒讀取一次脈沖計(jì)數(shù)器,并據(jù)此計(jì)算車(chē)速;
(3)用數(shù)碼管顯示車(chē)速,單位Km/h;
(4)給出超速警告。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. Testbench
6. 仿真圖
整體仿真圖
控制模塊仿真圖
速度計(jì)算模塊
顯示模塊
超速報(bào)警模塊
部分代碼展示:
//汽車(chē)速度表 module?Speedometer( input?clk,//輸入時(shí)鐘 input?pulse,//傳感器脈沖信號(hào),每個(gè)脈沖1米 output?beep,//超速報(bào)警 output?[5:0]?bit_select,//數(shù)碼管位選 output?[7:0]?seg_select//數(shù)碼管段選 ); wire?clk_en; wire?latch; wire?rst; wire?[16:0]?speed_num;//輸出速度值。XXX.XXKM/h //控制模塊,輸出控制信號(hào) div?i_div( .?clk(clk),//輸入時(shí)鐘1000Hz .?clk_en(clk_en),//輸出10s使能信號(hào) .?latch(latch),//輸出鎖存信號(hào) .?rst(rst)//輸出清零 ); //速度計(jì)算模塊 speed?i_speed( .?clk(clk),//輸入時(shí)鐘1000Hz .?pulse(pulse),//傳感器脈沖信號(hào),每個(gè)脈沖1米 .?clk_en(clk_en),//輸出10s使能信號(hào) .?latch(latch),//輸出鎖存信號(hào) .?rst(rst),//輸出清零 .?speed_num(speed_num)//輸出速度值。XXX.XXKM/h ); //數(shù)碼管顯示模塊 display?i_display( .?clk(clk), .?speed_num(speed_num),//輸出速度值。XXX.XXKM/h .?bit_select(bit_select),//數(shù)碼管位選 .?seg_select(seg_select)//數(shù)碼管段選 ); //超速報(bào)警模塊 alarm?i_alarm( .?clk(clk),//輸入時(shí)鐘1000Hz .?beep(beep),//超速報(bào)警 .?speed_num(speed_num)//輸出速度值。XXX.XXKM/h ); endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=412