版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
[基于FPGA數(shù)字跑表]專業(yè):電子信息工程[基于FPGA數(shù)字跑表]專業(yè):電子信息工程班級:電子xxx班學(xué)生學(xué)號:xxxx學(xué)生姓名:xxxx指導(dǎo)教師:xxxx完成時間:Time\@"yyyy年M月d日"xxxxx年x月xx日FPGA設(shè)計實(shí)踐報告數(shù)字跑表設(shè)計設(shè)計概述FPGA(Field-ProgrammableGateArray),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。VerilogHDL語言是在C語言的基礎(chǔ)上發(fā)展而來的。從語法結(jié)構(gòu)上看,VerilogHDL繼承和借鑒了C語言的很多語法,兩者有許多的相似之處,但VerilogHDL作為一種硬件描述語言,還是有本質(zhì)的區(qū)別。即可適用于綜合的電路設(shè)計,也可勝任電路和系統(tǒng)的仿真;能在多層次上對所設(shè)計的系統(tǒng)加以描述,從開關(guān)級、門級,寄存器傳輸級到行為級等都可以擔(dān)任,而且沒規(guī)模限制;靈活多變的電路描述風(fēng)格,可進(jìn)行行為描述,也可進(jìn)行結(jié)構(gòu)描述等,應(yīng)用十分的廣泛。QuartusⅡ軟件是Atlera的CPLD/FPGA集成開發(fā)軟件,具有完善的可視化設(shè)計環(huán)境,并具有標(biāo)準(zhǔn)的EDA工具接口,基于QuartusⅡ進(jìn)行EDA設(shè)計開發(fā)需要以下步驟:設(shè)計輸入、編譯、仿真、編程與驗證等。本次通過VerilogHDL語言編寫一個具有“百分秒、秒、分”計時功能的數(shù)字跑表,可以實(shí)現(xiàn)一個小時內(nèi)精確至百分之一秒的計時器。數(shù)字跑表的顯示可以通過編寫數(shù)碼管顯示模塊程序來實(shí)現(xiàn),設(shè)計實(shí)現(xiàn)計數(shù)及進(jìn)位的功能,通過幾個always模塊的設(shè)計實(shí)現(xiàn)一個特定用途的電子產(chǎn)品------數(shù)字跑表。二、設(shè)計功能 數(shù)字跑表是生活中常見的一種電子產(chǎn)品,特別應(yīng)用與體育比賽中。本數(shù)字跑表是通過按鍵來控制計時的開始和結(jié)束,一個是復(fù)位控制按鍵,用于設(shè)計跑表為初始零狀態(tài);另一個則是開始/停止控制按鍵,在復(fù)位控制無效的情況下,按一下開始/停止鍵則計時器開始計時,再按一下則暫停計時,再按一下則繼續(xù)計時。下面是其功能圖:具體性能如下:跑表的計時范圍為0.01s~59min59.99s,計時精度為10ms;具有異步復(fù)位清零、啟動、計時和暫停功能;輸入時鐘頻率為100Hz;要求數(shù)字跑表的輸出能夠直接驅(qū)動共陰極7段數(shù)碼管顯示.實(shí)現(xiàn)要求:分析功能要求,劃分功能模塊;編寫各模塊的VerilogHDL語言的設(shè)計程序;在QuartusⅡ軟件上完成設(shè)計和仿真;根據(jù)實(shí)驗室FPGA芯片,將設(shè)計生成配置文件,然后將配置文件下載到實(shí)驗裝置上運(yùn)行,操作實(shí)驗裝置上設(shè)定的功能按鍵,驗證設(shè)計功能。三、設(shè)計方案本次設(shè)計的跑表首先要從最低位的百分秒計數(shù)器開始,按照系統(tǒng)時鐘進(jìn)行計數(shù)。百分位計數(shù)到100后向秒計數(shù)器進(jìn)位,秒計數(shù)器以百分秒計數(shù)器的進(jìn)位位為時鐘進(jìn)行計數(shù)。秒計數(shù)到60后向分計數(shù)器進(jìn)位,分計數(shù)器以秒計數(shù)器的進(jìn)位位為時鐘進(jìn)行計數(shù)。數(shù)字跑表巧妙地運(yùn)用進(jìn)位位作為時鐘來減少了計數(shù)的位數(shù)。數(shù)字跑表提供了清零位CLR和暫停/開始位PAUSE,百分秒的時鐘信號可以通過系統(tǒng)時鐘分頻提供。分頻至100Hz,即可實(shí)現(xiàn)時間計數(shù)。具體程序設(shè)計分為兩個大模塊。主要模塊說明功能的分配、內(nèi)部功能塊和對外接口關(guān)系,功能模塊具體控制實(shí)際的邏輯功能和具體的實(shí)現(xiàn)。主模塊在主程序模塊中包括兩部分,第一部分是VerilogHDL程序的邏輯結(jié)構(gòu)。用if...else以及進(jìn)位來實(shí)現(xiàn)百分秒計滿到99進(jìn)位到秒,當(dāng)秒滿59時進(jìn)位到分,分滿59以后歸0.第二部分是LDE顯示部分。時鐘模塊第二大模塊是時鐘分頻模塊,本實(shí)驗利用開發(fā)板上50MHz的時鐘頻率,通過分頻程序?qū)⑵浞殖伤蟮?00Hz。通過計算得到需要利用500000分之一的分頻,但是分頻后快半秒,時鐘是翻轉(zhuǎn)后的一個高電平和一個低電平所以,最后分頻是250000分之一分頻。這樣就剛好是正常的時間跳變速度。程序分析下面是程序的主要流程圖:分高位分低位秒高位秒低位百分秒高位百分秒低位MHMLSHSLMSHMSL/*信號定義CLK:時鐘信號;CLR:異步復(fù)位信號;PAUSE:暫停/啟動信號;*/moduleh(clk,clr,pause,msh,msl,sh,sl,mh,ml,led1,led2,led3,led4,led5,led6);inputclk,clr;inputpause;output[6:0]led1;output[6:0]led2;output[6:0]led3;output[6:0]led4;output[6:0]led5;output[6:0]led6;output[3:0]msh,msl,sh,sl,mh,ml;reg[6:0]led1;reg[6:0]led2;reg[6:0]led3;reg[6:0]led4;reg[6:0]led5;reg[6:0]led6;reg[3:0]msh,msl,sh,sl,mh,ml;regcn1,cn2;//cn1為百分秒向秒的進(jìn)位,cn2為秒向分的進(jìn)位//百分秒計數(shù)進(jìn)程,每計滿100,cn1產(chǎn)生一個進(jìn)位1always@(posedgeclkorposedgeclr)beginif(clr)//異步復(fù)位begin{msh,msl}<=8'h00;//從00開始計數(shù)cn1<=0;endelseif(!pause)//PAUSE為0時正常計數(shù),為1時暫時計數(shù)beginif(msl==9)beginmsl<=0;//低位百分秒計數(shù)到10是歸零if(msh==9)beginmsh<=0;//高位百分秒計數(shù)到10是歸零cn1<=1;//CN1觸發(fā)進(jìn)位endelse//低位計數(shù)到10,高位未計數(shù)到10時,高位計數(shù)msh<=msh+1;endelsebegin//低位計數(shù)未到10時,繼續(xù)計數(shù)msl<=msl+1;cn1<=0;//低位未計數(shù)到10時,CN1不產(chǎn)生進(jìn)位endendend//秒計數(shù)模塊,每計數(shù)滿60,CN2產(chǎn)生一個進(jìn)位always@(posedgecn1orposedgeclr)beginif(clr)begin//異步復(fù)位{sh,sl}<=8'h00;cn2<=0;endelseif(sl==9)beginsl<=0;//低位秒計數(shù)到10,低位歸零if(sh==5)beginsh<=0;//低位計數(shù)到10,高位計數(shù)到6時,高位秒歸零cn2<=1;//cn2觸發(fā)進(jìn)位endelsesh<=sh+1;//低位計數(shù)到10,高位未到6時,低位計數(shù)endelsebeginsl<=sl+1;//低位未計數(shù)到10,低位計數(shù)cn2<=0;//低位未計數(shù)到10時,CN2不產(chǎn)生進(jìn)位endend//分鐘計數(shù)模塊,每計滿60,系統(tǒng)自動清0always@(posedgecn2orposedgeclr)beginif(clr)begin//異步復(fù)位{mh,ml}<=8'h00;endelseif(ml==9)beginml<=0;//低位分計數(shù)到10時,低位歸零if(mh==5)mh<=0;//低位計數(shù)到10,高位計數(shù)到6時,高位歸零elsemh<=mh+1;//低位計數(shù)到10,高位未計數(shù)到6時,高位計數(shù)endelseml<=ml+1;//低位計數(shù)未到10時,低位計數(shù)end//led顯示模塊always@(msl[3:0])begincase(msl[3:0])//利用case語句控制顯示低位百分秒的0~90:led1='b1000000;1:led1='b1111001;2:led1='b0100100;3:led1='b0110000;4:led1='b0011001;5:led1='b0010010;6:led1='b0000010;7:led1='b1111000;8:led1='b0000000;9:led1='b0010000;endcaseendalways@(msh[3:0])begincase(msh[3:0])//利用case語句控制顯示高位百分秒的0~90:led2='b1000000;1:led2='b1111001;2:led2='b0100100;3:led2='b0110000;4:led2='b0011001;5:led2='b0010010;6:led2='b0000010;7:led2='b1111000;8:led2='b0000000;9:led2='b0010000;endcaseendalways@(sl[3:0])begincase(sl[3:0])//利用case語句控制顯示低位秒的0~90:led3='b1000000;1:led3='b1111001;2:led3='b0100100;3:led3='b0110000;4:led3='b0011001;5:led3='b0010010;6:led3='b0000010;7:led3='b1111000;8:led3='b0000000;9:led3='b0010000;endcaseendalways@(sh[3:0])begincase(sh[3:0])//利用case語句控制顯示高位秒的0~50:led4='b1000000;1:led4='b1111001;2:led4='b0100100;3:led4='b0110000;4:led4='b0011001;5:led4='b0010010;endcaseendalways@(ml[3:0])begincase(ml[3:0])//利用case語句控制顯示低位分的0~90:led5='b1000000;1:led5='b1111001;2:led5='b0100100;3:led5='b0110000;4:led5='b0011001;5:led5='b0010010;6:led5='b0000010;7:led5='b1111000;8:led5='b0000000;9:led5='b0010000;endcaseendalways@(mh[3:0])begincase(mh[3:0])//利用case語句控制顯示高位分的0~50:led6='b1000000;1:led6='b1111001;2:led6='b0100100;3:led6='b0110000;4:led6='b0011001;5:led6='b0010010;endcaseendendmodulemoduleled(ledin,ledout);//七段譯碼模塊input[3:0]ledin;output[6:0]ledout;reg[6:0]ledout;always@(ledin)//case語句進(jìn)行譯碼begincase(ledin)//分別對應(yīng)數(shù)碼管的a--g4'd0:ledout=7'b11000000;4'd1:ledout=7'b11111001;4'd2:ledout=7'b10100100;4'd3:ledout=7'b10110000;4'd4:ledout=7'b10011001;4'd5:ledout=7'b10010010;4'd6:ledout=7'b10000010;4'd7:ledout=7'b11111000;4'd8:ledout=7'b10000000;4'd9:ledout=7'b10010000;default:ledout=7'bx;endcaseendendmodule分頻模塊module clk(f50m,f100);input f50m;output f100;reg f100;reg [31:0]h;always@(posedge f50m) begin if(h==250000)//對計數(shù)器進(jìn)行判斷,確定f100信號是否反轉(zhuǎn) begin h<=0;//不計數(shù) f100<=~f100; end else//未計數(shù)到250000時,繼續(xù)計數(shù) h<=h+1; endendmodule仿真實(shí)現(xiàn)(一)系統(tǒng)的功能模塊原理圖:(二)仿真圖六、硬件實(shí)現(xiàn)(一)引腳圖(二)硬件圖圖中撥動開關(guān)右起第一個是復(fù)位功能鍵,第二個是暫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版墻紙購銷合同范本
- 2025年度數(shù)字經(jīng)濟(jì)基礎(chǔ)設(shè)施建設(shè)承包借款合同4篇
- 2024預(yù)埋件研發(fā)與生產(chǎn)項目合同范本3篇
- 2024食品物流信息化管理系統(tǒng)合同
- 2025年度文化創(chuàng)意產(chǎn)品采購合同知識產(chǎn)權(quán)保護(hù)與市場推廣3篇
- 2025年度專業(yè)市場租賃協(xié)議范本4篇
- 2025年度智慧社區(qū)物業(yè)服務(wù)承包合同4篇
- 2025年度電力企業(yè)財務(wù)預(yù)算出納人員擔(dān)保合同3篇
- 2025年度商場櫥窗窗簾廣告設(shè)計與安裝合同4篇
- 2025年度新能源汽車制造項目承包商擔(dān)保合同規(guī)范4篇
- 春節(jié)英語介紹SpringFestival(課件)新思維小學(xué)英語5A
- 進(jìn)度控制流程圖
- 2023年江蘇省南京市中考化學(xué)真題
- 【閱讀提升】部編版語文五年級下冊第四單元閱讀要素解析 類文閱讀課外閱讀過關(guān)(含答案)
- 供電副所長述職報告
- 現(xiàn)在完成時練習(xí)(短暫性動詞與延續(xù)性動詞的轉(zhuǎn)換)
- 產(chǎn)品質(zhì)量監(jiān)控方案
- 物業(yè)總經(jīng)理述職報告
- 新起點(diǎn),新發(fā)展心得體會
- 深圳大學(xué)學(xué)校簡介課件
- 校園欺凌問題成因及對策分析研究論文
評論
0/150
提交評論