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

數(shù)字秒表VHDL實驗箱驗證精度毫秒可回看

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

1-231019225245Z6.doc

共1個文件

名稱:數(shù)字秒表VHDL精度毫秒可回看(代碼在文末付費下載)

軟件:Quartus

語言:VHDL

代碼功能:

數(shù)字秒表的VHDL設(shè)計,可以顯示秒和毫秒。可以啟動、停止、復(fù)位。要求可以存儲6組時間,可以回看存儲的時間。

本資源內(nèi)含2個工程文件,兩個工程文件功能相同,均能實現(xiàn)上述數(shù)字秒表功能,但是代碼實現(xiàn)方式不同,詳見下述設(shè)計文檔_1和設(shè)計文檔_2.

本代碼已在實驗箱驗證,實驗箱資料:

實驗電路結(jié)構(gòu)圖及芯片引腳對應(yīng)表(1).doc

演示視頻:

FPGA代碼資源下載網(wǎng):hdlcode.com

部分代碼展示

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
--秒表控制模塊
ENTITY?control?IS
???PORT?(
??????clk_in??????????:?IN?STD_LOGIC;--1KHz
??????reset_p???????????:?IN?STD_LOGIC;--復(fù)位
??????key_1???????????:?IN?STD_LOGIC;--啟動
??????key_2???????????:?IN?STD_LOGIC;--停止
??current_state:?OUT?STD_LOGIC_VECTOR(1?DOWNTO?0);--當(dāng)前狀態(tài)
??????Millisecond??:?OUT?STD_LOGIC_VECTOR(11?DOWNTO?0);--毫秒
??????Second???????:?OUT?STD_LOGIC_VECTOR(11?DOWNTO?0)--秒
???);
END?control;
ARCHITECTURE?RTL?OF?control?IS
???SIGNAL?state?:?STD_LOGIC_VECTOR(1?DOWNTO?0)?:=?"00";????--?創(chuàng)建信號???
???constant?S0:?STD_LOGIC_VECTOR(1?DOWNTO?0)?:=?"00";
???constant?S1:?STD_LOGIC_VECTOR(1?DOWNTO?0)?:=?"01";
???constant?S2:?STD_LOGIC_VECTOR(1?DOWNTO?0)?:=?"10";
???constant?S3:?STD_LOGIC_VECTOR(1?DOWNTO?0)?:=?"11";
???SIGNAL?num1?????:?STD_LOGIC_VECTOR(3?DOWNTO?0):=?"0000";
???SIGNAL?num2?????:?STD_LOGIC_VECTOR(3?DOWNTO?0):=?"0000";
???SIGNAL?num3?????:?STD_LOGIC_VECTOR(3?DOWNTO?0):=?"0000";
???SIGNAL?num4?????:?STD_LOGIC_VECTOR(3?DOWNTO?0):=?"0000";
???SIGNAL?num5?????:?STD_LOGIC_VECTOR(3?DOWNTO?0):=?"0000";
???SIGNAL?num6?????:?STD_LOGIC_VECTOR(3?DOWNTO?0):=?"0000";
???
???SIGNAL?haomiao_cnt:?STD_LOGIC_VECTOR(11?DOWNTO?0)?:=?"000000000000";
???SIGNAL?miao_cnt:?STD_LOGIC_VECTOR(11?DOWNTO?0)?:=?"000000000000";
BEGIN
???--計時狀態(tài)機
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????IF?(reset_p?=?'1')?THEN--按下復(fù)位
????????????state?<=?S3;--復(fù)位狀態(tài)
?????????ELSE
????????????CASE?state?IS
???????????????WHEN?S3?=>--復(fù)位狀態(tài)
??????????????????state?<=?S0;
???????????????WHEN?S0?=>--空閑狀態(tài)
??????????????????IF?(key_1?=?'1')?THEN--按下啟動
?????????????????????state?<=?S1;
??????????????????ELSE
?????????????????????state?<=?S0;
??????????????????END?IF;
???????????????WHEN?S1?=>--計時狀態(tài)
??????????????????IF?(key_2?=?'1')?THEN--按下停止
?????????????????????state?<=?S2;
??????????????????ELSE
?????????????????????state?<=?S1;
??????????????????END?IF;
???????????????WHEN?S2?=>--停止?fàn)顟B(tài)
??????????????????state?<=?S2;
???????????????WHEN?OTHERS?=>
????????????END?CASE;
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
????IF?(reset_p?=?'1')?THEN--復(fù)位
????????????num1?<=?"0000";
num2?<=?"0000";
num3?<=?"0000";
num4?<=?"0000";
num5?<=?"0000";
num6?<=?"0000";
?????????ELSIF?(state?=?S1)?THEN--計時狀態(tài)
if(num6="0010"?and?num5="0100"?and?num4="0000"?and?num3="0000"?and?num2="0000"?and?num1="0000")then
num1?<=?num1;
num2?<=?num2;
num3?<=?num3;
num4?<=?num4;
num5?<=?num5;
num6?<=?num6;?
????????????elsif?num1="1001"?then?
num1<="0000";?--此IF語句完成個位十進制計數(shù)
if?num2="1001"?then?
num2<="0000";?--此IF語句完成十位十進制計數(shù)
if?num3="1001"?then?
num3<="0000";?--此IF語句完成百位十進制計數(shù)
if?num4="1001"?then?
num4<="0000";?--此IF語句完成千位十進制計數(shù)
if?num5="1001"?then?
num5<="0000";?--此IF語句完成萬位十進制計數(shù)
if?num6="1001"?then?
num6<="0000";?--此IF語句完成十萬位十進制計數(shù)
else
num6<=num6+"0001";
end?if;
else
num5<=num5+"0001";
end?if;
else?
num4<=num4+"0001";
end?if;
?else?
num3<=num3+"0001";
?end?if;
else?
num2<=num2+"0001";
end?if;
else?
num1<=num1+"0001";
end?if;
end?if;
end?if;
--end?if;
???END?PROCESS;
???
haomiao_cnt<=num3?&?num2?&?num1;--毫秒百十個位
miao_cnt<=num6?&?num5?&?num4;--秒百十個位
???--信號輸出
???Millisecond?<=?haomiao_cnt;
???Second?<=?miao_cnt;
???current_state<=state;
???
END?RTL;

設(shè)計文檔:

設(shè)計文檔_2.doc

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 管腳分配

6. 仿真圖

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

  • 1-231019225245Z6.doc
    下載

相關(guān)推薦