名稱:Quartus出租車計(jì)費(fèi)器verilog代碼仿真
軟件:Quartus
語(yǔ)言:Verilog
代碼功能:
出租車計(jì)價(jià)器設(shè)計(jì)要求:
1.在數(shù)碼管上顯示里程和金額,設(shè)置計(jì)價(jià)開(kāi)始開(kāi)關(guān)。
2.假設(shè)以50m/s速度勻速行駛,計(jì)算里程;起步價(jià)3km/10元,之后按2元/m增加。
3.里程顯示兩位數(shù),單位km,小于10km顯示一位整數(shù)和一位小數(shù)(帶小數(shù)點(diǎn)),10km之后顯示兩位整數(shù)。
4. 金額顯示兩位整數(shù),單位為元。
5.在開(kāi)發(fā)板上顯示里程和金額,演示開(kāi)始和停止功能,并驗(yàn)收。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 仿真圖
整體仿真圖
公里脈沖模塊
控制模塊
顯示模塊
部分代碼展示:
module?taxi_fee( input?clk,//標(biāo)準(zhǔn)時(shí)鐘,50M input?reset,//復(fù)位信號(hào),低有效? input?stop,//本次行程結(jié)束,停止計(jì)費(fèi),低有效?--按鍵 input?start,//啟動(dòng)信號(hào),行程開(kāi)始,低有效??--按鍵 output???[7:0]?dig_led_1, output???[3:0]?wei_led_1//高電平點(diǎn)亮,高電平選通 ); wire?wheel_pulse; wire?second_pulse; assign?led_wheel=wheel_pulse; //模塊例化 wire?one_kilometre;//0.1公里產(chǎn)生一次 wire?[15:0]?totel_money;a wire?[9:0]?mileage; //公里脈沖模塊 speed_pulse?U_speed_pulse( .?clk(clk),//標(biāo)準(zhǔn)時(shí)鐘 .?reset(reset),//復(fù)位信號(hào),低有效? .?one_kilometre(one_kilometre)//0.1公里產(chǎn)生一次 ); //控制模塊 taxi_state?U_taxi_state( .?clk(clk),//標(biāo)準(zhǔn)時(shí)鐘 .?reset(reset),//復(fù)位信號(hào),低有效? .?stop(stop),//本次行程結(jié)束,停止計(jì)費(fèi),高有效 .?start(start),//啟動(dòng)信號(hào),行程開(kāi)始,高有效? .?one_kilometre(one_kilometre),//0.1公里產(chǎn)生一次 .?mileage_out(mileage), .?totel_money_out(totel_money)//合計(jì)費(fèi)用 ); //顯示模塊 display?U_display( .?clk(clk),//標(biāo)準(zhǔn)時(shí)鐘 .?reset(reset),//復(fù)位信號(hào),低有效? .?totel_money(totel_money),//費(fèi)用 .?mileage(mileage),//里程 .?dig_led(dig_led_1),//高電平點(diǎn)亮,高電平選通 .?wei_led(wei_led_1) ); endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=400