歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

EDA實現(xiàn)多功能數(shù)字鐘課程設計.doc

  • 資源ID:116540233       資源大?。?span id="wcorokd" class="font-tahoma">7.11MB        全文頁數(shù):24頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

EDA實現(xiàn)多功能數(shù)字鐘課程設計.doc

EDA實現(xiàn)多功能數(shù)字鐘數(shù)字電子技術課程設計報告 EDA實現(xiàn)多功能數(shù)字鐘 專業(yè)班級: 姓 名: 學 號: 指導教師: 設計日期:目錄一、實驗任務1二、關鍵詞 1三、內容摘要 1四、數(shù)字鐘電路系統(tǒng)組成框圖2五、各個功能模塊的實現(xiàn) 3(1)小時計時 3(2)分鐘計時 3(3)秒鐘計時 4(4)校時校分5(5)整點報時6(6)時段控制6六、數(shù)字鐘的頂層文件7七、下載 8(1)添加譯碼模塊后的原理圖8(2)選用芯片8(3)分配引腳號9(4)器件下載9(5)效果顯示9八、遇到的問題及解決辦法12九、課程設計中設計項目完成最終結論 13十、結束語 13十一、附錄14一、實驗任務:用FPGA器件和EDA技術實現(xiàn)多功能數(shù)字鐘的設計已知條件:1、Quartus軟件 2、FPGA實驗開發(fā)裝置基本功能:1、以數(shù)字形式顯示時、分、秒的時間; 2、小時計數(shù)器為24進制; 3、分、秒計數(shù)器為60進制。拓展功能:1、校時、校分(有兩個使能端構成,分別為校時、校分功能,同時按無效) 2、仿電臺報時(每個小時的59分51、53、55、57、59分別以四長聲一短聲進行報時) 3、時段控制(讓信號顯示燈在晚上19點至早上5點滅。之后亮)二、關鍵詞 小時、分鐘計時模塊、頂層文件、整點報時、時段控制、下載模塊三、內容摘要1、設計要求:(1)小時計數(shù)器為8421BCD碼24制;分和秒計數(shù)器為8421BCD碼60進制計數(shù)器;(2)拓展功能:校正“時”和“分”;整點報時;時段控制。2、硬件描述語言設計(Verilog HDL語言)方法在Quartus軟件系統(tǒng)平臺上建立數(shù)字電子鐘電路的頂層文件并完成編譯和仿真。3、輸入變量:時鐘CPS,直接清零RD;輸出變量:小時計時H7.4、H3.0為8421BCD碼輸出,其時鐘為CPH;之后的分計時、秒計時均為8421BCD碼輸出,其時鐘為CPS等。4、在頂層文件中,由若干低層模塊“打包”組成整個多功能數(shù)字鐘,分別對各模塊作設計及仿真,最后級聯(lián)各模塊,統(tǒng)調、仿真及下載,從而實現(xiàn)各項功能。四、數(shù)字鐘電路系統(tǒng)組成框圖:秒顯示器分顯示器時顯示器仿電臺報時秒譯碼器分譯碼器時譯碼器主時段控制體分計數(shù)器秒計數(shù)器時計數(shù)器電定點鬧時路校時電路 拓展電路五、各個功能模塊的實現(xiàn)(1)小時計時模塊圖如下: 對該模塊進行編譯及波形仿真如下:分析及結論:由仿真圖看出,當小時的高四位為0、1時,小時的低四位為九時,在下一個時鐘的上跳延來了之后,高四位加一;當小時的高四位為2,同時低四位為3時,小時的高低四位都清零。從而實現(xiàn)0024分的記數(shù)功能。仿真波形顯示里23小時到00分的循環(huán)的過程仿真到位。 對上述仿真波形圖進行打包工作,將24進制圖建立成模塊:(2)分鐘計時 模塊原理圖如下:對該圖進行編譯及波形仿真如下:分析及結論:分計數(shù)器是60進制的。當分鐘的高四位0、1、2、3、4時,小時的低四位為九時,在下一個時鐘的上跳延來了之后,高四位加一;當分鐘的高四位為5,同時低四位為9時,分鐘的高低四位都清零。從而實現(xiàn)0059秒的記數(shù)功能。Cp60S為向分的進位信號上跳沿有效。仿真波形顯示里59秒到00秒的循環(huán)的過程,仿真到位。對上述仿真波形圖進行打包工作,將60進制圖建立成模塊:(3)秒鐘計時 模塊原理圖如下:對該圖進行編譯及波形仿真如下分析及結論:仿真實現(xiàn)0059秒的記數(shù)功能。Cp60S為向分的進位信號上跳沿有效。仿真波形顯示里59秒到00秒的循環(huán)的過程,仿真到位。對上述仿真波形圖進行打包工作,將60進制圖建立成模塊:(4)校時校分模塊模塊原理圖如下對該圖進行編譯及波形仿真如下分析及結論:由仿真圖可以看出,當SWM為0時,用秒時鐘CPS對分鐘進行校對。當SWH、SWM都不為0時、分鐘、小時正常計數(shù)。驗證了本模塊的邏輯功能(5)整點報時模塊對該圖進行編譯及波形仿真如下 由仿真圖波形圖可以看出,當為59分51秒53秒55秒57秒時,以低音報時,當以59分59秒時以高音報時。驗證了本模塊的邏輯功能正確。(6)時段控制模塊對該圖進行編譯及波形仿真如下 由仿真圖波形圖可以看出,從6點到18點,路燈滅,從19點到凌晨5點(包括5點)路燈亮,驗證了本模塊的邏輯功能正確。六、多功能數(shù)字鐘的頂層文件部分原理圖如下:對該圖進行編譯及波形仿真如下由仿真波形分析:電子鐘走時正常;通過對SWH和SWM的操作,能“校時”“校分”;整點高音低音報時;時段控制路燈的亮滅。七、下載1、添加譯碼模塊后的原理圖2、選用芯片3、分配引腳號4、對器件進行下載 在電腦上安裝實驗板驅動然后下載模塊進行驗證時鐘功能。5、效果顯示 校時校分整點報時八、課程設計中遇到的問題及解決辦法: (1)在用verilog HDL描述模塊時一些語言的理解不是很熟悉也不是很理解的到位,通過查找其他書籍和詢問老師才得以理解。(2)模塊編譯成功了進行仿真的時候有些時候得不到相應的結果,會有錯誤出現(xiàn),通過回頭檢查,發(fā)現(xiàn)是自己沒有按照操作步驟中的setting進行設置所以得不到相應的仿真圖形。(3)在最后的所有打包模塊級聯(lián)的時候,很多相應的細節(jié)沒有注意,例如,有些管腳需要輸入這個管腳而我沒有給,還有一些管腳之間的鏈接,我由于疏忽有些標明是大寫,有些標明是小寫,因此,聯(lián)接不成功。后來反復的檢查就成功了。(3)在實驗板上驗證效果的時候在Quartus9.1軟件上進行操作,且發(fā)現(xiàn)該軟件中沒有相對應的芯片后咨詢老師才知應在更高級版本Quartus11.0中操作。(4)在效果顯示上面我一開始的效果是秒鐘走時正常,到了分鐘該進制它不進制。老師說是級聯(lián)有問題,經過返回去修改模塊、仿真均沒有問題。后來就將分鐘、時鐘的模塊換成了用圖形仿真進行打包然后級聯(lián)在進行下載顯示效果,效果是成功的。后來也有部分同學也出現(xiàn)了這樣的狀況,老師好好的看了各模塊,原來一些模塊有著相應的問題。九、課程設計中設計項目完成最終結論特點: 將我們所學的知識來運用實現(xiàn)具有以二十四小時計時、顯示、整點報時、時間設置和時段控制的功能。實用性: 數(shù)字電子鐘在我們平常生活中很常用,應用比較廣泛,而經過我所設計的這款數(shù)字鐘設計過程也比較簡單,通過編程就能達到相應的功能。 心得體會:縱使有很多問題,但最終都被解決了,雖然有的問題是和同學討論解決的,有些東西是請教老師的但還是很高興的。在這些錯誤中也透露了自己對現(xiàn)有數(shù)電知識掌握的不牢固,對很多概念仍處于朦朧狀態(tài)。以及對軟件的使用不是很熟悉。因此這些是我以后還需要加強學習的地方。十、結束語通過這次VHDL課程設計,我學到了很多,對于原本掌握的不好的數(shù)字邏輯相關知識,在課程設計具體實踐中有了很深刻的認識,在對于Quartus的操作上也有很大的提高,增加了操作的熟練程度,現(xiàn)在我已經有信心做任何的設計課題。 在學到新知識的同時,我也認識到了VHDL設計的困難性。同時我也覺得將所學的知識融會貫通的運用到實際操作中還是需要一些更多的鍛煉。最后,感謝老師們幫我處理一些解決不了的問題,還要感謝在我思維陷入困境時給予我指點,讓我獲得靈感的同學們以及來幫助我解決問題的同學,謝謝大家!十一、附錄1、分頻模塊程序module div_zh(f,_500HzOut,_1KHzOut, ncR,CLOCK_50,s); input ncR,CLOCK_50,s; output _500HzOut,_1KHzOut,f; wire _1HzOut,_5HzOut; assign f=s?_5HzOut:_1HzOut; divn #(.WIDTH(26),.N(50000000) u0(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_1HzOut) ); divn #(.WIDTH(17),.N(100000) u1(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_500HzOut) ); divn #(.WIDTH(16),.N(50000) u2(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_1KHzOut) ); divn #(.WIDTH(24),.N(10000000) u3(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_5HzOut) ); endmodulemodule divn(o_clk,clk,rst_n); input clk,rst_n; output o_clk; parameter WIDTH=3; parameter N=6; reg WIDTH-1:0 cnt_p; reg WIDTH-1:0 cnt_n; reg clk_p; reg clk_n; assign o_clk=(N=1)? clk:(N0?(clk_p|clk_n):clk_p); always (posedge clk or negedge rst_n) begin if(!rst_n) cnt_p=0; else if(cnt_p=N-1) cnt_p=0; else cnt_p=cnt_p+1; end always (posedge clk or negedge rst_n) begin if(!rst_n) clk_p=0; else if(cnt_p1) clk_p=1; else clk_p=0; end always (negedge clk or negedge rst_n) begin if(!rst_n) cnt_n=0; else if(cnt_n=N-1) cnt_n=0; else cnt_n=cnt_n+1; end always (negedge clk or negedge rst_n) begin if(!rst_n) clk_n=0; else if(cnt_n1) clk_n=1; else clk_n=0; end endmodule2、譯碼模塊程序module decode4_7 ( input 3:0 indec_0,indec_1,indec_2,indec_3,indec_4,indec_5,indec_6,indec_7, output reg 6:0 dout_0,dout_1,dout_2,dout_3,dout_4,dout_5,dout_6,dout_7);always(indec_0 or indec_1 or indec_2 or indec_3 or indec_4 or indec_5 or indec_6 or indec_7 ) begin case(indec_0) 4h1: dout_0 = 7b111_1001; / -0- 4h2: dout_0 = 7b010_0100; / | | 4h3: dout_0 = 7b011_0000; / 5 1 4h4: dout_0 = 7b001_1001; / | | 4h5: dout_0 = 7b001_0010; / -6- 4h6: dout_0 = 7b000_0010; / | | 4h7: dout_0 = 7b111_1000; / 4 2 4h8: dout_0 = 7b000_0000; / | | 4h9: dout_0 = 7b001_1000; / -3- 4ha: dout_0 = 7b000_1000; 4hb: dout_0 = 7b000_0011; 4hc: dout_0 = 7b100_0110; 4hd: dout_0 = 7b010_0001; 4he: dout_0 = 7b000_0110; 4hf: dout_0 = 7b000_1110; 4h0: dout_0 = 7b100_0000; endcase case(indec_1) 4h1: dout_1 = 7b111_1001; / -0- 4h2: dout_1 = 7b010_0100; / | | 4h3: dout_1 = 7b011_0000; / 5 1 4h4: dout_1 = 7b001_1001; / | | 4h5: dout_1 = 7b001_0010; / -6- 4h6: dout_1 = 7b000_0010; / | | 4h7: dout_1 = 7b111_1000; / 4 2 4h8: dout_1 = 7b000_0000; / | | 4h9: dout_1 = 7b001_1000; / -3- 4ha: dout_1 = 7b000_1000; 4hb: dout_1 = 7b000_0011; 4hc: dout_1 = 7b100_0110; 4hd: dout_1 = 7b010_0001; 4he: dout_1 = 7b000_0110; 4hf: dout_1 = 7b000_1110; 4h0: dout_1 = 7b100_0000; endcase case(indec_2) 4h1: dout_2 = 7b111_1001; / -0- 4h2: dout_2 = 7b010_0100; / | | 4h3: dout_2 = 7b011_0000; / 5 1 4h4: dout_2 = 7b001_1001; / | | 4h5: dout_2 = 7b001_0010; / -6- 4h6: dout_2 = 7b000_0010; / | | 4h7: dout_2 = 7b111_1000; / 4 2 4h8: dout_2 = 7b000_0000; / | | 4h9: dout_2 = 7b001_1000; / -3- 4ha: dout_2 = 7b000_1000; 4hb: dout_2 = 7b000_0011; 4hc: dout_2 = 7b100_0110; 4hd: dout_2 = 7b010_0001; 4he: dout_2 = 7b000_0110; 4hf: dout_2 = 7b000_1110; 4h0: dout_2 = 7b100_0000; endcase case(indec_3) 4h1: dout_3 = 7b111_1001; / -0- 4h2: dout_3 = 7b010_0100; / | | 4h3: dout_3 = 7b011_0000; / 5 1 4h4: dout_3 = 7b001_1001; / | | 4h5: dout_3 = 7b001_0010; / -6- 4h6: dout_3 = 7b000_0010; / | | 4h7: dout_3 = 7b111_1000; / 4 2 4h8: dout_3 = 7b000_0000; / | | 4h9: dout_3 = 7b001_1000; / -3- 4ha: dout_3 = 7b000_1000; 4hb: dout_3 = 7b000_0011; 4hc: dout_3 = 7b100_0110; 4hd: dout_3 = 7b010_0001; 4he: dout_3 = 7b000_0110; 4hf: dout_3 = 7b000_1110; 4h0: dout_3 = 7b100_0000; endcase case(indec_4) 4h1: dout_4 = 7b111_1001; / -0- 4h2: dout_4 = 7b010_0100; / | | 4h3: dout_4 = 7b011_0000; / 5 1 4h4: dout_4 = 7b001_1001; / | | 4h5: dout_4 = 7b001_0010; / -6- 4h6: dout_4 = 7b000_0010; / | | 4h7: dout_4 = 7b111_1000; / 4 2 4h8: dout_4 = 7b000_0000; / | | 4h9: dout_4 = 7b001_1000; / -3- 4ha: dout_4 = 7b000_1000; 4hb: dout_4 = 7b000_0011; 4hc: dout_4 = 7b100_0110; 4hd: dout_4 = 7b010_0001; 4he: dout_4 = 7b000_0110; 4hf: dout_4 = 7b000_1110; 4h0: dout_4 = 7b100_0000; endcase case(indec_5) 4h1: dout_5 = 7b111_1001; / -0- 4h2: dout_5 = 7b010_0100; / | | 4h3: dout_5 = 7b011_0000; / 5 1 4h4: dout_5 = 7b001_1001; / | | 4h5: dout_5 = 7b001_0010; / -6- 4h6: dout_5 = 7b000_0010; / | | 4h7: dout_5 = 7b111_1000; / 4 2 4h8: dout_5 = 7b000_0000; / | | 4h9: dout_5 = 7b001_1000; / -3- 4ha: dout_5 = 7b000_1000; 4hb: dout_5 = 7b000_0011; 4hc: dout_5 = 7b100_0110; 4hd: dout_5 = 7b010_0001; 4he: dout_5 = 7b000_0110; 4hf: dout_5 = 7b000_1110; 4h0: dout_5 = 7b100_0000; endcase case(indec_6) 4h1: dout_6 = 7b111_1001; / -0- 4h2: dout_6 = 7b010_0100; / | | 4h3: dout_6 = 7b011_0000; / 5 1 4h4: dout_6 = 7b001_1001; / | | 4h5: dout_6 = 7b001_0010; / -6- 4h6: dout_6 = 7b000_0010; / | | 4h7: dout_6 = 7b111_1000; / 4 2 4h8: dout_6 = 7b000_0000; / | | 4h9: dout_6 = 7b001_1000; / -3- 4ha: dout_6 = 7b000_1000; 4hb: dout_6 = 7b000_0011; 4hc: dout_6 = 7b100_0110; 4hd: dout_6 = 7b010_0001; 4he: dout_6 = 7b000_0110; 4hf: dout_6 = 7b000_1110; 4h0: dout_6 = 7b100_0000; endcase case(indec_7) 4h1: dout_7 = 7b111_1001; / -0- 4h2: dout_7 = 7b010_0100; / | | 4h3: dout_7 = 7b011_0000; / 5 1 4h4: dout_7 = 7b001_1001; / | | 4h5: dout_7 = 7b001_0010; / -6- 4h6: dout_7 = 7b000_0010; / | | 4h7: dout_7 = 7b111_1000; / 4 2 4h8: dout_7 = 7b000_0000; / | | 4h9: dout_7 = 7b001_1000; / -3- 4ha: dout_7 = 7b000_1000; 4hb: dout_7 = 7b000_0011; 4hc: dout_7 = 7b100_0110; 4hd: dout_7 = 7b010_0001; 4he: dout_7 = 7b000_0110; 4hf: dout_7 = 7b000_1110; 4h0: dout_7 = 7b100_0000; endcase endendmodule3、參考文獻1、康華光主編。電子技術基礎數(shù)字部分(第五版).高等教育出版社,2006年2、夏雨聞.Verilog 數(shù)字系統(tǒng)設計教程.北京航空航天大學出版社,20033、4、姜雪松,吳鈺淳,等.VHDL設計實例與仿真.北京:機械工業(yè)出版社,20075、

注意事項

本文(EDA實現(xiàn)多功能數(shù)字鐘課程設計.doc)為本站會員(good****022)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!