量程自動(dòng)轉(zhuǎn)換數(shù)字頻率計(jì)的設(shè)計(jì)_第1頁
量程自動(dòng)轉(zhuǎn)換數(shù)字頻率計(jì)的設(shè)計(jì)_第2頁
量程自動(dòng)轉(zhuǎn)換數(shù)字頻率計(jì)的設(shè)計(jì)_第3頁
量程自動(dòng)轉(zhuǎn)換數(shù)字頻率計(jì)的設(shè)計(jì)_第4頁
量程自動(dòng)轉(zhuǎn)換數(shù)字頻率計(jì)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、西北師范大學(xué)知行學(xué)院EDA課程設(shè)計(jì)說明書 系 別 專業(yè)班級(jí) 學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)教師 量程自動(dòng)轉(zhuǎn)換數(shù)字頻率計(jì)的設(shè)計(jì)一、設(shè)計(jì)目標(biāo):A 設(shè)計(jì)一個(gè)3位十進(jìn)制數(shù)字式頻率計(jì),其測(cè)量范圍為1MHz,量程分10kHz,100kHz和1MHz三檔(最大讀數(shù)分別為9.99kHz,99.9kHz,999kHz)。被測(cè)信號(hào)應(yīng)是一符合CMOS電路要求的脈沖或正弦波。B 要求量程可根據(jù)被測(cè)量的頻率大小自動(dòng)轉(zhuǎn)換,即當(dāng)計(jì)數(shù)器溢出時(shí),產(chǎn)生一個(gè)換擋信號(hào),讓整個(gè)計(jì)數(shù)時(shí)間減少為原來的1/10,從而實(shí)現(xiàn)換擋功能。C 要求實(shí)現(xiàn)溢出報(bào)警功能,即當(dāng)頻率高于999kHz時(shí),產(chǎn)生一個(gè)報(bào)警信號(hào),點(diǎn)亮LED燈,從而實(shí)現(xiàn)溢出報(bào)警功能。D 小數(shù)點(diǎn)位

2、置隨量程變化自動(dòng)移位。E 采用記憶顯示方式,即計(jì)數(shù)過程中不顯示數(shù)據(jù),待計(jì)數(shù)過程結(jié)束后,顯示計(jì)數(shù)結(jié)果,并將此顯示結(jié)果保持到下一次計(jì)數(shù)結(jié)束。顯示時(shí)間應(yīng)不小于1秒。二、設(shè)計(jì)思路及實(shí)現(xiàn)方案:1. 頻率計(jì)的工作原理:常用的測(cè)量頻率的方法有兩種,一種是測(cè)周期法,一種是測(cè)頻率法。測(cè)周期法需要有基準(zhǔn)系統(tǒng)時(shí)鐘頻率Fs,在待測(cè)信號(hào)一個(gè)周期Tx內(nèi),記錄基準(zhǔn)系統(tǒng)時(shí)鐘頻率的周期數(shù)Ns,則被測(cè)頻率可表示為:Fx=Fs/Ns 測(cè)頻率法就是在一定時(shí)間間隔Tw(該時(shí)間定義為閘門時(shí)間)內(nèi),測(cè)得這個(gè)周期性信號(hào)的重復(fù)變換次數(shù)為Nx,則其頻率可表示為:Fx=Nx/Tw 本設(shè)計(jì)采用的是直接測(cè)頻率的方法。2. 頻率計(jì)的原理框圖:頻率計(jì)的系

3、統(tǒng)設(shè)計(jì)可分為3位十進(jìn)制計(jì)數(shù)模塊,閘門控制模塊,譯碼顯示模塊,可自動(dòng)換擋模塊和分頻模塊。其原理框圖如下:分頻模塊可自動(dòng)換擋模塊閘門控制模塊3位十進(jìn)制計(jì)數(shù)模塊譯碼顯示模塊其中,可自動(dòng)換擋模塊為閘門控制模塊提供3個(gè)擋,也就是三個(gè)測(cè)量范圍的基準(zhǔn)時(shí)鐘信號(hào),通過計(jì)數(shù)器的最高位的溢出情況來判定工作在第幾擋。 閘門控制模塊根據(jù)基準(zhǔn)時(shí)鐘信號(hào)產(chǎn)生基準(zhǔn)時(shí)鐘信號(hào)周期2倍的周期使能信號(hào),隨后為鎖存器產(chǎn)生一周期性地鎖存信號(hào),再然后為計(jì)數(shù)模塊產(chǎn)生一周期性的清零信號(hào)。 3位十進(jìn)制計(jì)數(shù)模塊在使能信號(hào)和清零信號(hào)的控制下對(duì)被測(cè)信號(hào)的波形變化進(jìn)行計(jì)數(shù),若產(chǎn)生溢出則為自動(dòng)換擋模塊輸出一換擋信號(hào)。 譯碼顯示模塊顯示被測(cè)信號(hào)的頻率。三、設(shè)

4、計(jì)步驟1. 分頻模塊: 輸入信號(hào)為4MHZ的高頻脈沖,經(jīng)過分頻器后得到1KHZ的脈沖。分頻器的代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenping2 isport(clk : in std_logic;clk_out : out std_logic);end fenping2;architecture behavior of fenping2 is begin process(clk) variable count: integer range 0 to 1999

5、; variable x: std_logic; begin if clk'event and clk='1' then if count<1999then count:=count+1; else count:=0; x:=not x; end if; end if; clk_out<=x; end process;end architecture behavior;模塊說明:clk為4MHZ時(shí)鐘脈沖輸入端,clk_out為1KHZ脈沖輸出端。由于輸入為高頻信號(hào),不易仿真且代碼編譯無誤,這里沒有給出時(shí)序波形圖。經(jīng)軟件編譯后,得到模塊為: 2.3位十進(jìn)制計(jì)數(shù)

6、模塊: 3位十進(jìn)制計(jì)數(shù)模塊包含3個(gè)級(jí)聯(lián)十進(jìn)制計(jì)數(shù)器,用來對(duì)施加到時(shí)鐘脈沖輸入端的待測(cè)信號(hào)產(chǎn)生的脈沖進(jìn)行計(jì)數(shù),十進(jìn)制計(jì)數(shù)器具有計(jì)數(shù)使能、清零控制和進(jìn)位輸出功能。用于計(jì)數(shù)的時(shí)間間隔(計(jì)數(shù)允許周期T)由閘門控制模塊的控制信號(hào)發(fā)生器所產(chǎn)生的使能信號(hào)來控制,計(jì)數(shù)使能信號(hào)也在閘門控制模塊中產(chǎn)生。自動(dòng)換擋模塊決定計(jì)數(shù)器讀數(shù)的單位。 1位十進(jìn)制計(jì)數(shù)器的VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 is port (CLK,RST,EN : in std_logi

7、c; CQ : out std_logic_vector(3 downto 0); COUNT : out std_logic ); end count10;architecture behav of count10 isbegin process(CLK, RST, EN) variable CQ1 : std_logic_vector(3 downto 0); begin if RST = '1' then CQ1 := (others =>'0') ; elsif CLK'event and CLK='1' then if E

8、N = '1' then if CQ1 < 9 then CQ1 := CQ1 + 1; else CQ1 := (others =>'0'); end if; end if; end if; if CQ1 = 9 then COUNT <= '1' else COUNT <= '0' end if; CQ <= CQ1; end process;end behav;以上源程序編譯成功后,生成計(jì)數(shù)器模塊如下:3位十進(jìn)制計(jì)數(shù)模塊為:3.閘門控制模塊: 以基準(zhǔn)信號(hào)的周期為一秒為例,頻率測(cè)量的基本原理是計(jì)算

9、一秒內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù),這就要求能產(chǎn)生一個(gè)周期為2秒,占空比為50%的周期信號(hào)TSTEN。用這個(gè)信號(hào)作為計(jì)數(shù)器的EN輸入端,使其計(jì)數(shù)時(shí)間正好為1秒。當(dāng)TSTEN為高電平時(shí),計(jì)數(shù)開始,低電平時(shí),計(jì)數(shù)停止。在計(jì)數(shù)器停止期間,首先要產(chǎn)生一個(gè)鎖存信號(hào)LOAD,用其上升沿控制鎖存器REG12將之前的計(jì)數(shù)結(jié)果存入鎖存器中,并由顯示模塊將其顯示出來。設(shè)置鎖存器是為了讓顯示穩(wěn)定,不會(huì)因?yàn)橹芷谛缘那辶阈盘?hào)使得數(shù)值不斷閃爍。鎖存之后需有一清零信號(hào)CLR_CNT將計(jì)數(shù)器清零,為下一秒的計(jì)數(shù)操作做準(zhǔn)備。 閘門控制模塊的VHDL源程序如下:library ieee;use ieee.std_logic_1164.al

10、l;use ieee.std_logic_unsigned.all;entity testctl is port (clk : in std_logic; clr_cnt : out std_logic; tsten : out std_logic; load : out std_logic ); end testctl;architecture behav of testctl issignal a:std_logic;begin process(clk) begin if clk'event and clk='1' then a<=nota; end if;

11、end process; process(clk,a) if a='0' and clk='0' then clr_cnt<='1' else clr_cnt<='0' end if; end process; load<=not a; tsten<= a;end behav;時(shí)序仿真結(jié)果如下:編譯后生成的模塊為: 其中,clk為基準(zhǔn)信號(hào)輸入端,clr_cnt為清零信號(hào),tsten為計(jì)數(shù)使能信號(hào),load為鎖存允許信號(hào)。3. 可自動(dòng)換擋模塊:本設(shè)計(jì)通過控制基準(zhǔn)時(shí)鐘信號(hào)來實(shí)現(xiàn)量程的自動(dòng)轉(zhuǎn)換。在第一個(gè)計(jì)數(shù)器的C

12、LK端接一周期為0.001s(1KHz)的時(shí)鐘信號(hào),其測(cè)量范圍為100-999000Hz,為2擋;在第一個(gè)計(jì)數(shù)器的COUNT端將會(huì)得到周期為0.01s的信號(hào),即為1擋,其測(cè)量范圍為10-99900Hz;在第二個(gè)計(jì)數(shù)器的COUNT端將會(huì)得到0.1s的信號(hào),即為0擋,其測(cè)量范圍為0-9990Hz。這里還需要一個(gè)3選1選擇器來選擇第幾個(gè)計(jì)數(shù)器的COUNT端作為基準(zhǔn)時(shí)鐘信號(hào)。3選1選擇器可根據(jù)3位十進(jìn)制計(jì)數(shù)模塊的溢出情況來作為選擇標(biāo)準(zhǔn)。3選1選擇器的VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigne

13、d.all;entity mux31 is port (a: in std_logic_vector(3 downto 0); y: out std_logic; o: out std_logic; input0: in std_logic; input1: in std_logic; input2: in std_logic;);end mux31;architecture behav of mux31 isbegin process(input0,input1,input2,a)begin case a is when"0000"=> y <=input0;

14、o<=0; when"0001"=> y <=input1; o<=0; when"0010"=> y <=input2; o<=0; when others=> y<='0'o<='1'end case;end process;end behav;生成的模塊為:仿真波形為:當(dāng)輸入為0000時(shí):當(dāng)輸入為0001時(shí):當(dāng)輸入為0010時(shí):當(dāng)輸入為0011時(shí):可以看到,設(shè)計(jì)完全符合要求,o端可以作為量程溢出標(biāo)志。綜上,量程自動(dòng)轉(zhuǎn)換模塊為:4. 譯碼顯示模塊:譯碼顯示模塊

15、的設(shè)計(jì)分為顯示鎖存器的設(shè)計(jì),七段數(shù)碼顯示譯碼器的設(shè)計(jì)和小數(shù)點(diǎn)顯示模塊的設(shè)計(jì)3部分。顯示鎖存器是在計(jì)數(shù)結(jié)束后,利用load信號(hào)的上升沿把最新計(jì)數(shù)結(jié)果保存起來。其源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg12 isport(load : in std_logic;din0,din1,din2: in std_logic_vector(3 downto 0);dout0,dout1,dout2: out std_logic_vector(3 downto 0);en

16、d reg12;architecture behav of reg12 isbegin process(load) begin if load'event and load='1'then dout0<=din0; dout1<=din1; dout2<=din2; end if; end process;end architecture behav; 生成的模塊為:仿真結(jié)果為:七段數(shù)碼顯示譯碼器的vhdl源程序如下:library ieee;use ieee.std_logic_1164.all;entity seg7 isport( dat:in

17、std_logic_vector(3 downto 0); tmp:out std_logic_vector(6 downto 0); end seg7;architecture arc of seg7 is begin process(dat) begin case dat is when "0000"=>tmp<="0000001" when "0001"=>tmp<="1001111" when "0010"=>tmp<="0010010&qu

18、ot; when "0011"=>tmp<="0000110" when "0100"=>tmp<="1001100" when "0101"=>tmp<="0100100" when "0110"=>tmp<="0100000" when "0111"=>tmp<="0001111" when "1000"=>

19、tmp<="0000000" when "1001"=>tmp<="0000100" when "1010"=>tmp<="0001000" when "1011"=>tmp<="1100000" when "1100"=>tmp<="0110001" when "1101"=>tmp<="1000010" wh

20、en "1110"=>tmp<="0110000" when "1111"=>tmp<="0111000" end case; end process;end arc; 生成的模塊為:小數(shù)點(diǎn)顯示模塊的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dot is port (dang_in: in std_logic_vector(3 downto 0); dang: o

21、ut std_logic_vector(2 downto 0);end dot;architecture one of dot isbegin process(dang_in) begin case dang_in is when"0000"=>dang<="100" when"0001"=>dang<="010" when"0010"=>dang<="001" when others=>dang<="111" end case;end process;end one;經(jīng)編譯后生成的模塊為:四、結(jié)論 綜合仿真時(shí),為了直觀的讀出所測(cè)頻率值,沒有加七段數(shù)碼顯示譯碼器。為了便于仿真,clk_in端輸入為1us(是1ms的0.001倍),sig輸入端也同樣變?yōu)榇郎y(cè)信號(hào)的0.001倍

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論