版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、蘇州科技學(xué)院EDA電子綜合設(shè)計(jì)蘇州科技學(xué)院天平學(xué)院EDA電子綜合設(shè)計(jì)院 系: 專 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名: 第一部分:設(shè)計(jì)說(shuō)明1.1設(shè)計(jì)任務(wù)設(shè)計(jì)一款數(shù)字電子時(shí)鐘,具體要求如下:1:輸入條件:50MHz時(shí)鐘,2個(gè)輸入按鍵;2:功能實(shí)現(xiàn):具有顯示時(shí)、分、秒功能;采用LED數(shù)碼管顯示;具有鬧鐘與對(duì)時(shí)功能,對(duì)時(shí)精確到分,鬧鐘設(shè)置與對(duì)時(shí)采用按鍵作為輸入信號(hào)。3:采用altera公司的quartusII軟件進(jìn)行編程與仿真,設(shè)計(jì)語(yǔ)言可以選擇VerilogHDL或VHDL。1.2目的與意義訓(xùn)練綜合運(yùn)用學(xué)過(guò)的數(shù)字電子技術(shù)、數(shù)字系統(tǒng)設(shè)計(jì)技術(shù)(HDL硬件設(shè)計(jì))和計(jì)算機(jī)編程及電路相關(guān)基本知識(shí),培養(yǎng)獨(dú)立設(shè)計(jì)比
2、較復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)能力。通過(guò)綜合設(shè)計(jì),力爭(zhēng)掌握使用EDA工具設(shè)計(jì)數(shù)字系統(tǒng)電路的基本方法,包括原理方案的確定、詳細(xì)設(shè)計(jì)中的編程與仿真等一系列過(guò)程,為以后進(jìn)行工程實(shí)踐問(wèn)題的研究打下設(shè)計(jì)基礎(chǔ)。時(shí)鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著社會(huì)的進(jìn)步,科技的的發(fā)展,人們對(duì)它的功能又提出了新的要求,怎樣讓時(shí)鐘更好的為人民服務(wù),怎樣讓我們的老朋 友煥發(fā)青春呢?這就要求人們不斷設(shè)計(jì)出新型時(shí)鐘。現(xiàn)代社會(huì),守時(shí)已不僅關(guān)系到一個(gè)人的職業(yè)生涯,還成了衡量一個(gè)人道德的標(biāo)準(zhǔn)。時(shí)鐘為人們提供了科學(xué)利用時(shí)間規(guī)律的依據(jù),然而,普通的機(jī)械鐘表與半機(jī)械鐘表對(duì)于忙碌的生活顯然早已不太適應(yīng),設(shè)計(jì)一款高精度數(shù)字時(shí)鐘勢(shì)在必行。本課題
3、將通過(guò)對(duì)目前市場(chǎng)上的數(shù)字電子鐘的研究,利用EDA技術(shù)設(shè)計(jì)一款高精度數(shù)字式電子鐘,使人們可以得到精確時(shí)間顯示,幫助人們合理安排時(shí)間,方便人們的生活。第二部分 原理方案設(shè)計(jì)設(shè)計(jì)一個(gè)多功能數(shù)字時(shí)鐘,具有時(shí)分、秒計(jì)數(shù)顯示、鬧鐘功能。能夠利用按鍵實(shí)現(xiàn)對(duì)鬧鐘時(shí)間的設(shè)定并在當(dāng)前顯示時(shí)間到時(shí)后能夠進(jìn)行鬧鐘提示。能夠利用按鍵實(shí)現(xiàn)“較時(shí)”、“較分”功能,隨時(shí)對(duì)數(shù)碼管的顯示進(jìn)行校正和校對(duì)。數(shù)字中系統(tǒng)主要由系統(tǒng)時(shí)鐘,三個(gè)功能按鍵(mode,turn,change),F(xiàn)PGA,數(shù)碼管和蜂鳴器部分組成。分頻模塊計(jì)時(shí)模塊鬧鐘模塊顯示模塊控制模塊蜂鳴器圖1多功能數(shù)字時(shí)鐘整體模塊圖2.1分頻模塊方案設(shè)計(jì)分頻模塊用于為系統(tǒng)的實(shí)現(xiàn)
4、提供穩(wěn)定的工作頻率和計(jì)時(shí)信號(hào)源,產(chǎn)生分頻為1HZ頻率的信號(hào)作為計(jì)時(shí)模塊的信號(hào)源。分頻算法設(shè)計(jì):定義變量并根據(jù)需要得到的分頻信號(hào)設(shè)定計(jì)數(shù)值,對(duì)該變量進(jìn)行加或減計(jì)數(shù),每到達(dá)一次計(jì)數(shù)值點(diǎn),將該變量清零或重置,并且對(duì)輸出信號(hào)取一次反,即可以得到所需的分頻信號(hào)。在這里使用任意分頻計(jì)數(shù)器。定義變量并且設(shè)定一個(gè)上限值,每次加計(jì)數(shù)到該上限值時(shí),輸出該計(jì)數(shù)值的最高位。2.2顯示模塊計(jì)時(shí)模塊是對(duì)1s的信號(hào)源進(jìn)行秒計(jì)時(shí),計(jì)時(shí)滿后向上進(jìn)位的設(shè)計(jì)思想。譯碼顯示模塊采用的是數(shù)碼管的動(dòng)態(tài)掃描方式。2.3控制模塊設(shè)置三個(gè)按鍵,一個(gè)作為功能控制信號(hào),按鍵每次加一,加到三在歸零。為0:計(jì)時(shí)功能; 為1:鬧鈴功能; 為2:手動(dòng)校對(duì)
5、功能。 一個(gè)按鍵選擇是調(diào)整時(shí)間,還是分鐘,若長(zhǎng)時(shí)間按住該鍵,可使秒信號(hào)清零,用于精確調(diào)時(shí)。 一個(gè)按鍵用于手動(dòng)調(diào)整,每按一次,計(jì)數(shù)器加1,如果長(zhǎng)按,則連續(xù)快速加1;用于快速調(diào)時(shí)和定時(shí)。第三部分 詳細(xì)設(shè)計(jì)過(guò)程圖2 頂層模塊3.1分頻模塊3.1.1模塊功能描述該模塊為任意分頻計(jì)數(shù)器,在這里使用了兩個(gè)分頻模塊,分別輸出4Hz和1Khz的時(shí)鐘信號(hào)。功能:對(duì)輸入時(shí)鐘clock進(jìn)行F_DIV倍分頻后輸出clk_out。其中F_DIV為分頻系數(shù),分頻系數(shù)范圍為12n (n=F_DIV_WIDTH)若要改變分頻系數(shù),改變參數(shù)F_DIV或F_DIV_WIDTH到相應(yīng)范圍即可。若分頻系數(shù)為偶數(shù),則輸出時(shí)鐘占空比為5
6、0%;若分頻系數(shù)為奇數(shù),則輸出時(shí)鐘占空比取決于輸入時(shí)鐘占空比和分頻系數(shù)(當(dāng)輸入為50%時(shí),輸出也是50%)。圖3 分頻模塊div_4hz圖4 分頻模塊div_1k3.1.2模塊設(shè)計(jì)思想定義變量為分頻系數(shù),若位偶數(shù),則產(chǎn)生分頻系數(shù)的一半個(gè)時(shí)鐘周期為高電平,分頻系數(shù)的一半個(gè)時(shí)鐘周期為低電平;若為奇數(shù),則相應(yīng)地偏移一個(gè)。3.1.3設(shè)計(jì)關(guān)鍵知識(shí)點(diǎn)若分頻系數(shù)為偶數(shù),則輸出時(shí)鐘占空比為50%;若分頻系數(shù)為奇數(shù),則輸出時(shí)鐘占空比取決于輸入時(shí)鐘占空比和分頻系數(shù)(當(dāng)輸入為50%時(shí),輸出也是50%)。module div_4hz (clock,clk_out); /I/O口聲明inputclock;/輸入時(shí)鐘ou
7、tputclk_out;/輸出時(shí)鐘/內(nèi)部寄存器regclk_p_r;/上升沿輸出時(shí)鐘reg clk_n_r;/下降沿輸出時(shí)鐘regF_DIV_WIDTH - 1:0 count_p;/上升沿脈沖計(jì)數(shù)器regF_DIV_WIDTH - 1:0 count_n;/下降沿脈沖計(jì)數(shù)器/參數(shù)-分頻系數(shù)parameter F_DIV = 12500000;/分頻系數(shù)<<<<-修改這里parameter F_DIV_WIDTH = 32; /分頻計(jì)數(shù)器寬度wire full_div_p;/上升沿計(jì)數(shù)滿標(biāo)志wire half_div_p;/上升沿計(jì)數(shù)半滿標(biāo)志wire full_div_
8、n;/下降沿計(jì)數(shù)滿標(biāo)志wire half_div_n;/下降沿計(jì)數(shù)半滿標(biāo)志/判斷計(jì)數(shù)標(biāo)志位置位與否assign full_div_p = (count_p < F_DIV - 1);assign half_div_p = (count_p < (F_DIV>>1) - 1);assign full_div_n = (count_n < F_DIV - 1);assign half_div_n = (count_n < (F_DIV>>1) - 1);/時(shí)鐘輸出assignclk_out = (F_DIV = 1) ? clock : (F_DIV
9、0 ? (clk_p_r & clk_n_r) : clk_p_r);/上升沿脈沖計(jì)數(shù)always (posedge clock)beginif(full_div_p)begincount_p <= count_p + 1'b1;if(half_div_p)clk_p_r <= 1'b0;elseclk_p_r <= 1'b1;endelsebegincount_p <= 0;clk_p_r <= 1'b0;endend/下降沿脈沖計(jì)數(shù)always (negedge clock)beginif(full_div_n)begi
10、ncount_n <= count_n + 1'b1;if(half_div_n)clk_n_r <= 1'b0;elseclk_n_r <= 1'b1;endelsebegincount_n <= 0;clk_n_r <= 1'b0;endendendmodule3.2顯示模塊3.2.1模塊功能描述該模塊設(shè)計(jì)為時(shí)鐘顯示模塊,一共8個(gè)共陽(yáng)極數(shù)碼管,顯示格式為XX.XX.XX。3.2.2模塊設(shè)計(jì)思想整個(gè)時(shí)鐘的工作應(yīng)該是在1Hz信號(hào)的作用下進(jìn)行,這樣每來(lái)一個(gè)時(shí)鐘信號(hào),秒增加1秒,當(dāng)秒從59秒跳轉(zhuǎn)到00秒時(shí),分鐘增加1分,同時(shí)當(dāng)分鐘從59
11、分跳轉(zhuǎn)到00分時(shí),小時(shí)增加1小時(shí),小時(shí)的范圍為023時(shí)。由于分鐘和秒鐘顯示的范圍都是從059,可以用一個(gè)4位的二進(jìn)制碼顯示十位,用一個(gè)四位的二進(jìn)制碼(BCD碼)顯示個(gè)位;對(duì)于小時(shí)因?yàn)樗姆秶菑?23,同樣可以用一個(gè)4位的二進(jìn)制碼顯示十位,用一個(gè)4位的二進(jìn)制碼(BCD碼)顯示個(gè)位。3.2.3設(shè)計(jì)關(guān)鍵知識(shí)點(diǎn)由于動(dòng)態(tài)掃描,需要一個(gè)頻率較高的時(shí)鐘信號(hào)用于刷新顯示。送入顯示的數(shù)高低4位分離開(kāi)來(lái),分別用于顯示十位和個(gè)位。圖5 顯示模塊scan_ledmodule scan_led(clk_1k,dig,seg,hourh,hourl1,minh,minl1,sech,secl1);input clk_1
12、k;input3:0 hourh,hourl1,minh,minl1,sech,secl1;output7:0dig;output7:0seg;reg7:0dig;reg7:0seg;reg3:0dataout_buf;reg2:0count;always (posedge clk_1k )begin count<=count+1'b1;endalways (posedge clk_1k )begin case(count) 3'd0 : dataout_buf = secl1; 3'd1 : dataout_buf= sech; 3'd2 : datao
13、ut_buf= 4'ha; 3'd3 : dataout_buf = minl1; 3'd4 : dataout_buf= minh; 3'd5 : dataout_buf = 4'ha; 3'd6 : dataout_buf= hourl1; 3'd7 : dataout_buf = hourh; endcasecase(count)3'd0 : dig = 8'b1111_1110; 3'd1 : dig = 8'b1111_1101; 3'd2 : dig = 8'b1111_1011
14、; 3'd3 : dig = 8'b1111_0111; 3'd4 : dig = 8'b1110_1111; 3'd5 : dig = 8'b1101_1111; 3'd6 : dig = 8'b1011_1111; 3'd7 : dig = 8'b0111_1111; endcaseendalways(dataout_buf)begincase(dataout_buf)4'h0:seg=8'b0000_0011;4'h1:seg=8'b1001_1111;4'h2:seg
15、=8'b0010_0101;4'h3:seg=8'b0000_1101;4'h4:seg=8'b1001_1001;4'h5:seg=8'b0100_1001;4'h6:seg=8'b0100_0001;4'h7:seg=8'b0001_1111;4'h8:seg=8'b0000_0001;4'h9:seg=8'b0000_1001;4'ha:seg=8'b1111_1101; endcaseendendmodule3.3時(shí)鐘控制模塊3.3.1模塊設(shè)計(jì)功能該模
16、塊設(shè)計(jì)為多功能數(shù)字鐘的控制模塊。 各信號(hào)引腳功能定義為:mode:功能控制信號(hào);為0:計(jì)時(shí)功能; 為1:鬧鈴功能; 為2:手動(dòng)校對(duì)功能; turn:在手動(dòng)校對(duì)時(shí),選擇是調(diào)整時(shí)間,還是分鐘,若長(zhǎng)時(shí)間按住該鍵,可使秒信號(hào)清零,用于精確調(diào)時(shí); change:手動(dòng)調(diào)整時(shí),每按一次,計(jì)數(shù)器加1,如果長(zhǎng)按,則連續(xù)快速加1;用于快速調(diào)時(shí)和定時(shí);hour,min,sec:時(shí),分,秒顯示信號(hào); alert:揚(yáng)聲器驅(qū)動(dòng)信號(hào);用于產(chǎn)生鬧鈴音和報(bào)時(shí)音;鬧鈴音為持續(xù)20秒的急促的“嘀嘀嘀”音 ,若按住“change”鍵,可屏蔽該鬧鈴音;整點(diǎn)報(bào)時(shí)音為“嘀嘀嘀嘀嘟”四短一長(zhǎng)音;LD_alert:接發(fā)光二極管,指示是否設(shè)置了
17、鬧鐘功能; LD_hour:接發(fā)光二極管,指示當(dāng)前調(diào)整的是小時(shí)信號(hào); LD_min: 接發(fā)光二極管,指示當(dāng)前調(diào)整的是分鐘信號(hào)。3.3.2模塊設(shè)計(jì)思想mode按鍵每觸發(fā)一次,定義一個(gè)變量m自加,從0加到2;加滿2,重新置為0。用case語(yǔ)句產(chǎn)生3種模式。圖6 時(shí)鐘模塊clock1module clock(clk,clk_1k,mode,change,turn,alert,hourh,hourl1,minh,minl1,sech,secl1,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_aler
18、t,LD_hour,LD_min;output3:0 hourh,hourl1,minh,minl1,sech,secl1;reg7:0 hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0 m,fm,num1,num2,num3,num4;reg1:0 loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,
19、ctb,m_clk,h_clk;always (posedge clk)beginclk_2Hz<=clk_2Hz;if(sound=3) begin sound<=0; ear<=1; endelse begin sound<=sound+1; ear<=0; endend / ear信號(hào)用于產(chǎn)生或屏蔽聲音always (posedge clk_2Hz) /由4HZ的輸入時(shí)鐘產(chǎn)生1HZ的時(shí)基信號(hào)clk_1Hz<=clk_1Hz;always (negedge mode) / mode信號(hào)控制系統(tǒng)在三種功能間的轉(zhuǎn)換begin if(m=2) m<=0;
20、 else m<=m+1;endalways (negedge turn) /產(chǎn)生count1, count1 ,count a ,countb四個(gè)信號(hào)fm<=fm;always begin case(m) 2:begin if(!fm) begincount1<=!change; LD_min,LD_hour<=2; endelse begin counta<=!change; LD_min,LD_hour<=1; endcount2,countb<=0; end 1:begin if(!fm) begincount2<=!change; LD
21、_min,LD_hour<=2; endelsebegin countb<=!change; LD_min,LD_hour<=1; endcount1,counta<=2'b00; end default: count1,count2,counta,countb,LD_min,LD_hour<=0; endcase endalways (negedge clk)if(count2) beginif(loop1=3) num1<=1;elsebegin loop1<=loop1+1; num1<=0; endendelse begin lo
22、op1<=0; num1<=0; endalways (negedge clk)if(countb) beginif(loop2=3) num2<=1;elsebegin loop2<=loop2+1; num2<=0; endendelse begin loop2<=0; num2<=0; endalways (negedge clk)if(count1) beginif(loop3=3) num3<=1;elsebegin loop3<=loop3+1; num3<=0; endendelse begin loop3<=0;
23、 num3<=0; endalways (negedge clk)if(counta) beginif(loop4=3) num4<=1;elsebegin loop4<=loop4+1; num4<=0; endendelse begin loop4<=0; num4<=0; endassign ct1=(num3&clk)|(!num3&m_clk);assign ct2=(num1&clk)|(!num1&count2);assign cta=(num4&clk)|(!num4&h_clk);assign
24、 ctb=(num2&clk)|(!num2&countb);always (posedge clk_1Hz)if(!(sec18'h59)|(!turn)&(!m) beginsec1<=0; if(!(!turn)&(!m) minclk<=1;endelse beginif(sec13:0=4'b1001) begin sec13:0<=4'b0000; sec17:4<=sec17:4+1; endelse sec13:0<=sec13:0+1; minclk<=0;endassign m_cl
25、k=minclk|count1;always (posedge ct1)beginif(min1=8'h59) begin min1<=0; hclk<=1; endelse beginif(min13:0=9)begin min13:0<=0; min17:4<=min17:4+1; endelse min13:0<=min13:0+1; hclk<=0;endendassign h_clk=hclk|counta;always (posedge cta)if(hour1=8'h23) hour1<=0;elseif(hour13:0
26、=9) begin hour17:4<=hour17:4+1; hour13:0<=0; endelse hour13:0<=hour13:0+1;always (posedge ct2)if(amin=8'h59) amin<=0;elseif(amin3:0=9)begin amin3:0<=0; amin7:4<=amin7:4+1; endelse amin3:0<=amin3:0+1;always (posedge ctb)if(ahour=8'h23) ahour<=0;elseif(ahour3:0=9)begin
27、ahour3:0<=0; ahour7:4<=ahour7:4+1; endelse ahour3:0<=ahour3:0+1;alwaysif(min1=amin)&&(hour1=ahour)&&(amin|ahour)&&(change)if(sec1<8'h20) alert1<=1;else alert1<=0;else alert1<=0;always case(m)3'b00:begin hour<=hour1; min<=min1; sec<=sec1; end3'b01:begin hour<=ahour; min<=amin; sec<=8'hzz; end3'b10:begin hour<=hour1; min<=min1; sec<=8'hzz; endendcaseassign LD_alert=(ahour|amin)?1:0;assign alert=(alert1)?clk_1k&clk:0)|alert
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 比一比(說(shuō)課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)滬教版
- 2025年度物流倉(cāng)儲(chǔ)合同:電商平臺(tái)與物流公司2篇
- 第四章運(yùn)動(dòng)和力的關(guān)系 大單元說(shuō)課稿-2023-2024學(xué)年高一上學(xué)期物理人教版(2019)必修第一冊(cè)
- 2025年度消防設(shè)施智能巡檢與維護(hù)服務(wù)合同3篇
- 413 香港和澳門(mén)回歸祖國(guó) 說(shuō)課稿 2023-2024學(xué)年統(tǒng)編版八年級(jí)歷史下冊(cè)
- Module 3 Unit 2 What's the elephant doing?(說(shuō)課稿)-2024-2025學(xué)年外研版(三起)英語(yǔ)四年級(jí)上冊(cè)
- 第9課 按圖索驥-制作熱點(diǎn)超鏈接 說(shuō)課稿 -2023--2024學(xué)年清華大學(xué)版(2012)初中信息技術(shù)八年級(jí)下冊(cè)
- 第一章空間向量與立體幾何大單元整體學(xué)習(xí)說(shuō)課稿-2024-2025學(xué)年高二上學(xué)期數(shù)學(xué)人教A版(2019)選擇性必修第一冊(cè)
- 2025年滬科版九年級(jí)物理上冊(cè)月考試卷
- 2025年浙科版二年級(jí)英語(yǔ)下冊(cè)月考試卷含答案
- 2024年石家莊正定國(guó)際機(jī)場(chǎng)改擴(kuò)建工程合同
- 2025年度愛(ài)讀書(shū)學(xué)長(zhǎng)定制化閱讀計(jì)劃合同2篇
- 河南省信陽(yáng)市浉河區(qū)9校聯(lián)考2024-2025學(xué)年八年級(jí)上學(xué)期12月月考地理試題(含答案)
- 快速康復(fù)在骨科護(hù)理中的應(yīng)用
- 國(guó)民經(jīng)濟(jì)行業(yè)分類和代碼表(電子版)
- GB/T 44823-2024綠色礦山評(píng)價(jià)通則
- 漂亮的可編輯顏色魚(yú)骨圖PPT模板
- GB∕T 7588.1-2020 電梯制造與安裝安全規(guī)范 第1部分:乘客電梯和載貨電梯
- 植物種植施工方案與技術(shù)措施
- 空調(diào)工程竣工驗(yàn)收單(共1頁(yè))
- STM32固件庫(kù)使用手冊(cè)(中文版)
評(píng)論
0/150
提交評(píng)論