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

騎行碼數(shù)表設(shè)計(jì)VHDL代碼Quartus仿真

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

2-2505160Z95XX.doc

共1個(gè)文件

名稱:騎行碼數(shù)表設(shè)計(jì)VHDL代碼Quartus仿真

軟件:Quartus

語言:VHDL

代碼功能:

騎行碼數(shù)表設(shè)計(jì)

設(shè)計(jì)一個(gè)騎行碼速表,其功能要求如下:

1、速度和距離:碼速表可以實(shí)時(shí)顯示騎行速度和行駛距離,幫助騎行者了解自己的騎行表現(xiàn)。

2、時(shí)間管理:記錄騎行時(shí)間,幫助騎行者制定和調(diào)整訓(xùn)練計(jì)劃。

其余功能根據(jù)自己調(diào)研情況自由發(fā)揮。

提示:

1、使用頻率為10Hz的時(shí)鐘信號(hào)(頻率太高耗電量高),做一個(gè)時(shí)鐘,用于時(shí)間管理。

2、設(shè)置按鈕,用于顯示切換,時(shí)鐘設(shè)置、數(shù)據(jù)清零、輪轂尺寸設(shè)置等,一個(gè)供系統(tǒng)“復(fù)位”用。

3、顯示使用OLED顯示屏

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

演示視頻:

設(shè)計(jì)文檔:

1、工程文件

2、程序文件

3、程序編譯

4、RTL圖

5、Testbench

6、仿真圖

整體仿真圖

上圖可以看出,總共騎行3分26秒,騎行距離478米。計(jì)算的騎行速度為2.3米每秒

分頻器模塊

模式設(shè)置模塊

輪轂尺寸設(shè)置模塊

控制模塊

顯示模塊

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
???USE?ieee.std_logic_arith.all;
--?控制模塊
ENTITY?control?IS
???PORT?(
??????clk_in??????:?IN?STD_LOGIC;?--?10Hz時(shí)鐘輸入
??????reset???????:?IN?STD_LOGIC;?--?重置信號(hào)
??Wheel_pulse?:?IN?STD_LOGIC;--車輪脈沖,騎行一圈對(duì)應(yīng)一個(gè)脈沖
??????start_key???:?IN?STD_LOGIC;?--開始騎行按鍵
??????end_key?????:?IN?STD_LOGIC;?--?停止騎行按鍵
??????clk_1Hz?????:?IN?STD_LOGIC;?--?1Hz時(shí)鐘信號(hào)
??perimeter???:?IN?STD_LOGIC_VECTOR(11?DOWNTO?0);--輪轂周長(單位cm)
??speed???????:?OUT?STD_LOGIC_VECTOR(11?DOWNTO?0);--速度(米每秒)
??all_distance?:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--里程(米)
??????hour_time???:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);?--?小時(shí)輸出
??????minute_time?:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);?--?分鐘輸出
??????second_time?:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)??--?秒輸出
???);
END?control;
ARCHITECTURE?bahave?OF?control?IS
SIGNAL?time_en????????:?STD_LOGIC;
???SIGNAL?hour???????????:?STD_LOGIC_VECTOR(7?DOWNTO?0)?:=?"00000000";?--?小時(shí)信號(hào)
???SIGNAL?minute?????????:?STD_LOGIC_VECTOR(7?DOWNTO?0)?:=?"00000000";?--?分鐘信號(hào)
???SIGNAL?second?????????:?STD_LOGIC_VECTOR(7?DOWNTO?0)?:=?"00000001";?--?秒信號(hào)
???
???SIGNAL?hour_int???????????:?integer;?--?小時(shí)信號(hào)
???SIGNAL?minute_int?????????:?integer;?--?分鐘信號(hào)
???SIGNAL?second_int?????????:?integer;?--?秒信號(hào)
???
???SIGNAL?distance???:??STD_LOGIC_VECTOR(15?DOWNTO?0);--路程
???SIGNAL?distance_int???:??integer;--路程
???SIGNAL?distance_int_100???:??integer;--路程(米)
???SIGNAL?total_second????:?integer?:=?0;?
???SIGNAL?speed_int?:??integer;--速度
???
BEGIN
--控制計(jì)時(shí)使能信號(hào)
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN?--?檢測(cè)到時(shí)鐘上升沿
?????????IF?(reset?=?'1')?THEN?
????????????time_en?<=?'0';?--?計(jì)時(shí)使能
?????????ELSIF(start_key?=?'1')THEN
time_en?<=?'1';?--?開始計(jì)時(shí)使能
ELSIF(end_key?=?'1')THEN
time_en?<=?'0';?--?停止計(jì)時(shí)使能
END?IF;
END?IF;
???END?PROCESS;

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

  • 2-2505160Z95XX.doc
    下載

相關(guān)推薦