資源描述:
《基于FPGA的VerilogHDL數(shù)字鐘設(shè)計(jì)-》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、.基于FPGA的VerilogHDL數(shù)字鐘設(shè)計(jì)專(zhuān)業(yè)班級(jí)姓名學(xué)號(hào)一、實(shí)驗(yàn)?zāi)康?.掌握可編程邏輯器件的應(yīng)用開(kāi)發(fā)技術(shù)?——設(shè)計(jì)輸入、編譯、仿真和器件編程;2.熟悉一種EDA軟件使用;3.掌握Verilog設(shè)計(jì)方法;?4.掌握分模塊分層次的設(shè)計(jì)方法;?5.用Verilog完成一個(gè)多功能數(shù)字鐘設(shè)計(jì);?6.學(xué)會(huì)FPGA的仿真。二、實(shí)驗(yàn)要求2功能要求:利用實(shí)驗(yàn)板設(shè)計(jì)實(shí)現(xiàn)一個(gè)能顯示時(shí)分秒的多功能電子鐘,基本功能:1)準(zhǔn)確計(jì)時(shí),以數(shù)字形式顯示時(shí)、分、秒,可通過(guò)按鍵選擇當(dāng)前顯示時(shí)間范圍模式;2)計(jì)時(shí)時(shí)間范圍00:00:00-23:59:593)可實(shí)現(xiàn)校正時(shí)間功能;4)可通過(guò)實(shí)現(xiàn)時(shí)鐘復(fù)
2、位功能:00:00:00擴(kuò)展功能:5)定時(shí)報(bào):時(shí)間自定(不要求改變),鬧1分鐘(1kHz)---利用板上LED或外接電路實(shí)現(xiàn)。6)仿廣播電臺(tái)正點(diǎn)報(bào)時(shí):XX:59:[51,53,55,57(500Hz);59(1kHz)]---用板上LED或外接7)報(bào)整點(diǎn)時(shí)數(shù):XX:00:[00.5-XX.5](1kHz),自動(dòng)、手動(dòng)---用板上LED或外接8)手動(dòng)輸入校時(shí);9)手動(dòng)輸入定時(shí)鬧鐘;10)萬(wàn)年歷;11)其他擴(kuò)展功能;2設(shè)計(jì)步驟與要求:1)計(jì)算并說(shuō)明采用Basys2實(shí)驗(yàn)板時(shí)鐘50MHz實(shí)現(xiàn)系統(tǒng)功能的基本原理。2)在XilinxISE13.1軟件中,利用層次化方法,設(shè)計(jì)實(shí)
3、現(xiàn)模一百計(jì)數(shù)及顯示的電路系統(tǒng),設(shè)計(jì)模塊間的連接調(diào)用關(guān)系,編寫(xiě)并輸入所設(shè)計(jì)的源程序文件。3)對(duì)源程序進(jìn)行編譯及仿真分析(注意合理設(shè)置,以便能夠在驗(yàn)證邏輯的基礎(chǔ)上盡快得出仿真結(jié)果)。4)輸入管腳約束文件,對(duì)設(shè)計(jì)項(xiàng)目進(jìn)行編譯與邏輯綜合,生成下載所需.bit文件。5)在Basys2實(shí)驗(yàn)板上下載所生成的.bit文件,觀察驗(yàn)證所設(shè)計(jì)的電路功能。..三、實(shí)驗(yàn)設(shè)計(jì)功能說(shuō)明:實(shí)現(xiàn)時(shí)鐘,時(shí)間校時(shí),鬧鈴定時(shí),秒表計(jì)時(shí)等功能1.時(shí)鐘功能:完成分鐘/小時(shí)的正確計(jì)數(shù)并顯示;秒的顯示用LED燈的閃爍做指示;時(shí)鐘利用4位數(shù)碼管顯示時(shí)分;2.鬧鐘定時(shí):實(shí)現(xiàn)定時(shí)提醒及定時(shí)報(bào)時(shí),利用LED燈代替揚(yáng)聲器
4、發(fā)出報(bào)時(shí)聲音;3.時(shí)鐘校時(shí):當(dāng)認(rèn)為時(shí)鐘不準(zhǔn)確時(shí),可以分別對(duì)分鐘和小時(shí)位的值進(jìn)行調(diào)整;4.秒表功能:利用4個(gè)數(shù)碼管完成秒表顯示:可以實(shí)現(xiàn)清零、暫停并記錄時(shí)間等功能。秒表利用4位數(shù)碼管計(jì)數(shù);方案說(shuō)明:本次設(shè)計(jì)由時(shí)鐘模塊和譯碼模塊組成。時(shí)鐘模塊中50MHz的系統(tǒng)時(shí)鐘clk分頻產(chǎn)生一個(gè)1Hz的使能控制信號(hào)enable,并以此產(chǎn)生1s的脈沖second_en以實(shí)現(xiàn)每秒計(jì)時(shí),控制各個(gè)模式下的計(jì)數(shù)顯示。由模式控制信號(hào)選擇當(dāng)前數(shù)碼管顯示哪個(gè)狀態(tài):mode=00,時(shí)鐘常規(guī)顯示狀態(tài),mode=01,鬧鈴定時(shí)狀態(tài),mode=10,時(shí)鐘校時(shí)狀態(tài),mode=11,秒表計(jì)時(shí)狀態(tài);時(shí)鐘:利用c
5、ount,smin0,smin1,shour0,shour1的計(jì)數(shù)來(lái)實(shí)現(xiàn),具體情況見(jiàn)程序;校時(shí):當(dāng)turn=1時(shí),調(diào)整分位smin1、smin0;當(dāng)turn=0時(shí),調(diào)整小時(shí)位shour1、shour0;鬧鈴:當(dāng)turn=1時(shí),調(diào)整分位amin1、amin0;當(dāng)turn=0時(shí),調(diào)整小時(shí)位ahour1、ahour0;秒表:當(dāng)pause=0時(shí),開(kāi)始計(jì)時(shí);當(dāng)pause=1時(shí),暫停。四、實(shí)驗(yàn)代碼時(shí)鐘模塊moduleclock(clk,clr,pause,turn,mode,sec,min1,min0,hour1,hour0,alert,LD_alert);inputclk;
6、//時(shí)鐘信號(hào)(50MHz)..inputclr;//清零鍵inputpause;//秒表暫停鍵inputturn;//調(diào)整分還是小時(shí)位的控制input[1:0]mode;//決定時(shí)鐘顯示功能狀態(tài)outputsec;//接發(fā)光二極管output[3:0]min1;//用于輸出接數(shù)碼管4output[3:0]min0;//用于輸出接數(shù)碼管3output[3:0]hour1;//用于輸出接數(shù)碼管2output[3:0]hour0;//用于輸出接數(shù)碼管1outputalert;//接發(fā)光二極管,代替蜂鳴器outputLD_alert;//當(dāng)鬧鈴設(shè)定后,發(fā)光二極管顯示wir
7、esec;//秒位顯示wireLD_alert;//用于鬧鈴存在時(shí)的提醒顯示//wireclk1;//時(shí)鐘1s//wireclk2;//時(shí)鐘100ms,用于秒表最小計(jì)時(shí)單位//wireclr1;reg[3:0]min1;//常規(guī)顯示reg[3:0]min0;//常規(guī)顯示reg[3:0]hour1;//常規(guī)顯示reg[3:0]hour0;//常規(guī)顯示reg[3:0]smin1;//校時(shí)reg[3:0]smin0;//校時(shí)reg[3:0]shour1;//校時(shí)reg[3:0]shour0;//校時(shí)reg[3:0]amin1;//鬧鈴reg[3:0]amin0;//鬧鈴
8、reg[3