EDA技術(shù)及應(yīng)用實訓(xùn)報告_第1頁
EDA技術(shù)及應(yīng)用實訓(xùn)報告_第2頁
EDA技術(shù)及應(yīng)用實訓(xùn)報告_第3頁
EDA技術(shù)及應(yīng)用實訓(xùn)報告_第4頁
EDA技術(shù)及應(yīng)用實訓(xùn)報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、電子科技大學(xué)信息科技學(xué)院ED般術(shù)及應(yīng)用實訓(xùn)報告學(xué)號1252學(xué)0301姓名指導(dǎo)教師:覃琴2014 年4月29日實訓(xùn)題目:數(shù)字日歷電路1系統(tǒng)設(shè)計1.1 設(shè)計要求1.1.1 設(shè)計任務(wù)(1)用Verilog HDL 語言設(shè)計出能夠在 EDA實訓(xùn)儀的I/O設(shè)備和PLD芯片實現(xiàn)的數(shù)字 日歷。(2)數(shù)字日歷能夠顯示年、月、日、時、分和秒。(3)用EDA實訓(xùn)儀上的8只八段數(shù)碼管分兩屏分別顯示年、月、日和時、分、秒,即在 一定時間段顯示年、月、日(如20140101),然后在另一時間段顯示時、分、秒(如010101099),兩個時間段能自動倒換。(4)數(shù)字日歷具有復(fù)位和校準(zhǔn)年、月、日、時、分、秒的按鈕,但校年和

2、校時同用一個 按鈕,即在顯示年、月、日時用此按鈕校年,在顯示時、分、秒時則用此按鈕校時。(5)體現(xiàn)創(chuàng)新部分1.1.2 性能指標(biāo)要求1 )數(shù)字電路能夠在一定的時間顯示切換的功能,并且能手動校準(zhǔn)年月日和時分秒2 )具有復(fù)位和進(jìn)位的功能3 )能起到提示的作用,如鬧鐘或亮彩燈等。1.2設(shè)計思路及設(shè)計框圖1.2.1 設(shè)計思路如圖1.2.2所示1 ) EDA實訓(xùn)箱上的功能有限,可以用到的有8支數(shù)碼管和12個lED燈。年、月、日和時、分、秒可以通過數(shù)碼管顯示,年月日和時分秒的切換可以通過撥動開關(guān)控制,校正可 以通過按鍵實現(xiàn)。2 )輸入的秒脈沖由 DEA實訓(xùn)儀上的20MHZ1振經(jīng)過分頻得到, 秒脈沖經(jīng)過60分

3、頻后產(chǎn)生 1分鐘脈沖信號,在經(jīng)過 60分頻后產(chǎn)生1小時的脈沖信號,最后進(jìn)行 24分頻,得到1天的 脈沖送24進(jìn)制的cout輸出。在將兩個60分頻和一個24分頻的輸出送到送到數(shù)碼管的譯 碼器輸入端,得到 24小時的計時顯示結(jié)果。由此得到數(shù)字日歷的計時器模塊。1.2.2設(shè)計框圖20MHZ晶振tncoutnt二十四進(jìn)制 計數(shù)器(時)六十進(jìn)制計 數(shù)器(分)校時電路圖1.2.2數(shù)字鐘的原理框圖2各個模塊程序的設(shè)計2.1圖1 1HZ秒脈沖的分頻模塊元件符號- I I M I » ! I I h,設(shè)計一個輸出頻率為1HZ2.忙n輸隊的秒脈沖由EDA災(zāi)訓(xùn)儀上的20MHz晶振經(jīng)過分頻得到的秒脈中圖1是

4、1HZ秒M沖的分頻模塊元件符號I- elk q7.O 4 1I-I- = clrn cout j2.2圖2是cnt24與cnt60模塊設(shè)計的元件符號 | g /"|“ 4 I +F .*,;cnt24i- elk q7.OIi- elm coutc 9¥¥B SV-* E !¥-* BH "V ! av-re 9¥V !-«!«! 9*VB SY" ! W BB h ;cnt605; elk q7.Oi* * ) elm cout i inst7;: *、m waiia ,i 一«/ i v、W

5、 iv*,i » m M «* inst8| ¥«1 q I 電 R 電、 +A I4 I W |fl圖2 t24與cnt60模塊的元件符號2.3 圖3是計時器設(shè)計原理圖clk 秒時鐘輸入端,clrn清除輸入端,低電平有效;jm、jf 、js分別是校秒、校分和 校時的輸入端,下降沿有效;qm7.0、qf7.0和qs7.0分別是秒、分、和時的輸出端;cout是“天"脈沖輸出端。2.4 數(shù)字日歷電路的設(shè)計數(shù)字電路原理圖包括包括計時器模塊(jsq)、年月日模塊(nyr2014 )、控制模塊(cour )、校時選擇模塊(xs_6)、顯示選擇模塊(mux

6、_16)和流水燈(LED)提示模塊。圖4是數(shù)字日圖4是數(shù)字日歷設(shè)計的原理圖2.5 控制模塊的設(shè)計圖5是控制模塊的元件符號二I, Bl I 出 contr:inst24圖5控制模塊的元件符號clk 是1s時鐘輸入端;k1和k2是控制輸入端,k是控制輸出端。k1k2=00或11時是自動 顯示模塊,控制數(shù)碼器用 8s鐘時間顯示年月日8s顯示時分秒,k1k2=01時僅控制顯示時分 秒,同時用j1、j2、j3校秒、校分和校時,k1k2=10時,僅顯示年、月、日,同時用 j1、 j2、j3校年、校月和校日。2.6 校時選擇模塊的設(shè)計校時選擇模塊的元件符號如圖 6所示。k是控制輸入端,k=0是,控制將校時按

7、鈕j1、j2 和j3的信號分別分別送到計時器模塊的 jm、jf、js,k=1時校時按鈕j1、j2、j3的信號分 別送到年月日模塊的jr、jy、jn。圖8流水燈提示模塊的元件符號圖6校時選擇模塊的元件符號2.7 顯示選擇模塊圖7是顯示選擇模塊的元件符號。k是控制輸入端,K=0時,控制將計時器模塊送來的qm7.0 、qf7.0、和qs7.0狀態(tài)信號送到數(shù)碼管顯示。k=1時將年月日送來的qr7.0、qy7.0 、qn7.0狀態(tài)信號送到數(shù)碼管顯示。:mux 16l qE7.o qf|7 ,0 qs7.O1 qr7Q qyir -°l *qn15. .0=in5t4圖7顯示選擇模塊的元件符號2

8、.8 流水燈提示模塊的設(shè)計圖8是流水燈提示模塊的元件符號。clk是一秒鐘車入端,K是控制輸入端,qy7.0(月)、qr7.0(日)是狀態(tài)信號送到數(shù)碼管顯示。qo11.0是輸出的流水燈3調(diào)試過程當(dāng)數(shù)字日歷得所有模塊編譯成功后我首次下載到實訓(xùn)箱上時,它并不能實現(xiàn)進(jìn)位的功能,經(jīng)調(diào)整。數(shù)字日歷的各基本功能通實現(xiàn)后,在其基礎(chǔ)上新增了彩燈控制模塊。經(jīng)過逐條編寫和更正。程序最終通過編譯并能順利下載到實訓(xùn)箱上進(jìn) 行驗證。4功能測試4.1 測試儀器與設(shè)備EDA實訓(xùn)箱4.2 性能指標(biāo)測試當(dāng)所設(shè)定的生日到時流水燈能順利的實現(xiàn)該提示功能,不過自動顯示模塊還是沒能很準(zhǔn)確的進(jìn)行累加,該功能的延時時間超出了設(shè)計的時間。5實

9、訓(xùn)心得體會從陌生到熟悉,我基本上的摸清了QuartusII9.0 的用法。并逐漸掌握了 verilog HDL語言的規(guī)則。并能編寫簡單的程序。經(jīng)過查找資料和各個老 師的耐心指導(dǎo)。我完成了數(shù)字日歷電路的設(shè)計。不僅添加了創(chuàng)新部分,還在 EDA實訓(xùn)儀上成功實現(xiàn)了它的彩燈旋轉(zhuǎn)功能。并用一個撥動開關(guān)來控制燈的 亮滅。記得剛開始拿到實訓(xùn)課題時,我那一臉的茫然,不知從哪兒入手。來 回跑了圖書館好幾趟,最后跟著舍友起步。從編寫代碼開始,經(jīng)編譯后逐個 查找錯誤并糾正。幾番波折,最終完成了數(shù)字日歷的設(shè)計和添加了創(chuàng)新功能。通過此次EDA實訓(xùn)我熟練的掌握了 QuartusII9.0軟件,并能通過波形仿 真更加透徹的掌

10、握了程序與該設(shè)計。從編程到生成元器件再到波形仿真和成功下 載,給我的最大體會是一步一個腳印,付出總會有回報的。6參考文獻(xiàn)1 EDA支術(shù)與應(yīng)用江國強(qiáng)2 EDA術(shù)與verilog 設(shè)計王金明冷自強(qiáng)附錄附錄1:仿真波形圖(部分模塊)cnt24模塊仿真波形圖nyr模塊仿真波形圖else cout=0;end附錄2:程序清單2.1 分頻器模塊module s_1 ( clk,cout);input clk;reg 24:0 q;output reg cout;always (posedge clk)beginif (q=20000000-1) q=0; /1selse q=q+1;if(q<=10

11、000000-1) cout=1; /0.5selse cout=0;endEndmodule2.2 t24計數(shù)器源程序module t24(clk,clrn,j,q,cout); /clk秒時鐘輸入端,clrn 清除輸入端,cout "天"脈沖輸出端input clk,clrn,j;/j校時輸入端,output reg 7:0 q;output reg cout;always (posedge clkAj or negedge clrn) /j與時鐘輸入端 clk 異或就可以達(dá)到校時的作用beginif (clrn) q=0;/低電平有效else beginif (q=&

12、#39;h23) q=0;else q=q+1;if (q3:0='ha) beginq3:0=0; q7:4=q7:4+1; endif (q='h23) cout=1;end endmodule2.3 t60計數(shù)器源程序module t60(clk,clrn,j,q,cout);input clk,clrn,j;output reg 7:0 q;output reg cout;always (posedge clkAj or negedge clrn) beginif (clrn) q=0;else beginif (q='h59) q=0;else q=q+1;i

13、f (q3:0='ha) beginq3:0=0; q7:4=q7:4+1; endif (q='h59) cout=1;else cout=0;endendendmodule2.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;regclknl, clkn2 , clkn3;initial begin clkn1=1;

14、 clkn2=2 ; clkn3=1;endinitial begin qn='h2000;qy=1;qr=1;endalways (posedge (ckjr) or negedge clrn)beginif (clrn) qr=1;else beginif (qr=date) qr=1;else qr=qr+1;if (qr3:0='ha) beginqr3:0=0; qr7:4=qr7:4+1; endif (qr=date) clky=1;else clky=0;endendalways (posedge clkyAjy or negedge clrn)beginif

15、(clrn) qy=1;else beginif (qy='h12) qy=1;else qy=qy+1;if (qy3:0='ha) beginqy3:0=0; qy7:4=qy7:4+1; endif (qy='h12) clkn=1;else clkn=0;endendalwaysbegincase(qy)'h01: date='h31;'h02: beginif (qn/4=0)&(qn/100!=0)|(qn/400=0) date='h29;'h03: date='h31;else date='

16、h28;end'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;endcaseendalways (posedge (clknAjn) or negedge clrn) b

17、eginif (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;endendalways (posedge clknl or negedge clrn)beginif (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;endendalways (posedge clkn2 or negedge c

18、lrn)beginif (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;endendalways (posedge clkn3 or negedge clrn) beginif (clrn) qn15:12=2;else if (qn15:12=9) qn15:12=0;else qn15:12= qn15:12+1;endEndmodule是控制輸入端是,控制將校時按鈕j1、j2和j3的信號分別分時校時按鈕j1、j2、j3的信號分

19、別送到年月日2.5 校時選擇模塊module xs_6(k,jm,jf,js,jr,jy,jn,j1,j2,j3); /kinput k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;alwaysBeginif (k=0) jm,jf,js=j1,j2,j3;/k=0別送到計時器模塊的jm、jfelse jr,jy,jn=j1,j2,j3;/k=1模塊的jr、jy、jnendEndmodule2.6 顯示選擇模塊的設(shè)計module mux_16(k,qm,qf,qs,qr,qy,qn,q);input k;kqn狀態(tài)信號送到數(shù)碼管顯示input7:0 qm,qf,

20、qs,qr,qy;input15:0 qn;output reg 31:0 q;alwaysbeginif(k=0) beginq31:24=0;q23:0=qs,qf,qm;end else q=qn,qy,qr;endendmodule是控制輸入端,k=1時將年月日送來的qr、qy、2.7控制模塊源程序module contr(clk,k1,k2,k); clk input clk,k1,k2;output reg k;kreg3: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間顯示年月日8s顯示時分秒1:k=0;k1k2=01校分和校時2:k=1;k1k2=10年、校月和校日3:k=rc;11是1s時鐘輸入端;k1和k2是控制輸入端是控制輸出端或11時是自動顯示模塊, 控制數(shù)碼

溫馨提示

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

評論

0/150

提交評論