• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

汽車速度表設(shè)計AX301開發(fā)板驗證VHDL代碼

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-23111021515Q20.doc

共1個文件

名稱:汽車速度表設(shè)計AX301開發(fā)板驗證VHDL代碼(代碼在文末下載)

軟件:QuartusII

語言:VHDL

代碼功能:

汽車速度表設(shè)計 設(shè)計一個汽車速度表。車輪每轉(zhuǎn)一圈會產(chǎn)生一個脈沖,每個脈沖代表1米的距離,根據(jù)單位時間的脈沖數(shù)可推算出汽車的速度。

要求:

(1)模擬產(chǎn)生車輪運轉(zhuǎn)產(chǎn)生的脈沖信號并對其計數(shù),用按鍵選擇脈沖信號的不同。

(2)每隔10秒讀取一次脈沖計數(shù)器,并據(jù)此計算車速。

(3)用數(shù)碼管顯示車速,單位Km/h。

(4)給出超速警告。

要求.jpg

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在AX301開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

AX301.png

演示視頻:

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

管腳

5. Testbench

6. 仿真圖

按鍵模塊

控制模塊

速度模塊

報警模塊

顯示模塊

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--汽車速度表
ENTITY?Speedometer?IS
???PORT?(
??????clk_50M?????:?IN?STD_LOGIC;--輸入時鐘50MHz
??????key_1??:?IN?STD_LOGIC;--按鍵輸入控制脈沖
key_2??:?IN?STD_LOGIC;--按鍵輸入控制脈沖
key_3??:?IN?STD_LOGIC;--按鍵輸入控制脈沖
??????beep????????:?OUT?STD_LOGIC;--超速報警指示燈
??????bit_select??:?OUT?STD_LOGIC_VECTOR(5?DOWNTO?0);--數(shù)碼管位選
??????seg_select??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--數(shù)碼管段選
???);
END?Speedometer;
ARCHITECTURE?behave?OF?Speedometer?IS
???COMPONENT?speed?IS
??????PORT?(
?????????clk?????????:?IN?STD_LOGIC;
?????????pulse???????:?IN?STD_LOGIC;
?????????clk_en??????:?IN?STD_LOGIC;
?????????latch???????:?IN?STD_LOGIC;
?????????rst?????????:?IN?STD_LOGIC;
?????????speed_num???:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)
??????);
???END?COMPONENT;
???
???COMPONENT?div_freq?IS
??????PORT?(
?????????clk_50M?????:?IN?STD_LOGIC;
?????????clk_1000????:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
???
???COMPONENT?div?IS
??????PORT?(
?????????clk?????????:?IN?STD_LOGIC;
?????????clk_en??????:?OUT?STD_LOGIC;
?????????latch???????:?OUT?STD_LOGIC;
?????????rst?????????:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
???
???COMPONENT?alarm?IS
??????PORT?(
?????????clk?????????:?IN?STD_LOGIC;
?????????beep????????:?OUT?STD_LOGIC;
?????????speed_num???:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0)
??????);
???END?COMPONENT;
???
???COMPONENT?key_ctrl?IS
??????PORT?(
?????????clk?????????:?IN?STD_LOGIC;
??????key_1??:?IN?STD_LOGIC;
key_2??:?IN?STD_LOGIC;
key_3??:?IN?STD_LOGIC;
?????????pulse???????:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
COMPONENT?display?IS
???PORT?(
??????clk?????????:?IN?STD_LOGIC;
??????speed_num???:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);
??????bit_select??:?OUT?STD_LOGIC_VECTOR(5?DOWNTO?0);
??????seg_select??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)
???);
END?COMPONENT;
???
???
???SIGNAL?clk_en???????????:?STD_LOGIC;
???SIGNAL?latch????????????:?STD_LOGIC;
???SIGNAL?rst??????????????:?STD_LOGIC;
???SIGNAL?speed_num????????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
???SIGNAL?pulse????????????:?STD_LOGIC;
???
???SIGNAL?clk??????????????:?STD_LOGIC;
BEGIN
--分頻模塊
???i_div_freq?:?div_freq
??????PORT?MAP?(
?????????clk_50M???=>?clk_50M,
?????????clk_1000??=>?clk
??????);
???
???--clk<=clk_50M;
???--按鍵控制脈沖輸出
???i_key_ctrl?:?key_ctrl
??????PORT?MAP?(
?????????clk????=>?clk,
?????????key_1??=>?key_1,
key_2??=>?key_2,
key_3??=>?key_3,
?????????pulse??=>?pulse
??????);
???
???
???--控制模塊,輸出控制信號
???i_div?:?div
??????PORT?MAP?(
?????????clk?????=>?clk,
?????????clk_en??=>?clk_en,
?????????latch???=>?latch,
?????????rst?????=>?rst
??????);
???
???
???--速度計算模塊
???i_speed?:?speed
??????PORT?MAP?(
?????????clk????????=>?clk,
?????????pulse??????=>?pulse,
?????????clk_en?????=>?clk_en,
?????????latch??????=>?latch,
?????????rst????????=>?rst,
?????????speed_num??=>?speed_num
??????);
???
???
???--數(shù)碼管顯示模塊
???i_display?:?display
??????PORT?MAP?(
?????????clk?????????=>?clk,
?????????speed_num???=>?speed_num,
?????????bit_select??=>?bit_select,
?????????seg_select??=>?seg_select
??????);
???
???
???--超速報警
???i_alarm?:?alarm
??????PORT?MAP?(
?????????clk????????=>?clk,
?????????beep???????=>?beep,
?????????speed_num??=>?speed_num
??????);
???
END?behave;

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=274

  • 1-23111021515Q20.doc
    下載

相關(guān)推薦