基于FPGA數(shù)字跑表_第1頁
基于FPGA數(shù)字跑表_第2頁
基于FPGA數(shù)字跑表_第3頁
基于FPGA數(shù)字跑表_第4頁
基于FPGA數(shù)字跑表_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

[基于FPGA數(shù)字跑表]專業(yè):電子信息工程[基于FPGA數(shù)字跑表]專業(yè):電子信息工程班級:電子xxx班學生學號:xxxx學生姓名:xxxx指導教師:xxxx完成時間:Time\@"yyyy年M月d日"xxxxx年x月xx日FPGA設計實踐報告數(shù)字跑表設計設計概述FPGA(Field-ProgrammableGateArray),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。VerilogHDL語言是在C語言的基礎上發(fā)展而來的。從語法結構上看,VerilogHDL繼承和借鑒了C語言的很多語法,兩者有許多的相似之處,但VerilogHDL作為一種硬件描述語言,還是有本質的區(qū)別。即可適用于綜合的電路設計,也可勝任電路和系統(tǒng)的仿真;能在多層次上對所設計的系統(tǒng)加以描述,從開關級、門級,寄存器傳輸級到行為級等都可以擔任,而且沒規(guī)模限制;靈活多變的電路描述風格,可進行行為描述,也可進行結構描述等,應用十分的廣泛。QuartusⅡ軟件是Atlera的CPLD/FPGA集成開發(fā)軟件,具有完善的可視化設計環(huán)境,并具有標準的EDA工具接口,基于QuartusⅡ進行EDA設計開發(fā)需要以下步驟:設計輸入、編譯、仿真、編程與驗證等。本次通過VerilogHDL語言編寫一個具有“百分秒、秒、分”計時功能的數(shù)字跑表,可以實現(xiàn)一個小時內(nèi)精確至百分之一秒的計時器。數(shù)字跑表的顯示可以通過編寫數(shù)碼管顯示模塊程序來實現(xiàn),設計實現(xiàn)計數(shù)及進位的功能,通過幾個always模塊的設計實現(xiàn)一個特定用途的電子產(chǎn)品------數(shù)字跑表。二、設計功能 數(shù)字跑表是生活中常見的一種電子產(chǎn)品,特別應用與體育比賽中。本數(shù)字跑表是通過按鍵來控制計時的開始和結束,一個是復位控制按鍵,用于設計跑表為初始零狀態(tài);另一個則是開始/停止控制按鍵,在復位控制無效的情況下,按一下開始/停止鍵則計時器開始計時,再按一下則暫停計時,再按一下則繼續(xù)計時。下面是其功能圖:具體性能如下:跑表的計時范圍為0.01s~59min59.99s,計時精度為10ms;具有異步復位清零、啟動、計時和暫停功能;輸入時鐘頻率為100Hz;要求數(shù)字跑表的輸出能夠直接驅動共陰極7段數(shù)碼管顯示.實現(xiàn)要求:分析功能要求,劃分功能模塊;編寫各模塊的VerilogHDL語言的設計程序;在QuartusⅡ軟件上完成設計和仿真;根據(jù)實驗室FPGA芯片,將設計生成配置文件,然后將配置文件下載到實驗裝置上運行,操作實驗裝置上設定的功能按鍵,驗證設計功能。三、設計方案本次設計的跑表首先要從最低位的百分秒計數(shù)器開始,按照系統(tǒng)時鐘進行計數(shù)。百分位計數(shù)到100后向秒計數(shù)器進位,秒計數(shù)器以百分秒計數(shù)器的進位位為時鐘進行計數(shù)。秒計數(shù)到60后向分計數(shù)器進位,分計數(shù)器以秒計數(shù)器的進位位為時鐘進行計數(shù)。數(shù)字跑表巧妙地運用進位位作為時鐘來減少了計數(shù)的位數(shù)。數(shù)字跑表提供了清零位CLR和暫停/開始位PAUSE,百分秒的時鐘信號可以通過系統(tǒng)時鐘分頻提供。分頻至100Hz,即可實現(xiàn)時間計數(shù)。具體程序設計分為兩個大模塊。主要模塊說明功能的分配、內(nèi)部功能塊和對外接口關系,功能模塊具體控制實際的邏輯功能和具體的實現(xiàn)。主模塊在主程序模塊中包括兩部分,第一部分是VerilogHDL程序的邏輯結構。用if...else以及進位來實現(xiàn)百分秒計滿到99進位到秒,當秒滿59時進位到分,分滿59以后歸0.第二部分是LDE顯示部分。時鐘模塊第二大模塊是時鐘分頻模塊,本實驗利用開發(fā)板上50MHz的時鐘頻率,通過分頻程序將其分成所要求的100Hz。通過計算得到需要利用500000分之一的分頻,但是分頻后快半秒,時鐘是翻轉后的一個高電平和一個低電平所以,最后分頻是250000分之一分頻。這樣就剛好是正常的時間跳變速度。程序分析下面是程序的主要流程圖:分高位分低位秒高位秒低位百分秒高位百分秒低位MHMLSHSLMSHMSL/*信號定義CLK:時鐘信號;CLR:異步復位信號;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為百分秒向秒的進位,cn2為秒向分的進位//百分秒計數(shù)進程,每計滿100,cn1產(chǎn)生一個進位1always@(posedgeclkorposedgeclr)beginif(clr)//異步復位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ā)進位endelse//低位計數(shù)到10,高位未計數(shù)到10時,高位計數(shù)msh<=msh+1;endelsebegin//低位計數(shù)未到10時,繼續(xù)計數(shù)msl<=msl+1;cn1<=0;//低位未計數(shù)到10時,CN1不產(chǎn)生進位endendend//秒計數(shù)模塊,每計數(shù)滿60,CN2產(chǎn)生一個進位always@(posedgecn1orposedgeclr)beginif(clr)begin//異步復位{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ā)進位endelsesh<=sh+1;//低位計數(shù)到10,高位未到6時,低位計數(shù)endelsebeginsl<=sl+1;//低位未計數(shù)到10,低位計數(shù)cn2<=0;//低位未計數(shù)到10時,CN2不產(chǎn)生進位endend//分鐘計數(shù)模塊,每計滿60,系統(tǒng)自動清0always@(posedgecn2orposedgeclr)beginif(clr)begin//異步復位{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語句進行譯碼begincase(ledin)//分別對應數(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ù)器進行判斷,確定f100信號是否反轉 begin h<=0;//不計數(shù) f100<=~f100; end else//未計數(shù)到250000時,繼續(xù)計數(shù) h<=h+1; endendmodule仿真實現(xiàn)(一)系統(tǒng)的功能模塊原理圖:(二)仿真圖六、硬件實現(xiàn)(一)引腳圖(二)硬件圖圖中撥動開關右起第一個是復位功能鍵,第二個是暫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論