名稱:出租車計費器控制電路設計VHDL代碼Quartus? AX301開發(fā)板
軟件:Quartus
語言:VHDL
代碼功能:
CPLD為復雜可編程邏輯器件,通過EDA技術(shù)對其進行編程,可將一個較復雜的數(shù)字系統(tǒng)集成于一個芯片中,制成專用集成電路芯片,并可隨時在系統(tǒng)修改其邏輯功能。并最終完成電路的編程調(diào)試。具體要求如下:
1.?實現(xiàn)計費功能,計費標準為:按行駛里程計費,起步價為7元,并在車行3Km后按2元/Km計費,當計費器達到或超過20元時,每公里加收50%的車費,車停止不計費。
2.?現(xiàn)場模擬功能:能模擬汽車起動、停止、暫停以及加速等狀態(tài)。
3.?用BCD碼將車費和路程顯示出來。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在AX301開發(fā)板驗證,AX301開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 編譯
4. RTL圖
5. Testbench
6. 仿真圖
部分代碼展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --數(shù)碼管顯示模塊 ENTITY?segment_ctrl?IS ???PORT?( ??????clk????????????:?IN?STD_LOGIC;--時鐘 ?????? ??????Kmmoney_L????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);----金額十分位,合計費用?HML=xxx?(BCD碼顯示) ??????Kmmoney_M????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--金額個位 ??????Kmmoney_H????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--金額十位 ??????--總路程,里程范圍為HL=0~99(BCD碼顯示) ??????Kmcount_H????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--里程十位 ??????Kmcount_L????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--里程個位 ?????? ??????bit_select?????:?OUT?STD_LOGIC_VECTOR(5?DOWNTO?0);--數(shù)碼管位選 ??????seg_select?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--數(shù)碼管段選 ???); END?segment_ctrl; ARCHITECTURE?trans?OF?segment_ctrl?IS ??? ???SIGNAL?display_num?:?STD_LOGIC_VECTOR(3?DOWNTO?0)?:=?"0000"; ??? ???SIGNAL?select_bit??:?STD_LOGIC_VECTOR(15?DOWNTO?0)?:=?"0000000000000000"; ???SIGNAL?geshu???????:?STD_LOGIC_VECTOR(2?DOWNTO?0)?:=?"000"; BEGIN ??? --位選-- ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ????????? ?????????IF?(select_bit?=?"1111111111111111")?THEN--掃描頻率 ????????????select_bit?<=?"0000000000000000"; ?????????ELSE ????????????select_bit?<=?select_bit?+?"0000000000000001";--掃描頻率計時數(shù)字 ?????????END?IF; ??????END?IF; ???END?PROCESS;
閱讀全文