基于Verilog HDL設計的數字時鐘_第1頁
基于Verilog HDL設計的數字時鐘_第2頁
基于Verilog HDL設計的數字時鐘_第3頁
基于Verilog HDL設計的數字時鐘_第4頁
基于Verilog HDL設計的數字時鐘_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、深圳大學考試答題紙(以論文、報告等形式考核專用)二 18 二 19 學年度第 一 學期課程編號1602080001課程名稱硬件描述語言與邏輯綜合主講教師劉春平評分學 號 姓名李思豪 專業年級電子科學與技術16級1班 教師評語:題目:基于Verilog HDL設計的數字時鐘摘 要:本文利用Verilog HDL語言自頂向下的設計方法設計多功能數字鐘,突出了其作為硬件描述語言的良好的可讀性、可移植性和易理解等優點,并通過Altera Quartus 6.0和cyclnoe II EP2C35F672C6完成綜合、仿真。此程序通過下載到FPGA芯片后,可應用于實際的數字鐘顯示中關鍵詞:Verilog

2、 HDL;硬件描述語言;FPGA目錄一、實驗任務3實驗目的3實驗要求3二、設計思路3三、實驗結果10四、總結與收獲141、 實驗任務實驗目的1. 深入了解基于quartus ii工具的復雜時序邏輯電路的設計。2. 理解并熟練利用EDA工具進行綜合設計。3. 熟練掌握芯片燒錄的流程及步驟。4. 掌握Verilog HDL 語言的語法規范及時序電路描述方法。實驗要求設計一個帶秒表功能的24 小時數字鐘,它包括以下幾個組成部分: 顯示屏,由6 個七段數碼管組成,用于顯示當前時間(時:分,秒)或設置的秒表時間; 復位鍵 復位所有顯示和計數 設置鍵,用于確定新的時間設置,三個消抖按鍵分別用于時分秒的設置

3、 秒表鍵,用于切換成秒表功能基本要求(1) 計時功能:這是本計時器設計的基本功能,每隔一秒計時一次,并在顯示屏上顯示當前時間。(2) 秒表功能:設置時間,進行倒計時功能(3) 設置新的計時器時間:按下設置鍵后,用戶能通過時分秒三個消抖按鍵對時間進行設置。二、設計思路1、總原理框圖:原理如上圖所示,時鐘由分頻器模塊,數碼管顯示模塊,計時器模塊三個模塊構成,每個模塊實現如下的不同功能,最后通過在頂層模塊的調用,來實現時鐘功能。2. 頂層模塊:頂層模塊調用三個字模塊,并且定義輸入輸出口,代碼輸入所示:module myclock2(daojishi,stop,clk,reset,shi,fen,mi

4、ao,miaoout1,miaoout2,fenout1,fenout2,shiout1,shiout2);input clk,reset,stop,shi,fen,miao,daojishi; output6:0 miaoout1,miaoout2,fenout1,fenout2,shiout1,shiout2;wire3:0 miao1,miao2,fen1,fen2,shi1,shi2;wire clk_1hz;divider_1HZ divider1hz(clk_1hz,reset,clk);count count1(daojishi,shi,fen,miao,stop,miao1,m

5、iao2,fen1,fen2,shi1,shi2,reset,clk_1hz);decode4_7 d0(miaoout1,miao1);decode4_7 d1(miaoout2,miao2);decode4_7 d2(fenout1,fen1);decode4_7 d3(fenout2,fen2);decode4_7 d4(shiout1,shi1);decode4_7 d5(shiout2,shi2);endmodule 輸入輸出端口類型功能表:引腳名類型 功能daojishiinput秒表倒計時模式stopinput暫停按鍵clkinput晶振脈沖resetinput復位按鍵shiin

6、put小時調節按鍵feninput分鐘調節按鍵miaoinput秒調節按鍵miaoout1output秒個位數碼管輸出miaoout2output秒十位數碼管輸出fenout1output分個位數碼管輸出fenout2output分十位數碼管輸出shiout1output時個位數碼管輸出shiout2output時十位數碼管輸出三個子模塊的原理和代碼:(1)分頻模塊 :分頻模塊的作用主要是要獲得各種頻率的時鐘信號。輸入信號27MHZ的信號,要想獲得1HZ的信號作為秒脈沖計時,則要對27MHZ信號分頻。通過計數的方式,當計數從0開始到13999999時,1HZ信號取反一次,計數又從0開始,如此循

7、環,就可以得到1HZ脈沖信號。對于其他信號也是如此,只是計數值不一樣,得到的分頻信號不同。模塊代碼如下:module divider_1HZ(clk_1hz,reset,clk);output clk_1hz;input reset,clk;reg clk_1hz;reg23:0 count;always (posedge clk)begin if(reset)begin count<=0; clk_1hz<=0; end else begin if(count=13499999)begincount<=0;clk_1hz<=clk_1hz;endelsecount&l

8、t;=count+1;/計數endendendmodule(2) 譯碼顯示模塊:一、數碼管顯示:通過傳入響應的十進制數,運用case語句轉換輸出相應的7位二進制顯示碼,送入數碼管顯示。 代碼如下:module decode4_7(temp,indec);output6:0 temp;input3:0 indec;reg6:0 temp;always (indec)begincase(indec) /用case 語句進行譯碼4'd0:temp6:0=7'b1000000; 4'd1:temp6:0=7'b1111001; 4'd2:temp6:0=7

9、9;b0100100; 4'd3:temp6:0=7'b0110000; 4'd4:temp6:0=7'b0011001; 4'd5:temp6:0=7'b0010010; 4'd6:temp6:0=7'b0000010; 4'd7:temp6:0=7'b1111000; 4'd8:temp6:0=7'b0000000; 4'd9:temp6:0=7'b0010000; default: temp=7'bz;endcaseendendmodule(3) 、計時器模塊 :秒計數

10、:在1HZ脈沖下進行秒計時,當計時達到59秒后,在下一個脈沖來臨變0,并發出一個脈沖信號,可供下面分鐘計數作為輸入脈沖信號計時。分鐘計數:在輸入脈沖下,分鐘開始計時,當計時達到59后,在下一個脈沖來臨變0,并發出一個脈沖,供小時計數的輸入脈沖新號。小時計數:脈沖信號來臨時,計數加1,達到23后在下一個脈沖的作用下清零,從新計時。如果有復位信號,則時分秒全部清零。計時器模塊還包含了設置時間 和秒表切換的功能部分代碼如下:module count(daojishi,shi,fen,miao,stop,miao1,miao2,fen1,fen2,shi1,shi2,reset,clk_1hz);in

11、put reset,clk_1hz,stop,daojishi;input shi,fen,miao;output miao1,miao2,fen1,fen2,shi1,shi2;reg3:0 miao1,miao2,fen1,fen2,shi1,shi2; always (posedge clk_1hz) begin if(reset) begin miao1<=0;miao2<=0;fen1<=0;fen2<=0;shi1<=0;shi2<=0; end if(stop=1)begin /秒調節 if(miao=0) begin miao1<=mi

12、ao1+1; if(miao1=9) begin miao1<=0; miao2<=miao2+1; if(miao2=5) begin miao2<=0; end end end if(fen=0) /分調節 begin fen1<=fen1+1; if(fen1=9) begin fen1<=0; fen2<=fen2+1; if(fen2=5) begin fen2<=0; end end end if(shi=0) /時調節 begin shi1<=shi1+1; if(shi1=9|(shi1=3)&&(shi2=2)

13、begin shi1<=0; shi2<=shi2+1; if(shi2>=2) begin shi2<=0; end end end end if(!reset)&&(stop=0) begin if(daojishi=0) /時鐘程序 begin miao1<=miao1+1; if(miao1=9) begin miao1<=0; miao2<=miao2+1; if(miao2=5) begin miao2<=0; fen1<=fen1+1; if(fen1=9) begin fen1<=0; fen2<

14、=fen2+1; if(fen2=5) begin fen2<=0; shi1<=shi1+1; if(shi1=9)|(shi1=3)&&(shi2=2) begin shi1<=0; shi2<=shi2+1; if(shi2=2) begin shi2<=0; end end end end end end end else /倒計時程序 begin if(!(shi1=0)&&(shi2=0)&&(fen1=0)&&(fen2=0)&&(miao2=0)&&(m

15、iao1=0) begin miao1<=miao1-1; if(miao1=0) begin miao1<=9; miao2<=miao2-1; if(miao2=0) begin miao2<=5; fen1<=fen1-1; if(fen1=0) begin fen1<=9; fen2<=fen2-1; if(fen2=0) begin fen2<=5; shi1<=shi1-1; if(shi1=0) begin shi1<=9; shi2<=shi2-1; if(shi2=0) begin shi2<=0; en

16、d end end end end end end end end endendmodule3. 引腳排布:如下所示: 引腳分布圖二、實驗結果(1) 波形仿真在Quartus II中利用仿真波形進行功能或時序仿真的基本步驟如下:(1)創建新的矢量波形文件(*.vwf).(2)添加輸入、輸出節點。(3)編譯輸入節點的波形。(4)完成矢量波形文件的創建之后,用戶即可以對設計進行功能或時序仿真。(5)仿真啟動后,狀態窗口會同時自動打開,在狀態窗口中顯示仿真進度及所用時間。(6)默認情況下,仿真器報告窗口內在仿真過程中會顯示仿真波形部分,其中還包括當前仿真器的設置信息和仿真信息等。 下面我們單獨對三個

17、子模塊分別進行仿真并分析仿真結果:(1) 分頻器模塊仿真結果: 分頻器仿真圖仿真分析:我們取時鐘信號的周期是20ns,為了讓仿真結果更明顯,取每三個時鐘周期讓秒脈沖clk_1hz翻轉一次,而不是1349999翻轉一次。并且讓reset復位信號在仿真的160ns-300ns有效。結果如圖所示,在每三個時鐘信號出現時,秒脈沖都會翻轉一次,在reset信號有效時,秒脈沖無輸出,仿真結果符合預計要求。(2) 顯示譯碼模塊仿真結果: 數碼管輸出數字8仿真圖 數碼管輸出數字8仿真圖仿真結果分析: indec是我們要輸出的十進制數,temp是連接7段數碼的7位二進制數,已知數碼管為共陰極數碼管。我們設定in

18、dec為8,從圖中可以看見temp7:0都是0;所以7個數碼管都會被點亮,就是顯示8。我們再設定indec為1,可以預見1在數碼管中應該是亮兩個,如第二圖所示只有temp1和temp2是0,所以就是亮兩個燈,顯示1。仿真結果符合設計要求。(3) 計時器模塊仿真結果: 計數器計數仿真圖 計數器復位測試仿真圖 仿真結果:miao1,miao2,fen1,fen2,shi1,shi2分別是秒分時的個位和十位,時鐘脈沖clk_1hz每一個上升沿,miao1就加1,miao1再依次進位給更高的為。如圖所示,當miao1計數到9的時候,miao2加1,當miao2計數到5的時候,fen1加1,時鐘計數功能實現,仿真符合設計要求。圖二是復位信號reset的測試,當reset為1有效時,累計的時間清零。如圖所以,當reset=1時,miao1,miao2,fen1,fen2,shi1,shi2全部變0,仿真符合技術要求。此模塊還有設置時間和倒計時的功能,但是在波形仿真中不夠直觀,所以不做波形仿真。(2) DE2開發板實現將開發板插入電腦中,燒錄進程序,進行各項功能測試,包括計時功能,時間調節功能,秒表功能,復位功能,暫停功能。實驗過程記錄:(1) 燒錄程序完成,DE2立刻開始從0秒計數,依次向分鐘,小時進位,當時間為23:59:59時,下一秒全部跳0;時鐘功能實現。(2) 復位功能測試:swi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論