名稱(chēng):數(shù)字鐘VHDL電子時(shí)鐘DE1-SOC開(kāi)發(fā)板數(shù)字時(shí)鐘(代碼在文末下載)
軟件:Quartus II
語(yǔ)言:VHDL
代碼功能:
1、設(shè)計(jì)數(shù)字鐘功能,可以通過(guò)數(shù)碼管顯示時(shí)分秒。
2、可以通過(guò)按鍵修改小時(shí)、分鐘。
3、具有整點(diǎn)報(bào)時(shí)功能。
本代碼已在DE1-SOC開(kāi)發(fā)板驗(yàn)證,開(kāi)發(fā)板如下,其他開(kāi)發(fā)板可以修改管腳適配:
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
部分代碼展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; --數(shù)字鐘 ENTITY?Digital_clock_A111417?IS ???PORT?( ??????clk_in????:?IN?STD_LOGIC;--50MHz ??????bell_out???:?OUT?STD_LOGIC;--整點(diǎn)報(bào)時(shí)蜂鳴器,BELL?當(dāng)?I/O15?為低電平時(shí)?BELL?發(fā)出嘟嘟的聲音 key_hour???:?IN?STD_LOGIC;--修改小時(shí) key_minute?:?IN?STD_LOGIC;--修改分鐘 ??????--6個(gè)數(shù)碼管 ??????HEX0???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX1???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX2???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX3???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX4???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX5???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0) ???); END?Digital_clock_A111417; ARCHITECTURE?trans?OF?Digital_clock_A111417?IS --模塊聲明 ???COMPONENT?Bell?IS ??????PORT?( ?????????clk_in????:?IN?STD_LOGIC; ?????????hour_time??:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?????????minute_time?:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?????????second_time?:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?????????bell_out???:?OUT?STD_LOGIC ??????); ???END?COMPONENT; ??? --數(shù)碼管顯示模塊 COMPONENT?HEX?IS ???PORT?( ??????clk????:?IN?STD_LOGIC; ??????hour_time??????????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--時(shí) ??????minute_time????????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--分 ??????second_time????????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--秒 ??????--6個(gè)數(shù)碼管 ??????HEX0???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX1???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX2???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX3???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX4???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ??????HEX5???:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0) ???); END?COMPONENT; ??? ???COMPONENT?fenping?IS ??????PORT?( ?????????clk_in????:?IN?STD_LOGIC; ?????????clk_1Hz????:?OUT?STD_LOGIC ??????); ???END?COMPONENT; ??? ???COMPONENT?jishi?IS ??????PORT?( ?????????clk_in????:?IN?STD_LOGIC; key_hour???:?IN?STD_LOGIC;--修改小時(shí) key_minute?:?IN?STD_LOGIC;--修改分鐘 ?????????clk_1Hz????:?IN?STD_LOGIC; ?????????hour_time??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ?????????minute_time?:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ?????????second_time?:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0) ??????); ???END?COMPONENT; ??? ???SIGNAL?hour_time?????????:?STD_LOGIC_VECTOR(7?DOWNTO?0); ???SIGNAL?minute_time???????:?STD_LOGIC_VECTOR(7?DOWNTO?0); ???SIGNAL?second_time???????:?STD_LOGIC_VECTOR(7?DOWNTO?0); ??? ???SIGNAL?clk_1Hz???????????:?STD_LOGIC; BEGIN ???--分頻到1Hz ???fenping_Hz?:?fenping ??????PORT?MAP?( ?????????clk_in??=>?clk_in, ?????????clk_1Hz??=>?clk_1Hz ??????); ??? ??? ???--計(jì)時(shí)模塊 ???i_jishi?:?jishi ??????PORT?MAP?( ?????????clk_in??????=>?clk_in, key_hour=>?key_hour,---修改小時(shí) key_minute=>?key_minute,---修改分鐘 ?????????clk_1Hz??????=>?clk_1Hz, ?????????hour_time????=>?hour_time,--時(shí) ?????????minute_time??=>?minute_time,--分 ?????????second_time??=>?second_time--秒 ??????); ???--響鈴模塊 ???i_Bell?:?Bell ??????PORT?MAP?( ?????????clk_in????????????=>?clk_in, ????????? ?????????hour_time??????????=>?hour_time,--時(shí) ?????????minute_time????????=>?minute_time,--分 ?????????second_time????????=>?second_time,--秒 ????????? ?????????bell_out???????????=>?bell_out--鬧鐘led ??????); ?? --數(shù)碼管顯示模塊 ?i_HEX:?HEX ???PORT?MAP??( ??????clk=>?clk_in, ??????hour_time=>hour_time,--時(shí) ??????minute_time=>minute_time,--分 ??????second_time=>second_time,--秒 ??????--6個(gè)數(shù)碼管 ??????HEX0=>HEX0, ??????HEX1=>HEX1, ??????HEX2=>HEX2, ??????HEX3=>HEX3, ??????HEX4=>HEX4, ??????HEX5=>HEX5 ???); ??? END?trans;
設(shè)計(jì)文檔
工程文件
程序文件
程序編譯
RTL圖
管腳分配
仿真圖
仿真圖
計(jì)時(shí)仿真
整點(diǎn)報(bào)時(shí)仿真
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=254
閱讀全文