資源描述:
《大規(guī)模程序?qū)V堋酚蓵T上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、大規(guī)模集成電路專題實習秒表的設(shè)計一、專周目的:1、熟練掌握和利用VerilogHDL語言進行數(shù)字系統(tǒng)設(shè)計。2、掌握數(shù)字系統(tǒng)的設(shè)計方法自頂向下的設(shè)計思想。3、熟練使用QuartusII軟件。二、專周器材:裝有QuartusII軟件的電腦一臺、FPGA教學實驗系統(tǒng)一臺、下載電纜一根。三、專周要求:1、有秒分計數(shù)數(shù)碼掃描顯示輸出;2、有清零端和計數(shù)使能短;3、在功能允許的情況下,可以自由發(fā)揮;4、下載,檢查結(jié)果是否正確。四、試驗箱的硬件及引腳:8個LED顯示:25、27、28、29、30、35、36、378個7段數(shù)據(jù)管;A-F:38、39、47、48、49、50、51、52SEL:5、6、78個
2、撥碼開關(guān):53、54、58、59、60、61、62、64分頻輸出:84(IKHz)、44(頻率可調(diào))4X4矩陣按鍵:16、17、18、19(列線,有上拉電阻)21、22、23、24(行線)我們選擇的芯片為EPF10K10LC84-4五、各個功能塊的源程序分別如下(一)十分頻器模塊〃功能:用來產(chǎn)生100HZ計時脈沖十分頻器模塊源程序:modulefenpin10(clk,clkout);inputelk;outputclkout;regclkout;reg[3:0]qout;always@(posedgeelk)beginif(qout==9)beginqout<=0;clkout<二?cl
3、kout;endelseqout<=qout+l;endendmodule//IKHZ時鐘信號//100HZ計時脈沖//內(nèi)部寄存變雖//內(nèi)部寄存變量開始清零//100HZ計時脈沖翻轉(zhuǎn)//內(nèi)部寄存變量計數(shù)(二)跑表模塊〃功能:計數(shù)信號說明:CLK;CLK為時鐘信號;CLR:為異步復位信號;PAUSE:為暫停信號;MSH,MSL:百分秒的高位和低位;SH,SL:秒信號的高位和低位;MH,ML:分鐘信號的高位和低位。->跑表模塊源程序:modulemaobiao(CLK,CLR,PAUSE,MSH,MSL,SH,SUMH,ML);inputCLK,CLR;//CLR異步復位信號inputPAUS
4、E;〃暫停信號output[3:0]MSH,MSL,SH,MH,ML,SL;reg[3:0]MSH,MSL,SH,MH,ML,SL;regcnI,cn2;//cnl為百分秒向秒的進位,cn2為秒向分的進位always@(posedgeCLKorposedgeCLR)//百分秒計數(shù)進程,每計滿100,cnl產(chǎn)生一個進位beginif(CLR)begin{MSH,MSL}<=8,h00;cn1<=0;end〃異步復位〃百分秒復位//PAUSE為0時正常計數(shù),為1時暫停計數(shù)beginif(MSL==9)beginMSL<=0;if(MSH==9)beginMSH<=0;cnl<=l;endels
5、eMSH<=MSH+1;endelsebeginMSL<=MSL+1;cnl<=0;endend〃白分秒低位是否為9//n分秒低位復位//百分秒高位是否為9〃百分秒高位復位//百分秒向秒的進位信號進位〃百分秒高位計數(shù)〃rr分秒低位計數(shù)//百分秒向秒的進位信號復位elseif(!PAUSE)endalways@(posedgecnlorposedgeCLR)//秒計數(shù)進程,每計滿60,cn2產(chǎn)生一個進位beginif(CLR)//異步復位begin{SH,SL}<=8,h00;cn2<=0;endelseif(SL==9)beginSL<=0;if(SH==5)beginSH<=0;cn2<
6、=l;//秒位信號復位〃秒向分的進位信號復位//秒低位是否為9//秒低位信號復位//秒高位是否為5〃秒高位信號復位//秒向分的進位信號進位endelseSH<=SH+1;endelse//秒高位信號計數(shù)beginSL<=SL+1;cn2<=0;endend〃秒低位信號計數(shù)//秒向分的進位信號復位always@(posedgecn2orposedgeCLR)//分計數(shù)進程,每計滿60,系統(tǒng)口動清零beginif(CLR)begin{MH,ML}<=8*h00;//異步復位//分位信號復位endelseif(ML==9)//分低位是否為9beginML<=0;if(MH==5)MH<=0;el
7、seMH<=MH+1;endelseML<=ML+1;endendmodule〃分低位信號復位//分高位是否為5〃分高位信號復位〃分高位信號計數(shù)〃分低位信號計數(shù)選擇器模塊〃選擇計數(shù)信號modulemux6_1(out,MSH,MSL,SH,SL,MH,ML,clksel);output[3:0]out;input[3:0]MSH,MSL,SH,SL,MH,ML;input[2:0]clksel;〃掃描時鐘信號reg[3: