版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE9EDA課程設(shè)計(jì)報(bào)告題目:基于FPGA的數(shù)字頻率計(jì)的設(shè)計(jì)基于FPGA數(shù)字頻率計(jì)的設(shè)計(jì)任務(wù)書1.設(shè)計(jì)任務(wù)與要求設(shè)計(jì)一個(gè)基于FPGA數(shù)字頻率計(jì),要認(rèn)真并準(zhǔn)確地理解有關(guān)要求,完成系統(tǒng)設(shè)計(jì)。設(shè)計(jì)要求:(1)頻率測量:頻率10Hz~9999Hz方波信號;(2)周期測量:頻率10Hz~9999Hz方波信號;(3)四位數(shù)碼管顯示頻率、周期;(4)能產(chǎn)生頻率1KHz的方波信號,進(jìn)行頻率計(jì)自校;(5)對兩種不同的測量用兩種發(fā)光LED指示;2.設(shè)計(jì)內(nèi)容(1)設(shè)計(jì)VHDL代碼源文件;(2)編譯綜合;(3)下載程序,片上測試;3.編寫設(shè)計(jì)報(bào)告寫出設(shè)計(jì)的全過程,附上有關(guān)資料和程序,有心得體會。題目:基于FPGA數(shù)字頻率計(jì)一、設(shè)計(jì)目的完成一個(gè)基于FPGA數(shù)字頻率計(jì),要完成以下任務(wù)。(1)頻率測量:頻率10Hz~9999Hz方波信號;(2)周期測量:頻率10Hz~9999Hz方波信號;(3)四位數(shù)碼管顯示頻率、周期;(4)能產(chǎn)生頻率1KHz的方波信號,進(jìn)行頻率計(jì)自校;(5)對兩種不同的測量用兩種發(fā)光LED指示;二、設(shè)計(jì)方案1.總體設(shè)計(jì)方案系統(tǒng)功能描述:(數(shù)字頻率基本功能是基于FPGA測試一10-9999HZ的方波信號,并在四位八段數(shù)碼管上顯示,包括分頻模塊、周期測量模塊、頻率測量模塊、顯示模塊)2.分頻模塊設(shè)計(jì)將一個(gè)50MHZ的標(biāo)準(zhǔn)信號每個(gè)周期進(jìn)行一次計(jì)數(shù),計(jì)到50000再從0計(jì)數(shù),然后在計(jì)數(shù)器的前25000時(shí)間內(nèi)將1KHz的信號置高電平,25000-50000內(nèi)的1KHZ信號置低電平,從而產(chǎn)生一個(gè)1KHZ的內(nèi)部信號。將產(chǎn)生的1KHZ信號每個(gè)周期進(jìn)行一次計(jì)數(shù),計(jì)到1000再從0開始計(jì)數(shù),然后在計(jì)數(shù)器的前500時(shí)間內(nèi)將1HZ信號置高電平,500-1000時(shí)間內(nèi)內(nèi)江1HZ信號置低電平,從而產(chǎn)生一個(gè)1HZ頻率的閘門信號。3.顯示模塊設(shè)計(jì)定義一個(gè)integer類型信號BIS,范圍為0-3,用這個(gè)信號來進(jìn)行位選,在1KHZ的信號中,每經(jīng)過一次周期變換就將BIS加1,超過3則回0,用來做四位數(shù)碼管的動(dòng)態(tài)掃描。檢測輸入按鍵(輸入端口),當(dāng)為低電平時(shí)則表示顯示頻率,將對應(yīng)的LED燈端口置高電平,表示周期的LED置低電平。將位選信號BIS放入CASE語句,當(dāng)其為0時(shí)表示第一位顯示,將位選端口置為”0111”,并將頻率的千位傳入顯示數(shù)據(jù);為1時(shí)表示第二位顯示,將位選端口置為”1011”,并將頻率的百位傳入顯示數(shù)據(jù);為2時(shí)表示第三位顯示,將位選端口置為”1101”,并將頻率的十位傳入顯示數(shù)據(jù);為3時(shí)表示第四位顯示,將位選端口置為”1110”,并將頻率的個(gè)位傳入顯示數(shù)據(jù)。位選端口為STD_LOGIC_VECTOR(3DOWNTO0))類型。如果檢測到輸入按鍵為低電平時(shí),表示顯示周期,將對應(yīng)的LED燈端口置高電平,表示頻率的LED置低電平。將位選信號BIS放入CASE語句,當(dāng)其為0時(shí)表示第一位顯示,將位選端口置為”0111”,并將周期的千位傳入顯示數(shù)據(jù);為1時(shí)表示第二位顯示,將位選端口置為”1011”,并將周期的百位傳入顯示數(shù)據(jù);為2時(shí)表示第三位顯示,將位選端口置為”1101”,并將周期的十位傳入顯示數(shù)據(jù);為3時(shí)表示第四位顯示,將位選端口置為”1110”,并將周期的個(gè)位傳入顯示數(shù)據(jù)。另起一個(gè)進(jìn)程,將上面位選時(shí)傳入的數(shù)據(jù)放入case語句,將其對應(yīng)數(shù)據(jù)的段碼放入段選端口,我們所用的電路板數(shù)碼管為共陽極點(diǎn)亮,故點(diǎn)亮的段應(yīng)用低電平。求整數(shù)(data)的個(gè)、十、百、千位的方法:個(gè)位=datamod10;十位=data/10mod10;百位=data/100mod10;千位=data/1000;4.頻率測量模塊設(shè)計(jì)將分頻模塊中生成的1HZ信號作為閘門信號,當(dāng)閘門信號為高電平時(shí),測量待測信號在高電平期間跳的數(shù)量,當(dāng)閘門信號為低電平時(shí)將測量數(shù)據(jù)傳入輸出模塊,并將計(jì)數(shù)器清零,該傳出的數(shù)據(jù)為半秒內(nèi)跳沿次數(shù),一個(gè)周期有一個(gè)上升沿和一個(gè)下降沿,固該值即為待測信號的頻率值。4.周期測量模塊設(shè)計(jì)將標(biāo)準(zhǔn)輸入的50MHZ信號進(jìn)行500被分頻,設(shè)計(jì)一個(gè)100KHZ的信號,將待測信號作為閘門,測量在其高電平期間的100KHZ信號跳沿次數(shù),當(dāng)待測信號為低電平時(shí),將該數(shù)據(jù)傳出,并將計(jì)數(shù)器清零,該測量值即為輸入信號的周期值,單位為100KHZ信號的周期,為10us。三、驗(yàn)證方案仿真結(jié)果:四、結(jié)論及討論完成所有模塊代碼編寫后我進(jìn)行了整合編譯,交由負(fù)責(zé)管腳分配的同學(xué)進(jìn)行分配管腳仿真后下載到開發(fā)板,連接到自己設(shè)置的1KHZ校準(zhǔn)信號和一個(gè)3KHZ的自定義信號上,分別撥動(dòng)顯示選擇控制開關(guān),顯示正確、清晰,符合開始時(shí)的要求。將開發(fā)板的輸入管腳,接到波形發(fā)生器上,開發(fā)板能正確顯示發(fā)生器的給定頻率及其周期,但當(dāng)頻率小于20HZ是開始出現(xiàn)數(shù)據(jù)顯示不穩(wěn)定情況,原因是未分高低頻測量,而是籠統(tǒng)的一個(gè)一秒閘門測量,低頻數(shù)據(jù)不穩(wěn)定。當(dāng)頻率超過10000HZ時(shí)會出現(xiàn)顯示不確定的值,原因在于代碼里未處理頻率超界的情況,故在代碼中加上了一個(gè)蜂鳴器端口,當(dāng)頻率超過10000HZ的測量限度時(shí)蜂鳴器置高電平報(bào)警,提示使用者該值非正確值。11HZ信號頻率測量500HZ信號頻率測量1000HZ自校信號頻率測量
五、課程設(shè)計(jì)的心得與體會通過對數(shù)字頻率計(jì)的設(shè)計(jì)實(shí)現(xiàn),我深入的學(xué)習(xí)了QuartusII軟件的使用,VHDL語言的編寫規(guī)范,語法結(jié)構(gòu)等。在本次試驗(yàn)中我回顧了在《數(shù)字電路》以及《數(shù)字電路EDA設(shè)計(jì)與使用》課程中學(xué)過的關(guān)于數(shù)字電路的設(shè)計(jì)的內(nèi)容,加深了對硬件與軟件聯(lián)系的映像,對其他的軟件編程甚至單片機(jī)的原理與應(yīng)用也有很大的提升。這個(gè)課程設(shè)計(jì)也讓我懂得,理論知識真的很重要,而實(shí)踐能夠加深對理論知識的理解,將理論和實(shí)踐結(jié)合起來,才能設(shè)計(jì)出優(yōu)秀的作品。在這個(gè)課程設(shè)計(jì)過程中,我不只是完成一個(gè)設(shè)計(jì),更重要的是在這一過程中所體會和學(xué)到的一些非知識技能層面的東西——細(xì)心、堅(jiān)持、不斷學(xué)習(xí),我相信這會是一次難得的經(jīng)歷。參考文獻(xiàn)[1]聶小燕.?dāng)?shù)字電路EDA設(shè)計(jì)與應(yīng)用.北京:人民郵電出版社,2010
附錄VHDL源代碼LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCYMOMETERIS PORT( CLK_CA :INSTD_LOGIC;--50MHZ信號 CLK_CO :INSTD_LOGIC;--待測信號 CLK_UT:OUTSTD_LOGIC;--自定義信號 KEY :INSTD_LOGIC;--周期/頻率轉(zhuǎn)換 CLK_CAL:OUTSTD_LOGIC;--校準(zhǔn)信號 LEDH :OUTSTD_LOGIC;--頻率顯示LED指示 LEDT :OUTSTD_LOGIC;--周期顯示LED指示 WARG :OUTSTD_LOGIC;--頻率超過測量范圍警鈴示警-- RST :INSTD_LOGIC; DATAOUT :OUTSTD_LOGIC_VECTOR(7DOWNTO0);--數(shù)碼段選信號 EN :OUTSTD_LOGIC_VECTOR(3DOWNTO0));--數(shù)碼管位選信號ENDCYMOMETER;ARCHITECTUREBEHAVOFCYMOMETERISSIGNAL DATAOUT_XHDL:STD_LOGIC_VECTOR(7DOWNTO0);--數(shù)碼管段選內(nèi)部信號SIGNAL EN_XHDL:STD_LOGIC_VECTOR(3DOWNTO0);--數(shù)碼管位選內(nèi)部信號SIGNAL CLK_KH,CLK_H:STD_LOGIC;--1KHZ和1HZ內(nèi)部信號SIGNAL CK_SIM,WARB:STD_LOGIC;--自定義內(nèi)部信號,警鈴內(nèi)部信號SIGNAL BIS:INTEGERRANGE0TO4:=0;--數(shù)碼管位選標(biāo)識SIGNAL CO_COUNT,T_COUNT,HZ_COUNT:INTEGERRANGE0TO20000:=0;--頻率計(jì)數(shù),周期計(jì)數(shù)SIGNAL CO_BUF:INTEGERRANGE0TO20000:=0;--頻率計(jì)數(shù)緩沖區(qū)SIGNAL CA_COUNT,A:INTEGERRANGE0TO50000:=0;--50MHZ內(nèi)部計(jì)數(shù),自定義信號產(chǎn)生計(jì)數(shù)器SIGNAL data:INTEGERRANGE0TO9;--顯示數(shù)據(jù)傳輸SIGNAL LED1,LED2:STD_LOGIC;--LED標(biāo)識內(nèi)部信號SIGNAL C100K_COUNT:INTEGERRANGE0TO500;--100KHZ信號計(jì)數(shù)器BEGIN DATAOUT<=DATAOUT_XHDL;--將內(nèi)部LED段選信號關(guān)聯(lián)到輸出信號 EN <=EN_XHDL;--將內(nèi)部LED位選信號關(guān)聯(lián)到輸出位選 LEDT<=LED1;--將內(nèi)部LED指示信號關(guān)聯(lián)到輸出LED指示 LEDH<=LED2; CLK_UT<=CK_SIM;--將內(nèi)部自定義信號關(guān)聯(lián)到輸出 CLK_CAL<=CLK_KH;--將內(nèi)部1KHZ信號關(guān)聯(lián)到輸出校準(zhǔn) WARG<=WARB;--將內(nèi)部警鈴信號關(guān)聯(lián)到外部 P1:PROCESS(CLK_CA)--進(jìn)程P1,將50MHZ信號進(jìn)行計(jì)數(shù) BEGIN IF(CLK_CA'EVENTANDCLK_CA='1')THEN IF(CA_COUNT<50000)THEN CA_COUNT<=CA_COUNT+1; ELSE CA_COUNT<=0; ENDIF; ENDIF; ENDPROCESSP1; P2:PROCESS(CLK_CA)--進(jìn)程P2,將50MHZ信號進(jìn)行計(jì)數(shù),用于產(chǎn)生自定義信號 BEGIN IF(CLK_CA'EVENTANDCLK_CA='1')THEN IF(A<50000)THEN A<=A+1; ELSE A<=0; ENDIF; ENDIF; ENDPROCESSP2; P3:PROCESS(CLK_CA)--P3通過計(jì)數(shù)器A,產(chǎn)生自定義信號,此處為3KHZ BEGIN IF(CLK_CA'EVENTANDCLK_CA='1')THEN IF(A<10000)THEN CK_SIM<='1'; ELSIF((A>10000)AND(A<20000))THEN CK_SIM<='0'; ELSIF((A>20000)AND(A<30000))THEN CK_SIM<='1'; ELSIF((A>30000)AND(A<40000))THEN CK_SIM<='0'; ELSIF((A>40000)AND(A<45000))THEN CK_SIM<='1'; ELSE CK_SIM<='0'; ENDIF; ENDIF; ENDPROCESSP3; P4:PROCESS(CA_COUNT)--進(jìn)程P4,通過計(jì)數(shù)器CA_COUNT,產(chǎn)生1KHZ信號CLK_KH BEGIN IF(CLK_CA'EVENTANDCLK_CA='1')THEN IF(CA_COUNT<24999)THEN CLK_KH<='1'; ELSE CLK_KH<='0'; ENDIF; ENDIF; ENDPROCESSP4; P5:PROCESS(CLK_KH)--進(jìn)程P5,對1KHZ信號進(jìn)行計(jì)數(shù) BEGIN IF(CLK_KH'EVENTANDCLK_KH='1')THEN IF(HZ_COUNT<1000)THEN HZ_COUNT<=HZ_COUNT+1; ELSE HZ_COUNT<=0; ENDIF; ENDIF; ENDPROCESSP5; P6:PROCESS(CLK_KH)--進(jìn)程P6,通過計(jì)數(shù)器HZ_COUNT,產(chǎn)生1HZ信號 BEGIN IF(CLK_KH'EVENTANDCLK_KH='1')THEN IF(HZ_COUNT<500)THEN CLK_H<='1'; ELSE CLK_H<='0'; ENDIF; ENDIF; ENDPROCESSP6; P7:PROCESS(CLK_H,CLK_CO)--進(jìn)程P7,在1HZ信號CLK_H半個(gè)周期內(nèi)統(tǒng)計(jì)輸入信號變化次數(shù),P6,P7可以合并 BEGIN IF(CLK_CO'EVENTANDCLK_CO='1')THEN IF(CLK_H='1')THEN CO_BUF<=CO_BUF+1; ELSE--將統(tǒng)計(jì)結(jié)果乘以二傳到CO_COUNT,為輸入信號頻率 IF(CO_BUF>0)THEN CO_COUNT<=2*CO_BUF; CO_BUF<=0;--適時(shí)清零緩沖器 ENDIF; CO_BUF<=0; ENDIF; ENDIF; ENDPROCESSP7;P11:PROCESS(CLK_CA) BEGIN IF(CLK_CA'EVENTANDCLK_CA='1')THEN IF(C100K_COUNT<500)THEN C100K_COUNT<=C100K_COUNT+1; ELSE C100K_COUNT<=0; ENDIF; ENDIF; ENDPROCESSP11; P12:PROCESS(CLK_CA) BEGIN IF(CLK_CA'EVENTANDCLK_CA='1')THEN IF(C100K_COUNT<250)THEN CLK_10KH<='1'; ELSE CLK_10KH<='0'; ENDIF; ENDIF; ENDPROCESSP12; P13:PROCESS(CLK_CO,CLK_10KH) BEGIN IF(CLK_10KH'EVENTANDCLK_10KH='1')THEN IF(CLK_CO='1')THEN T_BUF<=T_BUF+1; ELSE IF(HZ_COUNT<10)THEN IF(T_BUF>0)THEN T_COUNT<=T_BUF*2; T_BUF<=0; ENDIF; T_BUF<=0; ENDIF; ENDIF; ENDIF; ENDPROCESSP13; P8:PROCESS(CLK_KH)--進(jìn)程P8,通過1KHZ信號變化改變數(shù)碼管位選標(biāo)識 BEGIN IF(CLK_KH'EVENTANDCLK_KH='1')THEN IF(BIS<3)THEN BIS<=BIS+1; ELSE BIS<=0; ENDIF; ENDIF; ENDPROCESSP8; P9:PROCESS(CLK_KH,BIS,KEY)--進(jìn)程P9,數(shù)碼管位選,并傳入顯示數(shù)據(jù) BEGIN IF(CO_COUNT>9999)THEN WARB<='1'; ELSE WARB<='0'; ENDIF; IF(CLK_KH'EVENTANDCLK_KH='1')THEN IF(KEY='0')THEN LED1<='0'; LED2<='1'; CASEBISIS WHEN0=>EN_XHDL<="1110"; data<=(10000/CO_COUNTMOD10); WHEN1=>EN_XHDL<="1101"; data<=((10000/CO_COUNT/10)MOD10); WHEN2=>EN_XHDL<="1011"; data<=((10000/CO_COUNT/100)MOD10); WHEN3=>EN_XHDL<="0111"; data<=(10000/CO_COUNT/1000); WHENOTHERS=>EN_XHDL<="1111";data<=0; ENDCASE; ELSE LED2<='0'; LED1<='1'; CASEBISIS WHEN0=>EN_XHDL<="1110"; data<=(CO_COUNTMOD10);
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020-2021學(xué)年湖南省五市十校教研教改共同體高一下學(xué)期期末考試地理試題
- 小學(xué)五年級數(shù)學(xué)小數(shù)乘除法計(jì)算練習(xí)題-集
- 《急性咽炎》課件
- 小學(xué)數(shù)學(xué)四年級上冊《小數(shù)加減混合運(yùn)算》教學(xué)設(shè)計(jì)
- 《行政法講義》課件
- 《菱鎂礦開采工藝》課件
- 護(hù)欄工程勞務(wù)作業(yè)內(nèi)容及技術(shù)參數(shù)
- 《刑法分則的適用》課件
- 高校美術(shù)教育實(shí)踐經(jīng)驗(yàn)總結(jié)計(jì)劃
- 小學(xué)班主任工作經(jīng)歷總結(jié)
- 公務(wù)員調(diào)任(轉(zhuǎn)任)審批表 - 陽春人才網(wǎng)
- IE部成立工作規(guī)劃
- 單體調(diào)試及試運(yùn)方案
- 2023-2024學(xué)年浙江省杭州市城區(qū)數(shù)學(xué)四年級第一學(xué)期期末學(xué)業(yè)水平測試試題含答案
- 網(wǎng)球技術(shù)與戰(zhàn)術(shù)-華東師范大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 2023年35kV集電線路直埋施工方案
- 思政教師培訓(xùn)心得體會2021
- HLB值的實(shí)驗(yàn)測定方法
- 2023年《病歷書寫基本規(guī)范》年度版
- 防止電力生產(chǎn)事故的-二十五項(xiàng)重點(diǎn)要求2023版
- 代理記賬機(jī)構(gòu)代理記賬業(yè)務(wù)規(guī)范
評論
0/150
提交評論