版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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)頻率測(cè)量:頻率10Hz~9999Hz方波信號(hào);(2)周期測(cè)量:頻率10Hz~9999Hz方波信號(hào);(3)四位數(shù)碼管顯示頻率、周期;(4)能產(chǎn)生頻率1KHz的方波信號(hào),進(jìn)行頻率計(jì)自校;(5)對(duì)兩種不同的測(cè)量用兩種發(fā)光LED指示;2.設(shè)計(jì)內(nèi)容(1)設(shè)計(jì)VHDL代碼源文件;(2)編譯綜合;(3)下載程序,片上測(cè)試;3.編寫設(shè)計(jì)報(bào)告寫出設(shè)計(jì)的全過程,附上有關(guān)資料和程序,有心得體會(huì)。題目:基于FPGA數(shù)字頻率計(jì)一、設(shè)計(jì)目的完成一個(gè)基于FPGA數(shù)字頻率計(jì),要完成以下任務(wù)。(1)頻率測(cè)量:頻率10Hz~9999Hz方波信號(hào);(2)周期測(cè)量:頻率10Hz~9999Hz方波信號(hào);(3)四位數(shù)碼管顯示頻率、周期;(4)能產(chǎn)生頻率1KHz的方波信號(hào),進(jìn)行頻率計(jì)自校;(5)對(duì)兩種不同的測(cè)量用兩種發(fā)光LED指示;二、設(shè)計(jì)方案1.總體設(shè)計(jì)方案系統(tǒng)功能描述:(數(shù)字頻率基本功能是基于FPGA測(cè)試一10-9999HZ的方波信號(hào),并在四位八段數(shù)碼管上顯示,包括分頻模塊、周期測(cè)量模塊、頻率測(cè)量模塊、顯示模塊)2.分頻模塊設(shè)計(jì)將一個(gè)50MHZ的標(biāo)準(zhǔn)信號(hào)每個(gè)周期進(jìn)行一次計(jì)數(shù),計(jì)到50000再從0計(jì)數(shù),然后在計(jì)數(shù)器的前25000時(shí)間內(nèi)將1KHz的信號(hào)置高電平,25000-50000內(nèi)的1KHZ信號(hào)置低電平,從而產(chǎn)生一個(gè)1KHZ的內(nèi)部信號(hào)。將產(chǎn)生的1KHZ信號(hào)每個(gè)周期進(jìn)行一次計(jì)數(shù),計(jì)到1000再從0開始計(jì)數(shù),然后在計(jì)數(shù)器的前500時(shí)間內(nèi)將1HZ信號(hào)置高電平,500-1000時(shí)間內(nèi)內(nèi)江1HZ信號(hào)置低電平,從而產(chǎn)生一個(gè)1HZ頻率的閘門信號(hào)。3.顯示模塊設(shè)計(jì)定義一個(gè)integer類型信號(hào)BIS,范圍為0-3,用這個(gè)信號(hào)來進(jìn)行位選,在1KHZ的信號(hào)中,每經(jīng)過一次周期變換就將BIS加1,超過3則回0,用來做四位數(shù)碼管的動(dòng)態(tài)掃描。檢測(cè)輸入按鍵(輸入端口),當(dāng)為低電平時(shí)則表示顯示頻率,將對(duì)應(yīng)的LED燈端口置高電平,表示周期的LED置低電平。將位選信號(hào)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))類型。如果檢測(cè)到輸入按鍵為低電平時(shí),表示顯示周期,將對(duì)應(yīng)的LED燈端口置高電平,表示頻率的LED置低電平。將位選信號(hào)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語句,將其對(duì)應(yīng)數(shù)據(jù)的段碼放入段選端口,我們所用的電路板數(shù)碼管為共陽極點(diǎn)亮,故點(diǎn)亮的段應(yīng)用低電平。求整數(shù)(data)的個(gè)、十、百、千位的方法:個(gè)位=datamod10;十位=data/10mod10;百位=data/100mod10;千位=data/1000;4.頻率測(cè)量模塊設(shè)計(jì)將分頻模塊中生成的1HZ信號(hào)作為閘門信號(hào),當(dāng)閘門信號(hào)為高電平時(shí),測(cè)量待測(cè)信號(hào)在高電平期間跳的數(shù)量,當(dāng)閘門信號(hào)為低電平時(shí)將測(cè)量數(shù)據(jù)傳入輸出模塊,并將計(jì)數(shù)器清零,該傳出的數(shù)據(jù)為半秒內(nèi)跳沿次數(shù),一個(gè)周期有一個(gè)上升沿和一個(gè)下降沿,固該值即為待測(cè)信號(hào)的頻率值。4.周期測(cè)量模塊設(shè)計(jì)將標(biāo)準(zhǔn)輸入的50MHZ信號(hào)進(jìn)行500被分頻,設(shè)計(jì)一個(gè)100KHZ的信號(hào),將待測(cè)信號(hào)作為閘門,測(cè)量在其高電平期間的100KHZ信號(hào)跳沿次數(shù),當(dāng)待測(cè)信號(hào)為低電平時(shí),將該數(shù)據(jù)傳出,并將計(jì)數(shù)器清零,該測(cè)量值即為輸入信號(hào)的周期值,單位為100KHZ信號(hào)的周期,為10us。三、驗(yàn)證方案仿真結(jié)果:四、結(jié)論及討論完成所有模塊代碼編寫后我進(jìn)行了整合編譯,交由負(fù)責(zé)管腳分配的同學(xué)進(jìn)行分配管腳仿真后下載到開發(fā)板,連接到自己設(shè)置的1KHZ校準(zhǔn)信號(hào)和一個(gè)3KHZ的自定義信號(hào)上,分別撥動(dòng)顯示選擇控制開關(guān),顯示正確、清晰,符合開始時(shí)的要求。將開發(fā)板的輸入管腳,接到波形發(fā)生器上,開發(fā)板能正確顯示發(fā)生器的給定頻率及其周期,但當(dāng)頻率小于20HZ是開始出現(xiàn)數(shù)據(jù)顯示不穩(wěn)定情況,原因是未分高低頻測(cè)量,而是籠統(tǒng)的一個(gè)一秒閘門測(cè)量,低頻數(shù)據(jù)不穩(wěn)定。當(dāng)頻率超過10000HZ時(shí)會(huì)出現(xiàn)顯示不確定的值,原因在于代碼里未處理頻率超界的情況,故在代碼中加上了一個(gè)蜂鳴器端口,當(dāng)頻率超過10000HZ的測(cè)量限度時(shí)蜂鳴器置高電平報(bào)警,提示使用者該值非正確值。11HZ信號(hào)頻率測(cè)量500HZ信號(hào)頻率測(cè)量1000HZ自校信號(hào)頻率測(cè)量
五、課程設(shè)計(jì)的心得與體會(huì)通過對(duì)數(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)容,加深了對(duì)硬件與軟件聯(lián)系的映像,對(duì)其他的軟件編程甚至單片機(jī)的原理與應(yīng)用也有很大的提升。這個(gè)課程設(shè)計(jì)也讓我懂得,理論知識(shí)真的很重要,而實(shí)踐能夠加深對(duì)理論知識(shí)的理解,將理論和實(shí)踐結(jié)合起來,才能設(shè)計(jì)出優(yōu)秀的作品。在這個(gè)課程設(shè)計(jì)過程中,我不只是完成一個(gè)設(shè)計(jì),更重要的是在這一過程中所體會(huì)和學(xué)到的一些非知識(shí)技能層面的東西——細(xì)心、堅(jiān)持、不斷學(xué)習(xí),我相信這會(huì)是一次難得的經(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信號(hào) CLK_CO :INSTD_LOGIC;--待測(cè)信號(hào) CLK_UT:OUTSTD_LOGIC;--自定義信號(hào) KEY :INSTD_LOGIC;--周期/頻率轉(zhuǎn)換 CLK_CAL:OUTSTD_LOGIC;--校準(zhǔn)信號(hào) LEDH :OUTSTD_LOGIC;--頻率顯示LED指示 LEDT :OUTSTD_LOGIC;--周期顯示LED指示 WARG :OUTSTD_LOGIC;--頻率超過測(cè)量范圍警鈴示警-- RST :INSTD_LOGIC; DATAOUT :OUTSTD_LOGIC_VECTOR(7DOWNTO0);--數(shù)碼段選信號(hào) EN :OUTSTD_LOGIC_VECTOR(3DOWNTO0));--數(shù)碼管位選信號(hào)ENDCYMOMETER;ARCHITECTUREBEHAVOFCYMOMETERISSIGNAL DATAOUT_XHDL:STD_LOGIC_VECTOR(7DOWNTO0);--數(shù)碼管段選內(nèi)部信號(hào)SIGNAL EN_XHDL:STD_LOGIC_VECTOR(3DOWNTO0);--數(shù)碼管位選內(nèi)部信號(hào)SIGNAL CLK_KH,CLK_H:STD_LOGIC;--1KHZ和1HZ內(nèi)部信號(hào)SIGNAL CK_SIM,WARB:STD_LOGIC;--自定義內(nèi)部信號(hào),警鈴內(nèi)部信號(hào)SIGNAL BIS:INTEGERRANGE0TO4:=0;--數(shù)碼管位選標(biāo)識(shí)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ù),自定義信號(hào)產(chǎn)生計(jì)數(shù)器SIGNAL data:INTEGERRANGE0TO9;--顯示數(shù)據(jù)傳輸SIGNAL LED1,LED2:STD_LOGIC;--LED標(biāo)識(shí)內(nèi)部信號(hào)SIGNAL C100K_COUNT:INTEGERRANGE0TO500;--100KHZ信號(hào)計(jì)數(shù)器BEGIN DATAOUT<=DATAOUT_XHDL;--將內(nèi)部LED段選信號(hào)關(guān)聯(lián)到輸出信號(hào) EN <=EN_XHDL;--將內(nèi)部LED位選信號(hào)關(guān)聯(lián)到輸出位選 LEDT<=LED1;--將內(nèi)部LED指示信號(hào)關(guān)聯(lián)到輸出LED指示 LEDH<=LED2; CLK_UT<=CK_SIM;--將內(nèi)部自定義信號(hào)關(guān)聯(lián)到輸出 CLK_CAL<=CLK_KH;--將內(nèi)部1KHZ信號(hào)關(guān)聯(lián)到輸出校準(zhǔn) WARG<=WARB;--將內(nèi)部警鈴信號(hào)關(guān)聯(lián)到外部 P1:PROCESS(CLK_CA)--進(jìn)程P1,將50MHZ信號(hào)進(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信號(hào)進(jìn)行計(jì)數(shù),用于產(chǎn)生自定義信號(hào) 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)生自定義信號(hào),此處為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信號(hào)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,對(duì)1KHZ信號(hào)進(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信號(hào) 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信號(hào)CLK_H半個(gè)周期內(nèi)統(tǒng)計(jì)輸入信號(hào)變化次數(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,為輸入信號(hào)頻率 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信號(hào)變化改變數(shù)碼管位選標(biāo)識(shí) 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《計(jì)算機(jī)離港系統(tǒng)》課件
- 《數(shù)字社區(qū)整體方案》課件
- 《撰寫專利》課件
- 《講課體內(nèi)受精和早期胚胎發(fā)育》課件
- 孕期胰腺炎的健康宣教
- 產(chǎn)后睡眠淺的健康宣教
- 孕期關(guān)節(jié)響的健康宣教
- 懸雍垂過長(zhǎng)癥的健康宣教
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》課件-第7章
- 八年級(jí)英語Blindmanandeyesinfiredrama課件
- 村務(wù)監(jiān)督委員會(huì)履職情況報(bào)告三篇
- 《鋼結(jié)構(gòu)設(shè)計(jì)規(guī)范》word版
- 大體積混凝土模板和支架承載力、剛度和整體穩(wěn)固性計(jì)算
- DB11∕318-2022 在用汽油車排氣污染物排放限值及測(cè)量方法(遙感檢測(cè)法)
- PPT模板中華餐飲美食烤魚宣傳PPT課件
- 含氮有機(jī)化合物-胺、酰胺、尿素、丙二酰脲、胍、磺胺、吡咯、吡啶和嘧啶的結(jié)構(gòu)及化學(xué)性質(zhì)熟悉
- PN結(jié)特性和玻爾茲曼常數(shù)測(cè)定
- 工廠電氣試卷及答案
- 國(guó)家開放大學(xué)金融本科《成本管理》章節(jié)測(cè)試參考答案
- JJF 1175-2021 試驗(yàn)篩校準(zhǔn)規(guī)范_(高清-最新版)
- 人工鼻應(yīng)用及護(hù)理
評(píng)論
0/150
提交評(píng)論