名稱:多功能數(shù)字鐘Verilog代碼Quartus仿真
軟件:Quartus
語言:Verilog
代碼功能:
一、設(shè)計(jì)任務(wù)及要求
數(shù)字鐘是一種利用數(shù)字電子技術(shù)實(shí)現(xiàn)時(shí)分秒計(jì)時(shí)的裝置,數(shù)字鐘相比機(jī)械鐘具有更高的準(zhǔn)確性和直觀性,因此得到了更加廣泛的使用。數(shù)字鐘從原理上講是一種典型的數(shù)字電路,包括了組合邏輯電路和時(shí)序邏輯電路。這次設(shè)計(jì)就是基于 EDA/SOPC 系統(tǒng)開發(fā)平臺(tái)和八位數(shù)碼管顯示模塊,運(yùn)用 Quartus Ⅱ開發(fā)軟件,設(shè)計(jì)一個(gè)多功能數(shù)字鐘。
二、設(shè)計(jì)原理
多功能數(shù)字鐘應(yīng)該具有的功能:顯示“時(shí)-分-秒”。整個(gè)數(shù)字鐘的工作應(yīng)該是在 1Hz 信號(hào)的作用下進(jìn)行,這樣每來一個(gè)時(shí)鐘信號(hào),秒增加 1 秒,當(dāng)秒從 59 秒跳轉(zhuǎn)到 00 秒時(shí),分鐘增加 1 分,同時(shí)當(dāng)分鐘從 59 分跳轉(zhuǎn)到 00 分時(shí),小時(shí)增加 1 小時(shí),小時(shí)的范圍是從 0~23 時(shí)。復(fù)位后全部顯示 00-00-00。在設(shè)計(jì)中為了顯示的方便,分鐘和秒鐘(顯示的范圍都是從 00~59),小時(shí)(00~23)的十位和個(gè)位都應(yīng)該采用十進(jìn)制計(jì)數(shù)器。
1、設(shè)置“啟/?!卑粹o和“復(fù)位”按鈕:
“啟/停”按鈕 S1 的使用方法:按一下“啟/?!卑粹o,啟動(dòng)數(shù)字鐘開始計(jì)時(shí),再按一下“啟/?!卑粹o,計(jì)時(shí)暫停。
“復(fù)位”按鈕 S2 用來使數(shù)字鐘清 0,在數(shù)字鐘計(jì)時(shí)過程中“復(fù)位”按鈕無效,可以參考手機(jī)的秒表。(開發(fā)箱的按鈕按下為 0,彈起為 1)原理框圖如下:
2、數(shù)碼管譯碼顯示電路:
數(shù)字鐘顯示范圍 00-00-00~23-59-59,高位在左邊,低位在右邊,數(shù)碼管顯示需要經(jīng)過 BCD-七段數(shù)碼管譯碼。上電后,顯示 00-00-00,利用兩個(gè)按鈕 S1、S2 控制數(shù)字鐘的計(jì)時(shí)。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. 仿真圖
6.1 分頻模塊仿真
6.2 按鍵消抖模塊仿真
6.3 計(jì)時(shí)模塊仿真
其中F表示“-”在數(shù)碼管譯碼模塊中F被譯碼顯示為“-”
6.4 數(shù)碼管譯碼掃描模塊仿真
部分代碼展示:
module?digital_clock( input?CLK,//50MHz input?CP,//1000Hz input?S1,//啟動(dòng)、停止按鈕 input?S2,//復(fù)位按鈕,在數(shù)字鐘計(jì)時(shí)過程中“復(fù)位”按鈕無效 output?[2:0]?SEL,//數(shù)碼管選擇控制端 output?[6:0]?DIG//七段數(shù)碼管ABCDEFG ); wire?clk_1Hz; wire?[31:0]?hour_mim_sec;//時(shí)分秒 wire?S1_key; wire?S2_key; wire?clk_1000Hz; //分頻器,1000Hz分頻到1Hz div_1Hz?i_div_1Hz( .?CLK(CLK), .?CP(clk_1000Hz),//1000Hz .?clk_1000Hz(clk_1000Hz), .?clk_1Hz(clk_1Hz)//輸出1Hz ); //按鍵消抖模塊 key_jitter?i_key_S1( .?clkin(CLK),????? .?key_in(S1),//輸入 .?key_value(S1_key)//消抖后按鍵 );
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=534