可變量程數(shù)字頻率計(1)_第1頁
可變量程數(shù)字頻率計(1)_第2頁
可變量程數(shù)字頻率計(1)_第3頁
可變量程數(shù)字頻率計(1)_第4頁
可變量程數(shù)字頻率計(1)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、現(xiàn)代電子學實驗報告實驗題目: 可變量程數(shù)字頻率計 姓 名: 年 級: 2012級 指導教師: 完成日期: 2015年7月14日 原創(chuàng)性聲明本人聲明本實驗報告涉及的電路圖、程序代碼均為自己設計,沒有抄襲他人的成果。特此聲明! 聲明人: 目 錄1、實驗目的- 1 -2、 實驗要求- 1 -3、實驗原理及內(nèi)容- 1 -3.1 實驗的總體結構- 1 -3.2 實驗的理論基礎和原理- 2 -3.3 實驗需要解決的關鍵問題- 3 -4、實驗設計與測試- 3 -4.1 硬件設計- 3 -4.2 硬件測試- 5 -4.3 軟件設計- 8 -4.4 軟件測試- 19 -4.5 總體測試- 20 -5 實驗結論與

2、測試- 21 -參考文獻- 23 -1、實驗目的掌握現(xiàn)代大規(guī)模集成數(shù)字邏輯電路的應用設計方法,以及掌握利用計算機進行電子設計自動化(EDA)的基本方法。2、 實驗要求在實驗板上構造一個五位數(shù)字頻率計。要求分成四檔測量范圍, ×l、×10、×100和×l000。在×l檔,測量范圍為1Hz到99999Hz,余此類推。最高測量頻率為99999ktiz(×1000檔。實際上受ispLSI1016器件限制,不可能測量如此高的頻率)。測量范圍的選擇由按鍵手控,但要有指示燈顯示。另外,輸入頻率大于實際量程要有溢出顯示。3、實驗原理及內(nèi)容測頻率法就是

3、在一定時間間隔Tw(定義為閘門時間)內(nèi),測得被測信號重復出現(xiàn)的次數(shù)為Nx,則其頻率可表示為:Fx=Nx/Tw3.1 實驗的總體結構圖1 實驗總體結構框圖3.2 實驗的理論基礎和原理頻率計的主體部件是一個帶門控計數(shù)端的計數(shù)器(測量計數(shù)器),輸入信號經(jīng)整形后由此計數(shù)器計數(shù)??刂茰y量計數(shù)器的開門計數(shù)時間恰好為1秒,則測量計數(shù)器的計數(shù)值就是輸入信號的頻率??筛淖冮_門計數(shù)時間,即可改變頻率計的量程。如使開門時間為0.01秒,則頻率計的量程為x100,以此類推。 這種頻率計的測量精度取決于以下幾個方面: 閘門時間的精度。一般情況下,閘門脈沖是由石英晶體振蕩器產(chǎn)生的。 由于閘門與被測的信號不同步,在閘門的開

4、啟和關閉邊沿,會造成多計或少計一個被測脈沖。這是這種頻率計的固有系統(tǒng)誤差(±1個最低有效數(shù)字)。尤其在測量較低頻率信號時,這種誤差的影響特別明顯。要減小這種誤差,可以加大閘門時間。但加大閘門時間降低了測量速度,而且在被測頻率相當?shù)蜁r,實際上要單純依靠加大閘門時間來提高精度幾乎是不可能的。例如測量低到數(shù)赫茲的信號,要保證4位有效數(shù)字,則閘門時間要長達10000秒,即三小時! 一個有效的解決辦法是測量周期,即用被測信號作為閘門,而計數(shù)器對內(nèi)部的一個高速基準信號進行計數(shù)。這樣由于該基準信號頻率較高,相對來說計數(shù)值較大,所以閘門邊沿造成的誤差相對降低。但這個方法也有其局限性,主要是由于器件的

5、響應速度限制,基準信號的頻率不可能無限升高。因此該方法一般用于測量較低的頻率。例如,由于器件的速度限制,基準信號的最高頻率為50MHz,要求保證有5位有效數(shù)字,則被測的信號最高頻率大致為50MHz100000500Hz。在上述方法中,要提高被測頻率的上限可以采用改良的測量周期方案。此方案采用若干個被測周期作為計數(shù)閘門,即先將輸入信號分頻再作為閘門脈沖。這樣,由于閘門時間相對增大,可測量的頻率上限得以提高。若輸入分頻系數(shù)為N,則被測信號的頻率上限提高N倍。除此之外,還有其他一些測量方法。例如可以將上述兩種方法(直接測頻和測周期)相互結合。在本次實驗設計中,為簡單直觀體現(xiàn)實驗結果,采用直接測頻的方

6、法。 3.3 實驗需要解決的關鍵問題測量計數(shù)器及閘門計數(shù)器的設計,測量量程的改變。4、實驗設計與測試4.1 硬件設計整體采用GW48-PK2實驗箱。(一)、測量計數(shù)器的設計由于要求頻率計為五位,所以測量計數(shù)器為一個五位十進制帶計數(shù)控制端的計數(shù)器,實際使用了5個系統(tǒng)宏單元CDU14。輸入信號由CLK輸入。計數(shù)器的使能端EN接閘門脈沖。另設一個溢出寄存器,當測量計數(shù)器溢出即最后一位產(chǎn)生進位時,該寄存器置1。 (二)、控制脈沖設計控制測量計數(shù)器的開門計數(shù)時間即閘門脈沖的寬度,可改變頻率計的量程。為此,設計一個寬度可變(ls、0,1s、001s、0.001s)的閘門脈沖來控制測量計數(shù)器:閘門打開時允許

7、計數(shù),否則禁止計數(shù)。當閘門脈沖寬度為ls時,頻率計的量程為×1,當閘門脈沖寬度為01s時,頻率計的量程為×10,等等。為了保證頻率計有足夠的顯示時間,兩次閘門脈沖之間應該有土定的顯示間隔時間。為了保證測量計數(shù)器每次從零開始計數(shù),在閘門打開之前,要先發(fā)一個清零脈沖將測量計數(shù)器清零。閘門脈沖、顯示間隔、清零脈沖諸信號由閘門計數(shù)器產(chǎn)生。 (三)、閘門計數(shù)器的設計首先將12Mhz的晶體振蕩器的振蕩信號進行12000分頻 (由二個12進計數(shù)器和3個十進計數(shù)器構成),得到1000Hz的基準脈沖信號。將這個基準信號作為閘門計數(shù)器的CLK。閘門計數(shù)器是一個帶并行加載輸入端的12位計數(shù)器(由

8、3個二進計數(shù)器CBU34構成),共能計4096個數(shù)(O4095)。當閘門計數(shù)器計數(shù)到2048時,閘門計數(shù)器的最高位變l,利用這個最高位作為頻率測量計數(shù)器的異步清零信號,同時作為閘門計數(shù)器的并行加載信號。在下一個基準脈沖信號來到時,閘門計數(shù)器將被加載到某個初始計數(shù)值。所以該閘門計數(shù)器的計數(shù)值是在初始計數(shù)值和2048之間循環(huán)。量程的改變是依靠加載不同的初始計數(shù)值來實現(xiàn)的。當量程為×1時,初始計數(shù)值為24(10241 00024)。當量程為×10、×100、×1000時,相應的初始計數(shù)值為924、1014、1023。這樣,從初始計數(shù)值到L024的計數(shù)時間為閘門

9、脈沖的寬度,×1為1000ms,×10為100ms,×100、×1000各為10ms和1ms。 從1024到2048為顯示時間(共計1024ms)。閘門計數(shù)為2048到初始計數(shù)值的1ms時間為頻率測量計數(shù)器的清零時間。閘門脈沖由閘門計數(shù)器的次高位輸出,清零脈沖由閘門計數(shù)器的最高位輸出。閘門計數(shù)器的最高位和次高位輸出信號波形見圖42。注意,圖中計數(shù)閘門的寬度為1024減去初始計數(shù)值再加一(清零脈沖的寬度),但由于在測量計數(shù)器中,清零端的優(yōu)先級高于計數(shù)端,實際計數(shù)時間仍然為1024減去初始計數(shù)值。圖中清零脈沖實際上也就是閘門計數(shù)器的同步加載信號。這個脈沖的寬

10、度為一個時鐘脈沖的周期。圖1 頻率計閘門脈沖波形(四)、量程改變與顯示量程改變信號由按鍵(KEY3)控制一個4進制計數(shù)器再加以譯碼,產(chǎn)生4個量程控制信號。此4個信號送閘門計數(shù)器實現(xiàn)量程改變,并送發(fā)光二極管L4L7顯示量程。由另3個發(fā)光二極管分別顯示測量計數(shù)器溢出、閘門脈沖和清零脈沖。4.2 硬件測試本次實驗設計采用GW48-PK2實驗箱,EP1C6Q240C8芯片。如圖2所示。圖2 GW48-PK2實驗箱基準頻率CLK0由實驗箱右下方頻率選擇部分提供,按照設計參數(shù),跳線帽接至50MHz,如圖3所示圖3基準頻率選擇及接法將實驗箱模式切換至“模式0”,通過模式選擇按鍵進行選擇。將實驗箱控制撥碼開關

11、撥至圖中所示位置。如圖4圖4 實驗箱模式選擇4.3 軟件設計1、分頻器部分設計LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FP ISPORT(CLK : IN STD_LOGIC; CLKOUT : OUT STD_LOGIC);END ENTITY;ARCHITECTURE ONE OF FP ISBEGINPROCESS(CLK )VARIABLE M : STD_LOGIC_VECTOR(12 DOWNTO 0);VARIABLE N :STD_LOGIC;BEGINIF

12、CLK'EVENT AND CLK='1' THEN IF M="1011101101111" THEN M:=(OTHERS=>'0'); N:= NOT N; ELSE M:=M+1; END IF;END IF;CLKOUT<=N;END PROCESS;END ARCHITECTURE;2、 定時信號模塊timer為產(chǎn)生4 種不同的閘門信號,可由3 級模10 計數(shù)器對12MHz 信號進行分頻,利用檔位選擇開關通過數(shù)據(jù)選擇器MUX41 選擇出相應的時鐘BCLK,原理圖如圖5圖5 定時信號模塊原理圖其中計數(shù)器CNT.v

13、hd LIBRARY IEEE;-分頻USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT IS PORT(FIN: IN STD_LOGIC;FS: OUT STD_LOGIC);END CNT;ARCHITECTURE DIV_ARC OF CNT ISBEGINPROCESS(FIN)VARIABLE CNT: INTEGER RANGE 0 TO 4;VARIABLE X: STD_LOGIC;BEGINIF FIN'EVENT AND FIN='1' THENIF CNT<4 THENCNT:=CNT+1;ELSECNT:=0;X

14、:=NOT X;END IF;END IF;FS<=X;END PROCESS;END DIV_ARC;3、 控制信號發(fā)生器模塊CONTROL控制信號發(fā)生器模塊在 EN 為高電平時,對待測信號 Fx 進行計數(shù),此時寄存器的使能端 LOAD 為 0;在 EN 跳變?yōu)榈碗娖綍r,LOAD 發(fā)生正跳變,寄存器鎖存計數(shù)器的值;在 EN 和 CLR 同時為低電平時,計數(shù)器清零。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROL ISPORT(BCLK: IN STD_LOGIC

15、; EN,CLR,LOAD: OUT STD_LOGIC);END CONTROL;ARCHITECTURE CONTROL_ARC OF CONTROL ISSIGNAL DIV2BCLK: STD_LOGIC; - DIV2BCLK 為BCLK 的二分頻SIGNAL M: STD_LOGIC; BEGINPROCESS(BCLK)BEGINIF BCLK'EVENT AND BCLK='1' THEN DIV2BCLK<=NOT DIV2BCLK;END IF;END PROCESS;PROCESS(BCLK,DIV2BCLK)BEGINIF BCLK=

16、9;0' AND DIV2BCLK='0' THENCLR<='1'ELSECLR<='0'END IF;END PROCESS;EN<=DIV2BCLK;LOAD<=NOT DIV2BCLK;END CONTROL_ARC;4、 十進制計數(shù)器cnt10LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK : IN STD_LOGIC;-時鐘輸入端、清零端、使能端 CLR :

17、IN STD_LOGIC; EN : IN STD_LOGIC; C : OUT STD_LOGIC; Y : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SSS : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG : OUT STD_LOGIC); END ENTITY;ARCHITECTURE ONE OF CNT10 ISBEGINPROCESS(CLK,EN,CLR)VARIABLE M : STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE N : STD_LOGIC;BEGINIF CLR='1&

18、#39; THEN M:=(OTHERS=>'0');-計數(shù)器異步復位 ELSIF EN='1' -檢測是否允許計數(shù)THEN IF CLK'EVENT AND CLK='1' -檢測時鐘上升沿 THEN IF M="1001" THEN M:="0000" N:='1'-等于9,輸出進位信號 ELSE M:=M+1;-大于9,計數(shù)值清零 N:='0' END IF; END IF;END IF;Y<=M;C<=N;END PROCESS;END AR

19、CHITECTURE; 原理圖: 5、寄存器模塊REGLIBRARY IEEE;-寄存器模塊USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG ISPORT( LK: IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END REG;ARCHITECTURE ONE OF REG ISBEGIN PROCESS(LK,DIN)BEGINIF LK'EVENT AND LK='0' THEN DOUT<=DIN;-

20、LK 是鎖存信號,下降沿觸發(fā)END IF;END PROCESS;END ONE; 原理圖: 6、量程切換(手動)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY KEY ISPORT(CLK : IN STD_LOGIC; K : IN STD_LOGIC; C1 : OUT STD_LOGIC;-X1 C2 : OUT STD_LOGIC;-X10 C3 : OUT STD_LOGIC;-X100 C4 : OUT STD_LOGIC;-X1000 X1 : OUT STD_LOG

21、IC; X2: OUT STD_LOGIC; Y : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); SSS : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG : OUT STD_LOGIC );END ENTITY;ARCHITECTURE ONE OF KEY ISSIGNAL M : STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL N : STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL C10 : STD_LOGIC;SIGNAL C20 : STD_LOGIC; SIGNAL C30 :

22、 STD_LOGIC; SIGNAL C40 : STD_LOGIC;SIGNAL C50 : STD_LOGIC;SIGNAL C60 : STD_LOGIC;SIGNAL SSS1 : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL FLAG1 : STD_LOGIC;BEGINP1 :PROCESS(CLK,K)-BEGINIF CLK'EVENT AND CLK='1' THENIF N="11" THEN N<="00" ELSE N<=N+1; END IF;END IF;IF K=

23、'1'THEN N<="00"END IF;END PROCESS P1;P2:PROCESS(N)BEGINCASE N ISWHEN "00" => C10<='1'C20<='0'C30<='0'C40<='0'M<="0000011000" ; C50<='0'C60<='0'SSS1<="0001"FLAG1<='0

24、9;WHEN "01" => C10<='0'C20<='1'C30<='0'C40<='0'M<="1110011100" ; C50<='0'C60<='1'WHEN "10" => C10<='0'C20<='0'C30<='1'C40<='0'M<="1111110110&qu

25、ot; ; C50<='1'C60<='0' WHEN "11" => C10<='0'C20<='0'C30<='0'C40<='1'M<="1111111111" ; C50<='1'C60<='1'WHEN OTHERS=> C10<='0'C20<='0'C30<='0'C40<=&#

26、39;0'M<="1111111111" ; C50<='0'C60<='0'END CASE;END PROCESS P2;C1<=C10;C2<=C20;C3<=C30;C4<=C40;Y<=M;X1<=C50;X2<=C60;SSS<=SSS1;FLAG<=FLAG1;END ARCHITECTURE; 7、量程切換(自動)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED

27、.ALL;ENTITY KEY ISPORT(CLK : IN STD_LOGIC; K : IN STD_LOGIC; C1 : OUT STD_LOGIC;-X1 C2 : OUT STD_LOGIC;-X10 C3 : OUT STD_LOGIC;-X100 C4 : OUT STD_LOGIC;-X1000 X1 : OUT STD_LOGIC; X2: OUT STD_LOGIC; Y : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); SSS : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG : OUT STD_LOGIC );E

28、ND ENTITY;ARCHITECTURE ONE OF KEY ISSIGNAL M : STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL N : STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL C10 : STD_LOGIC;SIGNAL C20 : STD_LOGIC; SIGNAL C30 : STD_LOGIC; SIGNAL C40 : STD_LOGIC;SIGNAL C50 : STD_LOGIC;SIGNAL C60 : STD_LOGIC;SIGNAL SSS1 : STD_LOGIC_VECTOR(3 DOWNTO 0);S

29、IGNAL FLAG1 : STD_LOGIC;BEGINP1 :PROCESS(CLK,K)-BEGINIF CLK'EVENT AND CLK='1' THENIF N="11" THEN N<="00" ELSE N<=N+1; END IF;END IF;IF K='1'THEN N<="00"END IF;END PROCESS P1;P2:PROCESS(N)BEGINCASE N ISWHEN "00" => C10<='1

30、'C20<='0'C30<='0'C40<='0'M<="0000011000" ; C50<='0'C60<='0'SSS1<="0001"FLAG1<='0'WHEN "01" => C10<='0'C20<='1'C30<='0'C40<='0'M<="111001110

31、0" ; C50<='0'C60<='1'WHEN "10" => C10<='0'C20<='0'C30<='1'C40<='0'M<="1111110110" ; C50<='1'C60<='0' WHEN "11" => C10<='0'C20<='0'C30<='0'C40<='1'M<="1111111111" ; C50<='1'C60<='1'WHEN OTHERS=> C10<='0'C20<='0'C30<='0'C40<='0'M<="1111111111" ; C50<='0'C60<

溫馨提示

  • 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

提交評論