




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選文檔 桂林電子科技大學信息科技學院EDA技術及應用實訓報告學 號 1252100301 姓 名 指導教師:覃琴 2014年 4 月 29 日實訓題目:數字日歷電路 1 系統設計1.1 設計要求1.1.1 設計任務 (1)用Verilog HDL語言設計出能夠在EDA實訓儀的I/O設備和PLD芯片實現的數字日歷。 (2)數字日歷能夠顯示年、月、日、時、分和秒。 (3)用EDA實訓儀上的8只八段數碼管分兩屏分別顯示年、月、日和時、分、秒,即在一定時間段內顯示年、月、日(如20140101),然后在另一時間段內顯示時、分、秒(如010101099),兩個時間段能自動倒換。 (4)數字日歷具有復位
2、和校準年、月、日、時、分、秒的按鈕,但校年和校時同用一個按鈕,即在顯示年、月、日時用此按鈕校年,在顯示時、分、秒時則用此按鈕校時。 (5)體現創新部分1.1.2 性能指標要求 1)數字電路能夠在一定的時間內顯示切換的功能,并且能手動校準年月日和時分秒 2)具有復位和進位的功能 3)能起到提示的作用,如鬧鐘或亮彩燈等。1.2 設計思路及設計框圖1.2.1設計思路 如圖1.2.2所示 1) EDA實訓箱上的功能有限,可以用到的有8支數碼管和12個lED燈。年、月、日和時、分、秒可以通過數碼管顯示,年月日和時分秒的切換可以通過撥動開關控制,校正可以通過按鍵實現。 2)輸入的秒脈沖由DEA實訓儀上的2
3、0MHZ晶振經過分頻得到,秒脈沖經過60分頻后產生1分鐘脈沖信號,在經過60分頻后產生1小時的脈沖信號,最后進行24分頻,得到1天的脈沖送24進制的cout輸出。在將兩個60分頻和一個24分頻的輸出送到送到數碼管的譯碼器輸入端,得到24小時的計時顯示結果。由此得到數字日歷的計時器模塊。1.2.2設計框圖 20MHZ晶振顯示器顯示器顯示器 分頻器輸入電路六十進制計數器(分)六十進制計數器(分)二十四進制計數器(時)coutcoutcoutCout coutco 秒脈沖 校時電路 圖1.2.2數字鐘的原理框圖2 各個模塊程序的設計2.1圖1 1HZ秒脈沖的分頻模塊元件符號 2.1輸入的秒脈沖由ED
4、A實訓儀上的20MHZ晶振經過分頻得到,設計一個輸出頻率為1HZ的秒脈沖。圖1是1HZ秒脈沖的分頻模塊元件符號圖1 1HZ秒脈沖的分頻模塊元件符號2.2 圖2是cnt24與cnt60模塊設計的元件符號 圖2 cnt24與cnt60模塊的元件符號2.3 圖3是計時器設計原理圖 clk秒時鐘輸入端,clrn清除輸入端,低電平有效;jm、jf 、js分別是校秒、校分和校時的輸入端,下降沿有效;qm7.0、qf7.0和qs7.0分別是秒、分、和時的輸出端;cout是“天”脈沖輸出端。2.4數字日歷電路的設計 數字電路原理圖包括包括計時器模塊(jsq)、年月日模塊(nyr2014)、控制模塊(cour)
5、、校時選擇模塊(xs_6)、顯示選擇模塊(mux_16)和流水燈(LED)提示模塊。圖4是數字日歷設計的原理圖。 圖4是數字日歷設計的原理圖 2.5控制模塊的設計 圖5是控制模塊的元件符號圖5 控制模塊的元件符號 clk是1s時鐘輸入端;k1和k2是控制輸入端,k是控制輸出端。k1k2=00或11時是自動顯示模塊,控制數碼器用8s鐘時間顯示年月日8s顯示時分秒,k1k2=01時僅控制顯示時分秒,同時用j1、j2、j3校秒、校分和校時,k1k2=10時,僅顯示年、月、日,同時用j1、j2、j3校年、校月和校日。2.6校時選擇模塊的設計 校時選擇模塊的元件符號如圖6所示。k是控制輸入端,k=0是,
6、控制將校時按鈕j1、j2和j3的信號分別分別送到計時器模塊的jm、jf、js,k=1時校時按鈕j1、j2、j3的信號分別送到年月日模塊的jr、jy、jn。 圖6 校時選擇模塊的元件符號2.7顯示選擇模塊 圖7是顯示選擇模塊的元件符號。k是控制輸入端,K=0時,控制將計時器模塊送來的qm7.0、qf7.0、和qs7.0狀態信號送到數碼管顯示。k=1時將年月日送來的qr7.0、qy7.0、qn7.0狀態信號送到數碼管顯示。圖7 顯示選擇模塊的元件符號2.8流水燈提示模塊的設計 圖8是流水燈提示模塊的元件符號。clk是一秒鐘輸入端,K是控制輸入端,qy7.0(月)、qr7.0(日)是狀態信號送到數碼
7、管顯示。qo11.0是輸出的流水燈圖8 流水燈提示模塊的元件符號3 調試過程 當數字日歷得所有模塊編譯成功后我首次下載到實訓箱上時,它并不能實現進位的功能,經調整。數字日歷的各基本功能通實現后,在其基礎上新增了彩燈控制模塊。經過逐條編寫和更正。程序最終通過編譯并能順利下載到實訓箱上進行驗證。4 功能測試4.1 測試儀器與設備 EDA實訓箱4.2 性能指標測試 當所設定的生日到時流水燈能順利的實現該提示功能,不過自動顯示模塊還是沒能很準確的進行累加,該功能的延時時間超出了設計的時間。5 實訓心得體會從陌生到熟悉,我基本上的摸清了QuartusII9.0的用法。并逐漸掌握了verilog HDL語
8、言的規則。并能編寫簡單的程序。經過查找資料和各個老師的耐心指導。我完成了數字日歷電路的設計。不僅添加了創新部分,還在EDA實訓儀上成功實現了它的彩燈旋轉功能。并用一個撥動開關來控制燈的亮滅。記得剛開始拿到實訓課題時,我那一臉的茫然,不知從哪兒入手。來回跑了圖書館好幾趟,最后跟著舍友起步。從編寫代碼開始,經編譯后逐個查找錯誤并糾正。幾番波折,最終完成了數字日歷的設計和添加了創新功能。通過此次EDA實訓我熟練的掌握了QuartusII9.0軟件,并能通過波形仿真更加透徹的掌握了程序與該設計。從編程到生成元器件再到波形仿真和成功下載,給我的最大體會是一步一個腳印,付出總會有回報的。6 參考文獻 【1
9、】EDA技術與應用 江國強 【2】EDA技術與verilog設計 王金明 冷自強附錄附錄1:仿真波形圖(部分模塊)cnt24模塊仿真波形圖nyr模塊仿真波形圖附錄2:程序清單2.1 分頻器模塊module s_1 ( clk,cout);input clk;reg 24:0 q;output reg cout;always (posedge clk) begin if (q=20000000-1) q=0; /1s else q=q+1; if(q<=10000000-1) cout=1; /0.5s else cout=0; end Endmodule2.2 cnt24計數器源程序mo
10、dule cnt24(clk,clrn,j,q,cout); /clk秒時鐘輸入端,clrn清除輸入端,cout“天”脈沖輸出端 input clk,clrn,j; /j校時輸入端, output reg 7:0 q; output reg cout; always (posedge clkj or negedge clrn) /j與時鐘輸入端clk異或就可以達到校時的作用 begin if (clrn) q=0; /低電平有效 else begin if (q='h23) q=0; else q=q+1; if (q3:0='ha) begin q3:0=0; q7:4=q7
11、:4+1; end if (q='h23) cout=1; else cout=0;end end endmodule2.3 cnt60計數器源程序module cnt60(clk,clrn,j,q,cout); input clk,clrn,j; output reg 7:0 q; output reg cout; always (posedge clkj or negedge clrn) begin if (clrn) q=0; else begin if (q='h59) q=0; else q=q+1; if (q3:0='ha) begin q3:0=0; q
12、7:4=q7:4+1; end if (q='h59) cout=1; else cout=0;end end endmodule 2.4 年月日模塊module nyr2014(clrn,clk,jn,jy,jr,qn,qy,qr);input clrn,clk,jn,jy,jr;output 15:0 qn;output 7:0qy,qr;reg 15:0 qn;reg7:0 qy,qr;reg clkn,clky;reg7:0 date;reg clkn1, clkn2 , clkn3; initial begin clkn1=1; clkn2=2 ; clkn3=1;endin
13、itial begin qn='h2000;qy=1;qr=1;end always (posedge (clkjr) or negedge clrn)begin if (clrn) qr=1;else beginif (qr=date) qr=1; else qr=qr+1; if (qr3:0='ha) begin qr3:0=0; qr7:4=qr7:4+1; end if (qr=date) clky=1; else clky=0;end end always (posedge clkyjy or negedge clrn)begin if (clrn) qy=1; e
14、lse begin if (qy='h12) qy=1; else qy=qy+1; if (qy3:0='ha) begin qy3:0=0; qy7:4=qy7:4+1; end if (qy='h12) clkn=1; else clkn=0;end end always begin case(qy) 'h01: date='h31; 'h02: begin if (qn/4=0)&(qn/100!=0)|(qn/400=0) date='h29; else date='h28;end 'h03: date=
15、'h31; 'h04: date='h30; 'h05: date='h31; 'h06: date='h30; 'h07: date='h31; 'h08: date='h31; 'h09: date='h30; 'h10: date='h31; 'h11: date='h30; 'h12: date='h31; default :date='h30; endcaseend always (posedge (clknjn) or ne
16、gedge clrn) begin if (clrn) qn3:0=0; else begin if (qn3:0=9) qn3:0=0; else qn3:0= qn3:0+1; if (qn3:0=9) clkn1=0; else clkn1=1;end end always (posedge clkn1 or negedge clrn) begin if (clrn) qn7:4=0; else begin if (qn7:4=9) qn7:4=0; else qn7:4=qn7:4+1; if (qn7:4=9) clkn2=0; else clkn2=1;end endalways
17、(posedge clkn2 or negedge clrn) begin if (clrn) qn11:8=0; else begin if (qn11:8=9) qn11:8=0; else qn11:8= qn11:8+1; if (qn7:4=9) clkn3=0; else clkn3=1;end endalways (posedge clkn3 or negedge clrn) begin if (clrn) qn15:12=2; else if (qn15:12=9) qn15:12=0; else qn15:12= qn15:12+1; end Endmodule2.5 校時選
18、擇模塊module xs_6(k,jm,jf,js,jr,jy,jn,j1,j2,j3); /k是控制輸入端input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;always Beginif (k=0) jm,jf,js=j1,j2,j3;/k=0是,控制將校時按鈕j1、j2和j3的信號分別分別送到計時器模塊的jm、jf else jr,jy,jn=j1,j2,j3;/k=1時校時按鈕j1、j2、j3的信號分別送到年月日模塊的jr、jy、jn endEndmodule2.6顯示選擇模塊的設計module mux_16(k,qm,qf,qs,qr,qy,qn
19、,q);input k; /k是控制輸入端,k=1時將年月日送來的qr、qy、qn狀態信號送到數碼管顯示input7:0 qm,qf,qs,qr,qy;input15:0 qn;output reg 31:0 q;always beginif(k=0) begin q31:24=0; q23:0=qs,qf,qm;end else q=qn,qy,qr; endendmodule 2.7控制模塊源程序module contr(clk,k1,k2,k); /clk是1s時鐘輸入端;k1和k2是控制輸入端input clk,k1,k2;output reg k; /k是控制輸出端reg3:0 qc;reg rc;always (posedge clk)beginqc=qc+1;if (qc<8)rc=0;else rc=1;case(k1,k2)0:k=rc; /k1k2=00或11時是自動顯示模塊,控制數碼器用8s鐘時間顯示年月日8s顯示時分秒1:k=0; /k1k2=01時僅控制顯示時分秒,同時用j1、j2、j3校秒、校分和校時2:k=1; /k1k2=10時,僅顯示年、月、日,同時用j1、j2、j3校年、校月和校日3:k=rc; /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省哈爾濱市實驗學校2025年八年級數學第二學期期末復習檢測模擬試題含解析
- 信息處理技術員考試小技巧與試題及答案
- 軟件設計師考試趨勢分析與試題及答案
- 2025屆北京市延慶區數學七下期末質量跟蹤監視試題含解析
- 軟件測試策略與方法總結試題及答案
- 移動應用用戶體驗設計考題試題及答案
- 機械設備行業保安工作計劃
- 算法與數據結構2025年考試試題及答案
- 如何開展財務審計工作計劃
- 信息科技行業安全防護總結計劃
- GB/T 2982-2024工業車輛充氣輪胎規格、尺寸、氣壓與負荷
- 史記人物課件教學課件
- 走進泰國-課件
- 一站到底課件
- 西安中建一局裝修合同模板
- 社會團體財務報表
- DB34∕T 3468-2019 民用建筑樓面保溫隔聲工程技術規程
- iso220002024食品安全管理體系標準
- 2024年秋新冀教版三年級上冊英語教學課件 U3L3
- 拔牙術后并發癥及處理對策
- 2024年山東省濟南市歷下區中考一模物理試題(解析版)
評論
0/150
提交評論