fpga數(shù)字鐘實(shí)訓(xùn)報(bào)告
桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院
FPGA應(yīng)用實(shí)訓(xùn)報(bào)告
學(xué)院(系):專業(yè):學(xué)號(hào):學(xué)生姓名:指導(dǎo)教師:數(shù)字鐘
電子信息工程系
電子信息工程技術(shù)
xxxxxxxxxx
xxxxxx
xxxxxx
目錄
摘要1
引言2
一、設(shè)計(jì)任務(wù)與要求3
二、總體設(shè)計(jì)方案3
三、程序設(shè)計(jì)方案3
(1)分頻模塊實(shí)現(xiàn)方案13
(2)分頻模塊實(shí)現(xiàn)方案24
(3)計(jì)時(shí)模塊實(shí)現(xiàn)方案14
(4)計(jì)時(shí)模塊實(shí)現(xiàn)方案24
(5)方案總結(jié)5
四、系統(tǒng)軟件原理5
(1)主程序入口即變量定義5
(2)計(jì)時(shí)模塊6
五、系統(tǒng)硬件原理6
心得體會(huì)8
致謝9
參考文獻(xiàn)10
附錄11
桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
摘要
數(shù)字鐘是人們?nèi)粘I钪薪?jīng)常使用的計(jì)時(shí)工具,本次的課程設(shè)計(jì)是基于VerilogHDL的多功能數(shù)字鐘,完成時(shí)、分、秒的顯示功能。設(shè)計(jì)利用VerilogHDL語言自頂向下的設(shè)計(jì)理念,突出其作為硬件描述語言的良好的可讀性、可移植性以及易于理解等優(yōu)點(diǎn)。程序下載到FPGA芯片后,可用于實(shí)際的數(shù)字鐘顯示中。
此次設(shè)計(jì)的邏輯結(jié)構(gòu)主要由分頻器、計(jì)數(shù)器和譯碼顯示器三個(gè)模塊構(gòu)成。分頻模塊將50Mhz系統(tǒng)基準(zhǔn)時(shí)鐘分頻產(chǎn)生兩路時(shí)鐘信號(hào),一路是1HZ的數(shù)字鐘計(jì)時(shí)工作頻率,一路是數(shù)碼管動(dòng)態(tài)顯示的掃描頻率;計(jì)時(shí)模塊對(duì)1HZ的時(shí)鐘信號(hào)進(jìn)行計(jì)時(shí),分為時(shí)、分、秒三個(gè)部分;與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長(zhǎng)的使用壽命,已得到廣泛的使用。數(shù)字鐘的設(shè)計(jì)方法有許多種,例如,可用中小規(guī)模集成電路組成電子鐘;也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘;鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。譯碼顯示模塊采用動(dòng)態(tài)掃描的方式完成數(shù)碼管的顯示。最后通過主模塊調(diào)用三個(gè)子模塊函數(shù)完成整個(gè)設(shè)計(jì)。
【關(guān)鍵詞】硬件描述語言FPGA數(shù)字鐘
第1頁桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
引言
現(xiàn)代電子設(shè)計(jì)技術(shù)進(jìn)入了一個(gè)新的階段。傳統(tǒng)的電子設(shè)計(jì)方法、工具和器件在更大程度上被EDA所取代。EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和模擬,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映像和程序設(shè)計(jì)下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。VerilogHDL是EDA技術(shù)的重要組成部分,VerilogHDL具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級(jí)、寄存器傳輸級(jí)、邏輯門級(jí)三個(gè)不同層次的設(shè)計(jì),支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述。ASIC是專用的系統(tǒng)集成電路而FPGA是特殊的ASIC芯片具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)等優(yōu)點(diǎn)。一、設(shè)計(jì)任務(wù)與要求
(1)設(shè)計(jì)一個(gè)數(shù)碼管實(shí)時(shí)顯示時(shí)、分、秒的數(shù)字時(shí)鐘(24小時(shí)顯示模式)(2)為了演示方便,應(yīng)具有分鐘、小時(shí)快進(jìn)功能。(3)到點(diǎn)報(bào)時(shí)、鬧鐘時(shí)間固定為8:00(4)同時(shí)設(shè)置按鍵調(diào)時(shí)。
二、總體設(shè)計(jì)方案
(1)方案一用數(shù)電制作一個(gè)數(shù)字鐘,通過74L74芯片實(shí)現(xiàn)數(shù)碼管計(jì)數(shù)功能
用與非門結(jié)合,用按鍵來設(shè)置實(shí)現(xiàn)鬧鐘和整點(diǎn)報(bào)時(shí)的功能。(2)方案二用fpga來制作一個(gè)數(shù)字鐘,通過編寫程序來控制fpga芯片輸出輸入來得到數(shù)字鐘的功能,同時(shí)用fpga板來實(shí)現(xiàn)該功能。通過單片機(jī)試驗(yàn)箱來實(shí)現(xiàn)該功能,最終達(dá)到相應(yīng)的結(jié)果?偨Y(jié):
方案一用數(shù)電的方式做數(shù)字鐘,用的芯片多同時(shí)之制作麻煩,不適合制做數(shù)字鐘。方案二制作比較便捷,只需要寫程序,制作業(yè)是比較方便,也比較實(shí)現(xiàn)功能。方案三用單片機(jī)雖然也是編寫程序,可是和FPGA相比我個(gè)人覺得還是比單片機(jī)好做一點(diǎn)。綜合上述我選擇FPGA來制作該程序
(3)方案三用單片機(jī)來控制數(shù)字鐘,通過編寫程序來實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)功能,
三、程序設(shè)計(jì)方案
(1)分頻模塊實(shí)現(xiàn)方案1
第2頁桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
定義變量并且設(shè)定一個(gè)上限值,每次加計(jì)數(shù)到該上限值時(shí),輸出該計(jì)數(shù)值的
parameterDIV_SIZE=25;always@(posedgeclock)counter=counter+1;
assignclkdiv=counter[DIV_SIZE-1];(2)分頻模塊實(shí)現(xiàn)方案2
最高位
定義一個(gè)變量,使得counter_1hz==201*0000,使得輸入1hz信號(hào),讓counter_1hz自加always@(posedgeclk)
Beginif(counter_1hz==201*0000)
begincounter_1hz=0;clk_1hz桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
if(second_l==10)beginsecond_l=0;second_h=second_h+1;endif(second_h==6)beginsecond_h=0;miniute_l=miniute_l+1;endif(miniute_l==10)beginminiute_l=0;miniute_h=miniute_h+1;endif(miniute_h==6)beginminiute_h=0;hour_l=hour_l+1;endif(((hour_l==4)&&(hour_h==2))||((hour_l==10)&&(hour_h桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
始終按鍵,高電平有效。Display_tab為數(shù)碼管顯示驅(qū)動(dòng)輸出,狀態(tài)機(jī)用于循環(huán)掃描點(diǎn)亮數(shù)碼管,掃描頻率1024Hz,Spk將報(bào)時(shí)音訊輸出至揚(yáng)聲器。
2)計(jì)時(shí)模塊
second_l,second_h;miniute_l,miniute_h;hour_l,hour_h;分別表示秒,分,小時(shí)的高位和低位L組成十六進(jìn)制計(jì)數(shù)器。程序利用1Hz時(shí)鐘作為輸入,首先判斷是否有清零信號(hào)Key(高電平清零),然后系統(tǒng)判斷當(dāng)前狀態(tài)是否為23:59:59,而后判斷分鐘與秒為59:59時(shí)小時(shí)個(gè)位是否為9,此后以此類推。
五、系統(tǒng)硬件原理
VerilogHDL的多功能數(shù)字鐘的設(shè)計(jì)方案是設(shè)計(jì)一個(gè)具有計(jì)時(shí)、報(bào)時(shí)和顯示
這三部分的主要功能。系統(tǒng)原理框圖如圖4-1所示。其中計(jì)時(shí)功能是整個(gè)多功能數(shù)字鐘的核心部分;報(bào)時(shí)顧名思
義,也就是在時(shí)鐘到達(dá)整點(diǎn)時(shí)的鳴叫功能;顯示起到了一個(gè)譯碼功能,使得程序在實(shí)驗(yàn)箱上下載時(shí)我們能清晰、明了的整個(gè)運(yùn)行過程。這三部分相結(jié)合,就基本完成了這樣的一個(gè)多功能數(shù)字鐘。
圖4-1數(shù)字鐘原理框圖
原理框圖功能如下:
①首先輸入電源然后進(jìn)入FPGA芯片,來實(shí)現(xiàn)最基本的數(shù)字鐘計(jì)時(shí)電路,其②PPGA芯片工作使得基準(zhǔn)頻率分頻器可分頻出標(biāo)準(zhǔn)的1hz頻率信號(hào),用于計(jì)數(shù)輸出送7段譯碼電路,由數(shù)碼管顯示。
秒計(jì)數(shù)的時(shí)鐘信號(hào);分頻出頻率信號(hào)用于校時(shí)、校分的快速遞增信號(hào);分頻出頻率信號(hào)用于對(duì)于按動(dòng)校時(shí)、校分按鍵的消除抖動(dòng)。
③然后用按鍵控制電路模塊是一個(gè)校時(shí)、校分、秒清零的模式控制模塊,頻率信號(hào)用于鍵的消除抖動(dòng)。而模塊的輸出則是一個(gè)邊沿整齊的輸出信號(hào)。④控制電路模塊是一個(gè)校時(shí)、校分、秒清零的模式控制模塊,64Hz頻率信
第2頁桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
號(hào)用于鍵KEY1、KEY2、KEY3的消除抖動(dòng)。而模塊的輸出則是一個(gè)邊沿整齊的輸出信號(hào)。
⑤報(bào)時(shí)電路模塊需要通過一個(gè)組合電路完成,前五聲訊響功能報(bào)時(shí)電路還需用一個(gè)觸發(fā)器來保證整點(diǎn)報(bào)時(shí)時(shí)間為1秒。
⑥鬧時(shí)電路模塊也需要音頻信號(hào)以及來自秒計(jì)數(shù)器、分計(jì)數(shù)器和時(shí)計(jì)數(shù)器的輸出信號(hào)作本電路的輸入信號(hào)。
心得體會(huì)
這次的課程設(shè)計(jì)結(jié)束了,在這次的設(shè)計(jì)中我學(xué)會(huì)了很多東西。首先是對(duì)
VerilogHDL語言的設(shè)計(jì)思想有了深入理解,將這種自頂向下的設(shè)計(jì)理念運(yùn)用于實(shí)踐中,設(shè)計(jì)多功能數(shù)字鐘,突出了VerilogHDL作為硬件描述語言的良好可讀性和可移植性,對(duì)上學(xué)期所學(xué)的而理論知識(shí)有了深刻的理解。
其次是對(duì)VerilogHDL語言的語法熟悉,在這次的課程設(shè)計(jì)中,我學(xué)習(xí)到很多VerilogHDL語言的語法知識(shí),比如在兩個(gè)不同的語句塊中不能對(duì)同一個(gè)變量進(jìn)行操作,比如在用VerilogHDL語言中編寫程序時(shí)要注意begin和end語句的匹配問題,在使用VerilogHDL語言時(shí)不可以使用中文注釋等等。對(duì)于這種語言的學(xué)習(xí)也有了很大的幫助。
最后是設(shè)計(jì)作品時(shí)的設(shè)計(jì)邏輯和設(shè)計(jì)思想,在選擇不同的系統(tǒng)方案時(shí)要綜合考慮,選擇最優(yōu)方案。各個(gè)模塊的實(shí)現(xiàn)也要考慮綜合情況而制定出最符合實(shí)際情況的實(shí)現(xiàn)方案,方案間要進(jìn)行對(duì)比、實(shí)踐,最終確定。
在這次的課程設(shè)計(jì)中我不僅學(xué)習(xí)到有關(guān)程序編寫以及設(shè)計(jì)方面的邏輯思維,對(duì)系統(tǒng)功能的實(shí)現(xiàn)也有了較為深入的了解,對(duì)各模塊的調(diào)試等也學(xué)習(xí)到不少東西,總之,從這次設(shè)計(jì)中學(xué)到很多東西,也鞏固了我的理論學(xué)習(xí)。
第7頁桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
致謝
首先要感謝我的老師xxx,老師知識(shí)淵博,治學(xué)認(rèn)真而嚴(yán)謹(jǐn),感謝您從本文研究開始一路指導(dǎo)至本論文的完成,從論文題目的選定到論文寫作的指導(dǎo),經(jīng)由您悉心的點(diǎn)撥,再經(jīng)思考后的領(lǐng)悟,常常讓我有“山重水復(fù)疑無路,柳暗花明又一村”的豁然開朗!由衷感謝您在論文上傾注的大量心血,您寬厚待人的學(xué)者風(fēng)范令我無比感動(dòng)。感謝授課老師課上對(duì)我們的教導(dǎo),你們豐富的授課內(nèi)容拓寬了我的視野,讓我能更順利的完成這篇文章;感謝我的同學(xué)們,你們不僅讓我感受到友情的力量,也讓我感覺到了生活的愉悅,通過課堂討論學(xué)到的思維方式使我受益終生。
最后,我要向我的家人表示深深的謝意。你們的理解、支持、鼓勵(lì)和鞭策催我更加上進(jìn),我竭盡全力的努力,更希望的是能夠讓你們高興和滿意。你們的情感永遠(yuǎn)都是我上進(jìn)的不竭的動(dòng)力源泉。這些時(shí)光會(huì)慢慢的沉淀下來,但無論何時(shí),我想到這段歲月,都如同是看到一枚珍藏已久的夾在書里發(fā)黃的書簽,永遠(yuǎn)都是那么璀璨、那么絢爛。
第9頁桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
參考文獻(xiàn)
【1】夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[第二版].北京航空航天大學(xué)出版社,【2】康華光等.電子技術(shù)基礎(chǔ)(數(shù)字部分)[第五版]高等教育出版社,【3】羅朝霞等.CPLD/FPGA設(shè)計(jì)及應(yīng)用.北京人民郵電出版社,
【4】?jī)|特科技編著.CPLD/FPGA應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā).北京人民郵電出版社。
【5】付文紅.花漢兵著.EDA技術(shù)與實(shí)驗(yàn).機(jī)械工業(yè)出版社【6】崔建明.電工電子EDA仿真技術(shù)。北京高等教育出版社
【7】侯伯亨.VerilogHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì).西安電子科技大學(xué)出版
第10頁桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
附錄
moduleb(clk,led_out,seg_bit,led_test,alarm_clock,led,key,key_1,key_2,key_3,key_4);inputclk;
inputkey,key_1,key_2,key_3,key_4;regclk_1hz;regclk_1khz;outputregled_test;outputregled;outputreg[3:0]seg_bit;outputreg[6:0]led_out;outputregalarm_clock;reg[20:0]counter;reg[30:0]counter_1hz;reg[7:0]display_tab;reg[7:0]second_l,second_h;reg[7:0]miniute_l,miniute_h;reg[3:0]hour_l,hour_h;reg[1:0]state;
parameters0=2"d0,s1=2"d1,s2=2"d2,s3=2"d3;//定時(shí)8:00
parametertiming_miniute_h=0,timing_miniute_l=0,
timing_second_h=0,timing_second_l=0,timing_hour_h=0,timing_hour_l=8;
integera,b,c,d,e;integer
latch_second_l,latch_second_h,latch_miniute_l,latch_miniute_h,latch_hour_l,latch_hour_h;
initialbeginstate=0;counter=0;counter_1hz=0;miniute_l=9;miniute_h=5;second_h=5;second_l=5;hour_h=0;hour_l=7;end//初始化寄存器
第11頁桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
//分頻模塊
always@(posedgeclk)begin
if(counter_1hz==201*0000)begincounter_1hz=0;clk_1hz=201*0)
begin
counter桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
if(((hour_l==4)&&(hour_h==2))||((hour_l==10)&&(hour_h桂林電子科技大學(xué)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)報(bào)告
if((latch_miniute_h==timing_miniute_h)&&(latch_miniute_l==timing_
alarm_clock=~alarm_clock;end
miniute_l)&&
(latch_hour_h==timing_hour_h)&&(latch_hour_l==timing_hour_l))
elsec=c+1;
if(e==1000)begine=0;if((miniute_l||miniute_h)==0)led=~led;if((miniute_l||miniute_h)==1)led=0;endelsee=e+1;
if(!key)d=d+1;if((d==200)&&(!key))beginlatch_miniute_l=latch_miniute_l+1;alarm_clock=0;end
end
//動(dòng)態(tài)掃描模塊
always@(posedgeclk_1khz)
begincase(state)s0:beginseg_bit=4"b0111;display_tab=miniute_l;
state=s1;led_test=1;end
s1:beginseg_bit=4"b1011;display_tab=miniute_h;
state=s2;led_test=1;end
s2:beginseg_bit=4"b1101;display_tab=hour_l;
state=s3;led_test=~clk_1hz;end
s3:beginseg_bit=4"b1110;display_tab=hour_h;
state=s0;led_test=1;end
default:beginled_out=7"bz;state=0;end
","p":{"h":18,"w":9,"x":166.53,"y":961.907,"z":97},"ps":{"_enter":1},"t"
友情提示:本文中關(guān)于《fpga數(shù)字鐘實(shí)訓(xùn)報(bào)告》給出的范例僅供您參考拓展思維使用,fpga數(shù)字鐘實(shí)訓(xùn)報(bào)告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。