EDA實(shí)現(xiàn)多功能數(shù)字鐘課程設(shè)計(jì).doc
《EDA實(shí)現(xiàn)多功能數(shù)字鐘課程設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《EDA實(shí)現(xiàn)多功能數(shù)字鐘課程設(shè)計(jì).doc(24頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、EDA實(shí)現(xiàn)多功能數(shù)字鐘數(shù)字電子技術(shù)課程設(shè)計(jì)報(bào)告 EDA實(shí)現(xiàn)多功能數(shù)字鐘 專業(yè)班級: 姓 名: 學(xué) 號: 指導(dǎo)教師: 設(shè)計(jì)日期:目錄一、實(shí)驗(yàn)任務(wù)1二、關(guān)鍵詞 1三、內(nèi)容摘要 1四、數(shù)字鐘電路系統(tǒng)組成框圖2五、各個(gè)功能模塊的實(shí)現(xiàn) 3(1)小時(shí)計(jì)時(shí) 3(2)分鐘計(jì)時(shí) 3(3)秒鐘計(jì)時(shí) 4(4)校時(shí)校分5(5)整點(diǎn)報(bào)時(shí)6(6)時(shí)段控制6六、數(shù)字鐘的頂層文件7七、下載 8(1)添加譯碼模塊后的原理圖8(2)選用芯片8(3)分配引腳號9(4)器件下載9(5)效果顯示9八、遇到的問題及解決辦法12九、課程設(shè)計(jì)中設(shè)計(jì)項(xiàng)目完成最終結(jié)論 13十、結(jié)束語 13十一、附錄14一、實(shí)驗(yàn)任務(wù):用FPGA器件和EDA技術(shù)實(shí)
2、現(xiàn)多功能數(shù)字鐘的設(shè)計(jì)已知條件:1、Quartus軟件 2、FPGA實(shí)驗(yàn)開發(fā)裝置基本功能:1、以數(shù)字形式顯示時(shí)、分、秒的時(shí)間; 2、小時(shí)計(jì)數(shù)器為24進(jìn)制; 3、分、秒計(jì)數(shù)器為60進(jìn)制。拓展功能:1、校時(shí)、校分(有兩個(gè)使能端構(gòu)成,分別為校時(shí)、校分功能,同時(shí)按無效) 2、仿電臺(tái)報(bào)時(shí)(每個(gè)小時(shí)的59分51、53、55、57、59分別以四長聲一短聲進(jìn)行報(bào)時(shí)) 3、時(shí)段控制(讓信號顯示燈在晚上19點(diǎn)至早上5點(diǎn)滅。之后亮)二、關(guān)鍵詞 小時(shí)、分鐘計(jì)時(shí)模塊、頂層文件、整點(diǎn)報(bào)時(shí)、時(shí)段控制、下載模塊三、內(nèi)容摘要1、設(shè)計(jì)要求:(1)小時(shí)計(jì)數(shù)器為8421BCD碼24制;分和秒計(jì)數(shù)器為8421BCD碼60進(jìn)制計(jì)數(shù)器;(2
3、)拓展功能:校正“時(shí)”和“分”;整點(diǎn)報(bào)時(shí);時(shí)段控制。2、硬件描述語言設(shè)計(jì)(Verilog HDL語言)方法在Quartus軟件系統(tǒng)平臺(tái)上建立數(shù)字電子鐘電路的頂層文件并完成編譯和仿真。3、輸入變量:時(shí)鐘CPS,直接清零RD;輸出變量:小時(shí)計(jì)時(shí)H7.4、H3.0為8421BCD碼輸出,其時(shí)鐘為CPH;之后的分計(jì)時(shí)、秒計(jì)時(shí)均為8421BCD碼輸出,其時(shí)鐘為CPS等。4、在頂層文件中,由若干低層模塊“打包”組成整個(gè)多功能數(shù)字鐘,分別對各模塊作設(shè)計(jì)及仿真,最后級聯(lián)各模塊,統(tǒng)調(diào)、仿真及下載,從而實(shí)現(xiàn)各項(xiàng)功能。四、數(shù)字鐘電路系統(tǒng)組成框圖:秒顯示器分顯示器時(shí)顯示器仿電臺(tái)報(bào)時(shí)秒譯碼器分譯碼器時(shí)譯碼器主時(shí)段控制體
4、分計(jì)數(shù)器秒計(jì)數(shù)器時(shí)計(jì)數(shù)器電定點(diǎn)鬧時(shí)路校時(shí)電路 拓展電路五、各個(gè)功能模塊的實(shí)現(xiàn)(1)小時(shí)計(jì)時(shí)模塊圖如下: 對該模塊進(jìn)行編譯及波形仿真如下:分析及結(jié)論:由仿真圖看出,當(dāng)小時(shí)的高四位為0、1時(shí),小時(shí)的低四位為九時(shí),在下一個(gè)時(shí)鐘的上跳延來了之后,高四位加一;當(dāng)小時(shí)的高四位為2,同時(shí)低四位為3時(shí),小時(shí)的高低四位都清零。從而實(shí)現(xiàn)0024分的記數(shù)功能。仿真波形顯示里23小時(shí)到00分的循環(huán)的過程仿真到位。 對上述仿真波形圖進(jìn)行打包工作,將24進(jìn)制圖建立成模塊:(2)分鐘計(jì)時(shí) 模塊原理圖如下:對該圖進(jìn)行編譯及波形仿真如下:分析及結(jié)論:分計(jì)數(shù)器是60進(jìn)制的。當(dāng)分鐘的高四位0、1、2、3、4時(shí),小時(shí)的低四位為九時(shí),
5、在下一個(gè)時(shí)鐘的上跳延來了之后,高四位加一;當(dāng)分鐘的高四位為5,同時(shí)低四位為9時(shí),分鐘的高低四位都清零。從而實(shí)現(xiàn)0059秒的記數(shù)功能。Cp60S為向分的進(jìn)位信號上跳沿有效。仿真波形顯示里59秒到00秒的循環(huán)的過程,仿真到位。對上述仿真波形圖進(jìn)行打包工作,將60進(jìn)制圖建立成模塊:(3)秒鐘計(jì)時(shí) 模塊原理圖如下:對該圖進(jìn)行編譯及波形仿真如下分析及結(jié)論:仿真實(shí)現(xiàn)0059秒的記數(shù)功能。Cp60S為向分的進(jìn)位信號上跳沿有效。仿真波形顯示里59秒到00秒的循環(huán)的過程,仿真到位。對上述仿真波形圖進(jìn)行打包工作,將60進(jìn)制圖建立成模塊:(4)校時(shí)校分模塊模塊原理圖如下對該圖進(jìn)行編譯及波形仿真如下分析及結(jié)論:由仿真
6、圖可以看出,當(dāng)SWM為0時(shí),用秒時(shí)鐘CPS對分鐘進(jìn)行校對。當(dāng)SWH、SWM都不為0時(shí)、分鐘、小時(shí)正常計(jì)數(shù)。驗(yàn)證了本模塊的邏輯功能(5)整點(diǎn)報(bào)時(shí)模塊對該圖進(jìn)行編譯及波形仿真如下 由仿真圖波形圖可以看出,當(dāng)為59分51秒53秒55秒57秒時(shí),以低音報(bào)時(shí),當(dāng)以59分59秒時(shí)以高音報(bào)時(shí)。驗(yàn)證了本模塊的邏輯功能正確。(6)時(shí)段控制模塊對該圖進(jìn)行編譯及波形仿真如下 由仿真圖波形圖可以看出,從6點(diǎn)到18點(diǎn),路燈滅,從19點(diǎn)到凌晨5點(diǎn)(包括5點(diǎn))路燈亮,驗(yàn)證了本模塊的邏輯功能正確。六、多功能數(shù)字鐘的頂層文件部分原理圖如下:對該圖進(jìn)行編譯及波形仿真如下由仿真波形分析:電子鐘走時(shí)正常;通過對SWH和SWM的操作,
7、能“校時(shí)”“校分”;整點(diǎn)高音低音報(bào)時(shí);時(shí)段控制路燈的亮滅。七、下載1、添加譯碼模塊后的原理圖2、選用芯片3、分配引腳號4、對器件進(jìn)行下載 在電腦上安裝實(shí)驗(yàn)板驅(qū)動(dòng)然后下載模塊進(jìn)行驗(yàn)證時(shí)鐘功能。5、效果顯示 校時(shí)校分整點(diǎn)報(bào)時(shí)八、課程設(shè)計(jì)中遇到的問題及解決辦法: (1)在用verilog HDL描述模塊時(shí)一些語言的理解不是很熟悉也不是很理解的到位,通過查找其他書籍和詢問老師才得以理解。(2)模塊編譯成功了進(jìn)行仿真的時(shí)候有些時(shí)候得不到相應(yīng)的結(jié)果,會(huì)有錯(cuò)誤出現(xiàn),通過回頭檢查,發(fā)現(xiàn)是自己沒有按照操作步驟中的setting進(jìn)行設(shè)置所以得不到相應(yīng)的仿真圖形。(3)在最后的所有打包模塊級聯(lián)的時(shí)候,很多相應(yīng)的細(xì)節(jié)
8、沒有注意,例如,有些管腳需要輸入這個(gè)管腳而我沒有給,還有一些管腳之間的鏈接,我由于疏忽有些標(biāo)明是大寫,有些標(biāo)明是小寫,因此,聯(lián)接不成功。后來反復(fù)的檢查就成功了。(3)在實(shí)驗(yàn)板上驗(yàn)證效果的時(shí)候在Quartus9.1軟件上進(jìn)行操作,且發(fā)現(xiàn)該軟件中沒有相對應(yīng)的芯片后咨詢老師才知應(yīng)在更高級版本Quartus11.0中操作。(4)在效果顯示上面我一開始的效果是秒鐘走時(shí)正常,到了分鐘該進(jìn)制它不進(jìn)制。老師說是級聯(lián)有問題,經(jīng)過返回去修改模塊、仿真均沒有問題。后來就將分鐘、時(shí)鐘的模塊換成了用圖形仿真進(jìn)行打包然后級聯(lián)在進(jìn)行下載顯示效果,效果是成功的。后來也有部分同學(xué)也出現(xiàn)了這樣的狀況,老師好好的看了各模塊,原來一
9、些模塊有著相應(yīng)的問題。九、課程設(shè)計(jì)中設(shè)計(jì)項(xiàng)目完成最終結(jié)論特點(diǎn): 將我們所學(xué)的知識來運(yùn)用實(shí)現(xiàn)具有以二十四小時(shí)計(jì)時(shí)、顯示、整點(diǎn)報(bào)時(shí)、時(shí)間設(shè)置和時(shí)段控制的功能。實(shí)用性: 數(shù)字電子鐘在我們平常生活中很常用,應(yīng)用比較廣泛,而經(jīng)過我所設(shè)計(jì)的這款數(shù)字鐘設(shè)計(jì)過程也比較簡單,通過編程就能達(dá)到相應(yīng)的功能。 心得體會(huì):縱使有很多問題,但最終都被解決了,雖然有的問題是和同學(xué)討論解決的,有些東西是請教老師的但還是很高興的。在這些錯(cuò)誤中也透露了自己對現(xiàn)有數(shù)電知識掌握的不牢固,對很多概念仍處于朦朧狀態(tài)。以及對軟件的使用不是很熟悉。因此這些是我以后還需要加強(qiáng)學(xué)習(xí)的地方。十、結(jié)束語通過這次VHDL課程設(shè)計(jì),我學(xué)到了很多,對于原
10、本掌握的不好的數(shù)字邏輯相關(guān)知識,在課程設(shè)計(jì)具體實(shí)踐中有了很深刻的認(rèn)識,在對于Quartus的操作上也有很大的提高,增加了操作的熟練程度,現(xiàn)在我已經(jīng)有信心做任何的設(shè)計(jì)課題。 在學(xué)到新知識的同時(shí),我也認(rèn)識到了VHDL設(shè)計(jì)的困難性。同時(shí)我也覺得將所學(xué)的知識融會(huì)貫通的運(yùn)用到實(shí)際操作中還是需要一些更多的鍛煉。最后,感謝老師們幫我處理一些解決不了的問題,還要感謝在我思維陷入困境時(shí)給予我指點(diǎn),讓我獲得靈感的同學(xué)們以及來幫助我解決問題的同學(xué),謝謝大家!十一、附錄1、分頻模塊程序module div_zh(f,_500HzOut,_1KHzOut, ncR,CLOCK_50,s); input ncR,CLOC
11、K_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), .r
12、st_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)?
13、 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
14、(!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
15、: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; / |
16、| 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: dou
17、t_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_
18、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_
19、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; 4h
20、c: 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_00
21、10; / -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: d
22、out_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; / | | 4h
23、9: 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; / | | 4h
24、3: 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;
25、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 =
26、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; endc
27、ase 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;
28、/ -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、參考文獻(xiàn)1、康華光主編。電子技術(shù)基礎(chǔ)數(shù)字部分(第五版).高等教育出版社,2006年2、夏雨聞.Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程.北京航空航天大學(xué)出版社,20033、4、姜雪松,吳鈺淳,等.VHDL設(shè)計(jì)實(shí)例與仿真.北京:機(jī)械工業(yè)出版社,20075、
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《比的意義》教學(xué)課件
- (精品)我們在行動(dòng) (2)
- 孤立奇點(diǎn)留數(shù)習(xí)題課
- 七年級語文下冊(人教版)13-葉圣陶先生二三事(作業(yè))課件
- 《童年》教學(xué)課件
- 61源遠(yuǎn)流長的中華文化
- 浙江中醫(yī)雜志投稿須知
- 底盤與主動(dòng)安全性系統(tǒng)
- 中國臨床解剖學(xué)雜志簡介及來稿須知
- 5《爺爺和小樹》
- (蘇教版)四年級語文上冊課件+桂花雨+1
- 氣管插管病人的醫(yī)療護(hù)理
- 小學(xué)道德講堂“六個(gè)一”模板
- 第29課《詩詞五首-長相思》PPT課件
- 湘科版四年級科學(xué)上冊全冊ppt課件