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