名稱:DE2-70開發(fā)板出租車計費器verilog計價器(代碼在文末下載)
軟件:Quartus II
語言:Verilog
代碼功能:
一個出租車計價系統(tǒng)。
完成的功能是前3公里內(nèi)收費10元,超過3公里按每公里2元收費。
同時記錄等待時間,累計等待時間超過5分鐘則加3元,以此類推。
若總公里數(shù)超過20公里,需加收10元空載返程費。
公里數(shù)、等待時間、費用均需顯示在數(shù)碼管上。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
部分代碼展示:
module?taxi_fee( input?clk,//標(biāo)準(zhǔn)時鐘,clock0=50M input?reset,//復(fù)位信號 input?stop,//中途暫停 input?start,//啟動信號,行程開始,高有效? //等待時間 output???[7:0]?HEX0,//數(shù)碼管-低亮 output???[7:0]?HEX1,//數(shù)碼管-低亮 //總路程,里程范圍為HL=0~99(BCD碼顯示) output???[7:0]?HEX2,//數(shù)碼管-低亮 output???[7:0]?HEX3,//數(shù)碼管-低亮 //合計費用?HML=xxx?(BCD碼顯示) output???[7:0]?HEX4,//數(shù)碼管-低亮 output???[7:0]?HEX5,//數(shù)碼管-低亮 output???[7:0]?HEX6//數(shù)碼管-低亮 ); wire?one_kilometre;//1公里產(chǎn)生一次脈沖 wire?[15:0]?totel_money; wire?[7:0]?mileage; wire?[7:0]?minute;//等待時間 wire?stop_negedge; wire?start_negedge; //消抖模塊 key_jitter?i1_key_jitter( .?clkin(clk),???? .?key_in(stop),//輸入 .?key_negedge(stop_negedge)//消抖后按鍵下降沿 ); //消抖模塊 key_jitter?i2_key_jitter( .?clkin(clk),???? .?key_in(start),//輸入 .?key_negedge(start_negedge)//消抖后按鍵下降沿 ); speed_pulse?U_speed_pulse( .?clk(clk),//標(biāo)準(zhǔn)時鐘,50MHz .?reset(~reset),//復(fù)位信號,低有效? .?one_kilometre(one_kilometre)//1公里產(chǎn)生一次脈沖 ); taxi_state?U_taxi_state( .?clk(clk),//標(biāo)準(zhǔn)時鐘,50Mhz? .?reset(~reset),//復(fù)位信號 .?stop(stop_negedge),//中途暫停 .?start(start_negedge),//啟動信號,行程開始,高有效? .?one_kilometre(one_kilometre),//1公里產(chǎn)生一次脈沖 .?minute(minute), .?mileage_out(mileage),//里程 .?totel_money_out(totel_money)//合計費用 ); display?U_display( .?clk(clk),//標(biāo)準(zhǔn)時鐘,50Mhz? .?totel_money(totel_money),//費用 .?mileage(mileage),//里程 .?minute(minute), .?HEX0(HEX0),//數(shù)碼管-低亮 .?HEX1(HEX1),//數(shù)碼管-低亮 .?HEX2(HEX2),//數(shù)碼管-低亮 .?HEX3(HEX3),?//數(shù)碼管-低亮 .?HEX4(HEX4),//數(shù)碼管-低亮 .?HEX5(HEX5),?//數(shù)碼管-低亮 .?HEX6(HEX6)?//數(shù)碼管-低亮 ); endmodule
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. Testbench
7. 仿真圖
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=258
閱讀全文