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