VHD數(shù)字頻率計(jì)_第1頁(yè)
VHD數(shù)字頻率計(jì)_第2頁(yè)
VHD數(shù)字頻率計(jì)_第3頁(yè)
VHD數(shù)字頻率計(jì)_第4頁(yè)
VHD數(shù)字頻率計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、VHDL數(shù)字系統(tǒng)設(shè)計(jì)與測(cè)試第三次作業(yè)數(shù)字頻率計(jì)設(shè)計(jì) 一、 設(shè)計(jì)功能要求1. 用VHDL完成12位十進(jìn)制數(shù)字頻率計(jì)的設(shè)計(jì)及仿真。2. 頻率測(cè)量范圍:1Hz10KHz,分成兩個(gè)頻段,即1999Hz,1KHz10KHz,用三位數(shù)碼管顯示測(cè)量頻率,用LED顯示表示單位,如亮綠燈表示Hz,亮紅燈表示KHz。3. 具有自動(dòng)校驗(yàn)和測(cè)量?jī)煞N功能,即能用標(biāo)準(zhǔn)時(shí)鐘校驗(yàn)、測(cè)量精度。4. 具有超量程報(bào)警功能,在超出目前量程檔的測(cè)量范圍時(shí),發(fā)出燈光和音響信號(hào)。二、 設(shè)計(jì)思路基本原理:計(jì)算單位時(shí)間內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù)。具體方法是,使用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,來(lái)對(duì)比測(cè)量其他信號(hào)的頻率。單位時(shí)間可設(shè)置為大于或小

2、于一秒。閘門(mén)時(shí)間越長(zhǎng),頻率值越準(zhǔn)確,但閘門(mén)時(shí)間越長(zhǎng),每次測(cè)量頻率的間隔也就越長(zhǎng)。閘門(mén)時(shí)間越短,測(cè)量的頻率值刷新越快,但將影響到測(cè)量的頻率精度。每次測(cè)量時(shí),采用時(shí)基信號(hào)產(chǎn)生的閘門(mén)信號(hào)啟動(dòng)計(jì)數(shù)器來(lái)對(duì)輸入的脈沖信號(hào)計(jì)數(shù):閘門(mén)信號(hào)結(jié)束則將計(jì)數(shù)結(jié)果送入鎖存器,然后計(jì)數(shù)器清零,準(zhǔn)備下次計(jì)數(shù)。三、 原理圖說(shuō)明圖1原理框圖如圖1所示,按照系統(tǒng)功能數(shù)字頻率計(jì)分為六個(gè)模塊:1測(cè)量/校驗(yàn)選擇模塊(test_meas)2測(cè)頻控制信號(hào)發(fā)生器(二分頻)(clk_process)3計(jì)數(shù)器模塊(cnt_process)4送存選擇、報(bào)警模塊(tostore_process)5鎖存模塊(store_process)6掃描顯示模塊

3、(cnt3_process,bus_process, disp_process)另外,還要加上LED七段譯碼模塊。2、各模塊功能圖2測(cè)量校驗(yàn)選擇如圖2為測(cè)量/校驗(yàn)選擇模塊,該模塊的信號(hào)如下:輸入信號(hào):選擇信號(hào)selet,被測(cè)信號(hào)meas,測(cè)試信號(hào)test;輸出信號(hào):CP1。當(dāng)selet=0時(shí),為測(cè)量狀態(tài),CP1=meas;當(dāng)selet=1時(shí),為校驗(yàn)狀態(tài),CP1=test。校驗(yàn)與測(cè)量共用一個(gè)電路,只是被測(cè)信號(hào)CP1不同而已。圖3測(cè)頻控制信號(hào)發(fā)生器(二分頻)如圖3為測(cè)頻控制信號(hào)發(fā)生器(二分頻),該模塊的信號(hào)如下:輸入信號(hào):1HZ時(shí)鐘信號(hào);輸出信號(hào):1秒定時(shí)信號(hào)(周期為2秒)。圖4計(jì)數(shù)器、送存選擇、

4、報(bào)警模塊1、如圖4為計(jì)數(shù)器、送存選擇、報(bào)警模塊,模塊的功能如下:設(shè)置:量程檔控制開(kāi)關(guān)K,單位顯示信號(hào)Y,當(dāng)K=0時(shí),為1999Hz量程檔,數(shù)碼管顯示的數(shù)值為被測(cè)信號(hào)頻率值,unit顯示綠色,即單位為Hz;當(dāng)K=1時(shí),為1KHz10KHz量程檔被測(cè)信號(hào)頻率值為數(shù)碼管顯示的數(shù)值乘1000,unit顯示紅色,即單位為KHz。2、其中四級(jí)十進(jìn)制計(jì)數(shù)器模塊(帶進(jìn)位C)模塊功能如下:輸入信號(hào):RD、CP,用于計(jì)數(shù)開(kāi)始、清零、鎖存輸出信號(hào):Q4Q1設(shè)置超出量程檔測(cè)量范圍示警信號(hào)alert。若被測(cè)信號(hào)頻率小于1KHz(K=0),則計(jì)數(shù)器只進(jìn)行三級(jí)十進(jìn)制計(jì)數(shù),最大顯示值為999.Hz;如果被測(cè)信號(hào)頻率超過(guò)此范圍

5、,示警信號(hào)驅(qū)動(dòng)燈光、揚(yáng)聲器報(bào)警;若被測(cè)信號(hào)為1KHz10KHz(K=1),計(jì)數(shù)器進(jìn)行四位十進(jìn)制計(jì)數(shù),取高三位顯示,最大顯示值為9.99KHz,如果被測(cè)信號(hào)頻率超過(guò)此范圍,報(bào)警。3、送存選擇、報(bào)警電路狀態(tài)表如表1。表1送存選擇、報(bào)警電路狀態(tài)表圖5鎖存,掃描顯示模塊圖5為鎖存、掃描顯示模塊,該模塊功能如下:鎖存器輸入信號(hào):D3D1,LD;輸出信號(hào):Q3Q1 ,小數(shù)點(diǎn)單位顯示unit。圖6掃描顯示電路如圖6掃描顯示電路,該模塊包含兩個(gè)模塊:七段顯示譯碼器電路(DEC_LED);分時(shí)總線(xiàn)切換電路(SCAN)。四、 VHDL源代碼說(shuō)明-實(shí)體聲明-library IEEE;use IEEE.STD_LOG

6、IC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity dig_frq is Port ( clk1hz : in STD_LOGIC; -分頻時(shí)鐘clk1hz clkscan : in std_logic;-掃描時(shí)鐘clkscan test : in STD_LOGIC;-測(cè)試信號(hào)test meas : in STD_LOGIC;-被測(cè)信號(hào)meas sel : in STD_LOGIC;-測(cè)試校驗(yàn)選擇鍵sel k : in STD_LOGIC;-單位選擇鍵K alert : out STD

7、_LOGIC;-報(bào)警信號(hào)alert unit : out STD_LOGIC;-單位顯示信號(hào)unit ms123 : out STD_LOGIC_VECTOR (2 downto 1);-數(shù)碼管選擇信號(hào)ms123 led : out STD_LOGIC_VECTOR (8 downto 1);-數(shù)碼管信號(hào)ledend dig_frq;-結(jié)構(gòu)體說(shuō)明-architecture Behavioral of dig_frq issignal cp1:std_logic;signal clk05hz:std_logic:=0;signal cp:std_logic;signal rd:std_logic

8、:=1;signal c:std_logic;signal q4,q3,q2,q1:std_logic_vector(4 downto 1):=0000;signal load:std_logic:=0;signal d3,d2,d1:std_logic_vector(4 downto 1):=0000;signal data3,data2,data1:std_logic_vector(4 downto 1):=0000;signal disp:std_logic_vector(4 downto 1):=0000; signal ms123_s:STD_LOGIC_VECTOR (2 down

9、to 1);begin-時(shí)鐘電路,1hz信號(hào)二分頻產(chǎn)生0.5hz信號(hào),1s高電平,1s低電平-clk_process:process(clk1hz) beginif(clk1hzevent and clk1hz=1)thenclk05hz=not clk05hz;end if;end process;-測(cè)試、校驗(yàn)選擇模塊-test_meas:process(sel,meas,test)beginif(sel=1)thensel為1時(shí)cp1為測(cè)試信號(hào)cp1=meas;elsesel為0時(shí)cp1為校驗(yàn)信號(hào)cp1=test;end if;end process;-鎖存的加載信號(hào)load,當(dāng)分頻信號(hào)c

10、lk05hz上升沿時(shí)有效load=not clk05hz;cp=clk05hz and cp1;-計(jì)數(shù)清零信號(hào)rd,當(dāng)分頻信號(hào)clk05hz為0時(shí)有效rd=clk05hz;-四位bcd計(jì)數(shù)電路-cnt_process:process(cp,rd)variable q4_s,q3_s,q2_s,q1_s:integer range 0 to 9;variable c_s:integer range 0 to 1;beginif(rd=0)thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=0;elsif(cpevent and cp=1)thenif(q4_s=9

11、and q3_s=9 and q2_s=9 and q1_s=9 and c_s=1)thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=0;elsif(q4_s=9 and q3_s=9 and q2_s=9 and q1_s=9)thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=1;elsif(q3_s=9 and q2_s=9 and q1_s=9)thenq4_s:=q4_s+1;q3_s:=0;q2_s:=0;q1_s:=0;elsif(q2_s=9 and q1_s=9)thenq3_s:=q3_s+1;q2_s:=0;

12、q1_s:=0;elsif(q1_s=9)thenq2_s:=q2_s+1;q1_s:=0;elseq1_s:=q1_s+1;end if;end if;q4=conv_std_logic_vector(q4_s,4);q3=conv_std_logic_vector(q3_s,4);q2=conv_std_logic_vector(q2_s,4);q1=conv_std_logic_vector(q1_s,4);if(c_s=0)thenc=0;else c=1;end if;end process;-送鎖存電路-tostore_process:process(q4,q3,q2,q1,c,k

13、)beginif(k=0)then-當(dāng)計(jì)數(shù)單位選擇k為0時(shí),輸出計(jì)數(shù)器的低三位d3=q3;d2=q2;d10000 or c0)then-此時(shí),當(dāng)計(jì)數(shù)超過(guò)三位bcd數(shù)時(shí),報(bào)警信號(hào)置1alert=1;elsealert=0;end if;elsif(k=1)then-當(dāng)計(jì)數(shù)單位選擇k為1時(shí),輸出計(jì)數(shù)器的高三位d3=q4;d2=q3;d10)then-此時(shí),當(dāng)計(jì)數(shù)超過(guò)四位bcd數(shù)時(shí),報(bào)警信號(hào)置1alert=1;else alert=0;end if;end if;end process;-鎖存電路store_process:process(load,d1,d2,d3,k)beginif(loade

14、vent and load=1)then-加載信號(hào)load下降沿時(shí),鎖存數(shù)據(jù)data3=d3;data2=d2;data1=d1;if(k=0)then -當(dāng)單位選擇鍵K為0時(shí),單位unit置0,顯示綠色unit=0;Else -當(dāng)單位選擇鍵K為1時(shí),單位unit置1,顯示紅色unit=1;end if;end if;end process;-計(jì)數(shù)到3的計(jì)數(shù)器,產(chǎn)生數(shù)碼管選擇信號(hào)cnt3_process:process(clkscan)variable cnt:integer range 0 to 2:=0;beginif(clkscanevent and clkscan=1)thenif(c

15、nt=2)thencnt:=0;elsecnt:=cnt+1;end if;end if;ms123_s disp disp disp disp=data1;end case;end if;end process;ms123ledledledledledledledledledledled=00111111;end case;if(ms123_s=00 and k=0)thenled(8)=1;elsif(ms123_s=10 and k=1)thenled(8)=1;else led(8)=0;end if;end process;end Behavioral;五、 代碼說(shuō)明測(cè)量/校驗(yàn)選擇模

16、:通過(guò)選擇信號(hào)sel來(lái)選擇被測(cè)信號(hào)meas和test,輸出信號(hào)cp1當(dāng)sel=0時(shí),cp1=meas;當(dāng)sel=1時(shí),cp1=test。測(cè)頻控制信號(hào)發(fā)生器(二分頻)模塊:輸入1HZ時(shí)鐘信號(hào),經(jīng)分頻輸出信號(hào)為1秒定時(shí)信號(hào)(周期為2秒)計(jì)數(shù)器模塊、送存選擇、報(bào)警模塊:在load為高時(shí)開(kāi)始計(jì)數(shù),為低時(shí)清零,q4q1設(shè)置超出量程檔測(cè)量范圍示警信號(hào)alert。若被測(cè)信號(hào)頻率小于1KHz(K=0),則計(jì)數(shù)器只進(jìn)行三級(jí)十進(jìn)制計(jì)數(shù),最大顯示值為999.Hz;如果被測(cè)信號(hào)頻率超過(guò)此范圍,示警信號(hào)驅(qū)動(dòng)燈光、揚(yáng)聲器報(bào)警;若被測(cè)信號(hào)為1KHz10KHz(K=1)。計(jì)數(shù)器進(jìn)行四位十進(jìn)制計(jì)數(shù),取高三位顯示,最大顯示值為9

17、.99KHz,如果被測(cè)信號(hào)頻率超過(guò)此范圍,報(bào)警。鎖存器模塊:當(dāng)load為低時(shí),即ld為高時(shí),鎖存d1d3。掃描顯示模塊:在每個(gè)時(shí)鐘的上升邊將會(huì)改變對(duì)三個(gè)數(shù)碼管的掃描選通??偟妮敵鰹閿?shù)碼管選通信號(hào)sel(三位),輸出到三個(gè)七段數(shù)碼管的控制端。分時(shí)選通個(gè)、十、百位的數(shù)碼管并將相應(yīng)要顯示的數(shù)據(jù)led(七位)輸出到七段顯示譯碼模塊,由此實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)掃描顯示。由于時(shí)鐘比計(jì)數(shù)頻率快所以感覺(jué)三個(gè)數(shù)碼管總是亮著的。六、 仿真結(jié)果與說(shuō)明1. 仿真環(huán)境QuartusII9.0sp2環(huán)境2. 仿真波形(1)二分頻電路及測(cè)試校驗(yàn)選擇電路仿真結(jié)果:說(shuō)明:clk1hz一個(gè)時(shí)鐘產(chǎn)生一個(gè)clk05hz電平,clk05hz電平高低交替。sel為0時(shí),cp1為測(cè)試信號(hào)meas,sel為1時(shí),cp1為校驗(yàn)信號(hào)test。當(dāng)clk05hz為1,被計(jì)數(shù)信號(hào)cp為cp1,當(dāng)clk05hz為0,被計(jì)數(shù)信號(hào)cp為0;(2) 鎖存及顯示電路仿真結(jié)果:K為1K為0說(shuō)明:當(dāng)鍵K為1時(shí),對(duì)bcd計(jì)數(shù)的高三位輸出,當(dāng)計(jì)數(shù)未超出9999時(shí),報(bào)警信號(hào)輸出為0。當(dāng)鍵K為0時(shí),對(duì)bcd計(jì)數(shù)的低三位鎖存;ms123為0,1,2時(shí)分別顯示個(gè)位,十位,百位,當(dāng)單位選擇鍵k為1時(shí),單位顯示unit為 1(紅燈),且百位數(shù)據(jù)DB高位dot位為1。實(shí)驗(yàn)總結(jié):這種結(jié)構(gòu)體的編程,做起來(lái)比較簡(jiǎn)單,但容易讓

溫馨提示

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

評(píng)論

0/150

提交評(píng)論