名稱:Quartus數(shù)字秒表verilog代碼青創(chuàng)QC-FPGA開發(fā)板
軟件:Quartus
語(yǔ)言:Verilog
代碼功能:
數(shù)字秒表設(shè)計(jì):
1、支持復(fù)位、啟動(dòng)、暫停;
2、具有量程切換功能,可以切換顯示小時(shí)、分鐘或者秒、毫秒;
3、數(shù)碼管顯示時(shí)間,精確到10毫秒。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在青創(chuàng)QC-FPGA開發(fā)板驗(yàn)證,青創(chuàng)QC-FPGA開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. 管腳分配
5. RTL圖
6. 仿真圖
頂層整體仿真圖
分頻模塊
控制模塊
顯示模塊
部分代碼展示:
LIBRARY?ieee; USE?ieee.std_logic_1164.all;? --秒表設(shè)計(jì) ENTITY?miaobiao?IS? PORT ( ???sysclk_in?:??IN??STD_LOGIC;--48MHZ ???S1?:??IN??STD_LOGIC;--復(fù)位 S2?:??IN??STD_LOGIC;--啟動(dòng) S3?:??IN??STD_LOGIC;--停止 sw_in???????:?IN?STD_LOGIC;--量程切換 LEDA?:??OUT??STD_LOGIC_VECTOR(7?DOWNTO?0);--數(shù)碼管段選 SEL?:??OUT??STD_LOGIC_VECTOR(3?DOWNTO?0)--數(shù)碼管位選 ); END?miaobiao; ARCHITECTURE?RTL?OF?miaobiao?IS? --參數(shù)化的分頻模塊--可以支持不同的輸入時(shí)鐘 COMPONENT?div?IS ?generic?(N:integer); ???PORT?( ??????clk_in????:?IN?STD_LOGIC;--輸入 ??????S1??????:?IN?STD_LOGIC;--復(fù)位 ??????clk_out??:?OUT?STD_LOGIC--輸出時(shí)鐘 ???); END?COMPONENT; --秒表控制模塊 COMPONENT?control ???PORT?( ??????clk_100Hz??????????????:?IN?STD_LOGIC;--100Hz ??????S2??????????????:?IN?STD_LOGIC;--啟動(dòng) ??????S3???????????????:?IN?STD_LOGIC;--停止 ??????S1??????????????:?IN?STD_LOGIC;--復(fù)位 Millisecond??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--10毫秒BCD碼 second???????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--秒BCD碼 minute???????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--分BCD碼 hour???????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--時(shí)BCD碼 ???); END?COMPONENT; --數(shù)碼管顯示模塊 COMPONENT?display PORT(clk?:?IN?STD_LOGIC; ?S1?:?IN?STD_LOGIC; ?sw_in???????:?IN?STD_LOGIC;--量程切換 ?hour?:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?Millisecond?:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?minute?:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?second?:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?LEDA?:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ?SEL?:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0) ); END?COMPONENT; SIGNALhour?:??STD_LOGIC_VECTOR(7?DOWNTO?0); SIGNALMillisecond?:??STD_LOGIC_VECTOR(7?DOWNTO?0); SIGNALminute?:??STD_LOGIC_VECTOR(7?DOWNTO?0); SIGNALsecond?:??STD_LOGIC_VECTOR(7?DOWNTO?0); SIGNALclk_100Hz?:??STD_LOGIC; SIGNALclk_in?:??STD_LOGIC; BEGIN? --分頻到1000Hz--參數(shù)化的分頻模塊--可以支持不同的輸入時(shí)鐘 U1K_div?:?div generic?map(48000) PORT?MAP( ?clk_in?=>?sysclk_in, ?S1?=>?S1, ?clk_out?=>?clk_in ?); --分頻到100Hz---參數(shù)化的分頻模塊--可以支持不同的輸入時(shí)鐘 U100_div?:?div generic?map(10) PORT?MAP( ?clk_in?=>?clk_in, ?S1?=>?S1, ?clk_out?=>?clk_100Hz ?); ? --秒表計(jì)時(shí)模塊 U_control?:?control PORT?MAP( ?clk_100Hz?=>?clk_100Hz, ?S2?=>?S2, ?S3?=>?S3, ?S1?=>?S1, ?hour?=>?hour, ?Millisecond?=>?Millisecond, ?minute?=>?minute, ?second?=>?second ?); --顯示模塊 U_display?:?display PORT?MAP( ?????clk?=>?clk_in, ?S1?=>?S1, ?sw_in=>?sw_in,--量程切換 ?hour?=>?hour, ?Millisecond?=>?Millisecond, ?minute?=>?minute, ?second?=>?second, ?LEDA?=>?LEDA, ?SEL?=>?SEL ?); END?RTL;
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=380
閱讀全文