版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、西北師范大學(xué)知行學(xué)院EDA課程設(shè)計說明書 系 別 專業(yè)班級 學(xué)生姓名 學(xué) 號 指導(dǎo)教師 量程自動轉(zhuǎn)換數(shù)字頻率計的設(shè)計一、設(shè)計目標:A 設(shè)計一個3位十進制數(shù)字式頻率計,其測量范圍為1MHz,量程分10kHz,100kHz和1MHz三檔(最大讀數(shù)分別為9.99kHz,99.9kHz,999kHz)。被測信號應(yīng)是一符合CMOS電路要求的脈沖或正弦波。B 要求量程可根據(jù)被測量的頻率大小自動轉(zhuǎn)換,即當計數(shù)器溢出時,產(chǎn)生一個換擋信號,讓整個計數(shù)時間減少為原來的1/10,從而實現(xiàn)換擋功能。C 要求實現(xiàn)溢出報警功能,即當頻率高于999kHz時,產(chǎn)生一個報警信號,點亮LED燈,從而實現(xiàn)溢出報警功能。D 小數(shù)點位
2、置隨量程變化自動移位。E 采用記憶顯示方式,即計數(shù)過程中不顯示數(shù)據(jù),待計數(shù)過程結(jié)束后,顯示計數(shù)結(jié)果,并將此顯示結(jié)果保持到下一次計數(shù)結(jié)束。顯示時間應(yīng)不小于1秒。二、設(shè)計思路及實現(xiàn)方案:1. 頻率計的工作原理:常用的測量頻率的方法有兩種,一種是測周期法,一種是測頻率法。測周期法需要有基準系統(tǒng)時鐘頻率Fs,在待測信號一個周期Tx內(nèi),記錄基準系統(tǒng)時鐘頻率的周期數(shù)Ns,則被測頻率可表示為:Fx=Fs/Ns 測頻率法就是在一定時間間隔Tw(該時間定義為閘門時間)內(nèi),測得這個周期性信號的重復(fù)變換次數(shù)為Nx,則其頻率可表示為:Fx=Nx/Tw 本設(shè)計采用的是直接測頻率的方法。2. 頻率計的原理框圖:頻率計的系
3、統(tǒng)設(shè)計可分為3位十進制計數(shù)模塊,閘門控制模塊,譯碼顯示模塊,可自動換擋模塊和分頻模塊。其原理框圖如下:分頻模塊可自動換擋模塊閘門控制模塊3位十進制計數(shù)模塊譯碼顯示模塊其中,可自動換擋模塊為閘門控制模塊提供3個擋,也就是三個測量范圍的基準時鐘信號,通過計數(shù)器的最高位的溢出情況來判定工作在第幾擋。 閘門控制模塊根據(jù)基準時鐘信號產(chǎn)生基準時鐘信號周期2倍的周期使能信號,隨后為鎖存器產(chǎn)生一周期性地鎖存信號,再然后為計數(shù)模塊產(chǎn)生一周期性的清零信號。 3位十進制計數(shù)模塊在使能信號和清零信號的控制下對被測信號的波形變化進行計數(shù),若產(chǎn)生溢出則為自動換擋模塊輸出一換擋信號。 譯碼顯示模塊顯示被測信號的頻率。三、設(shè)
4、計步驟1. 分頻模塊: 輸入信號為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時鐘脈沖輸入端,clk_out為1KHZ脈沖輸出端。由于輸入為高頻信號,不易仿真且代碼編譯無誤,這里沒有給出時序波形圖。經(jīng)軟件編譯后,得到模塊為: 2.3位十進制計數(shù)
6、模塊: 3位十進制計數(shù)模塊包含3個級聯(lián)十進制計數(shù)器,用來對施加到時鐘脈沖輸入端的待測信號產(chǎn)生的脈沖進行計數(shù),十進制計數(shù)器具有計數(shù)使能、清零控制和進位輸出功能。用于計數(shù)的時間間隔(計數(shù)允許周期T)由閘門控制模塊的控制信號發(fā)生器所產(chǎn)生的使能信號來控制,計數(shù)使能信號也在閘門控制模塊中產(chǎn)生。自動換擋模塊決定計數(shù)器讀數(shù)的單位。 1位十進制計數(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;以上源程序編譯成功后,生成計數(shù)器模塊如下:3位十進制計數(shù)模塊為:3.閘門控制模塊: 以基準信號的周期為一秒為例,頻率測量的基本原理是計算
9、一秒內(nèi)待測信號的脈沖個數(shù),這就要求能產(chǎn)生一個周期為2秒,占空比為50%的周期信號TSTEN。用這個信號作為計數(shù)器的EN輸入端,使其計數(shù)時間正好為1秒。當TSTEN為高電平時,計數(shù)開始,低電平時,計數(shù)停止。在計數(shù)器停止期間,首先要產(chǎn)生一個鎖存信號LOAD,用其上升沿控制鎖存器REG12將之前的計數(shù)結(jié)果存入鎖存器中,并由顯示模塊將其顯示出來。設(shè)置鎖存器是為了讓顯示穩(wěn)定,不會因為周期性的清零信號使得數(shù)值不斷閃爍。鎖存之后需有一清零信號CLR_CNT將計數(shù)器清零,為下一秒的計數(shù)操作做準備。 閘門控制模塊的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;時序仿真結(jié)果如下:編譯后生成的模塊為: 其中,clk為基準信號輸入端,clr_cnt為清零信號,tsten為計數(shù)使能信號,load為鎖存允許信號。3. 可自動換擋模塊:本設(shè)計通過控制基準時鐘信號來實現(xiàn)量程的自動轉(zhuǎn)換。在第一個計數(shù)器的C
12、LK端接一周期為0.001s(1KHz)的時鐘信號,其測量范圍為100-999000Hz,為2擋;在第一個計數(shù)器的COUNT端將會得到周期為0.01s的信號,即為1擋,其測量范圍為10-99900Hz;在第二個計數(shù)器的COUNT端將會得到0.1s的信號,即為0擋,其測量范圍為0-9990Hz。這里還需要一個3選1選擇器來選擇第幾個計數(shù)器的COUNT端作為基準時鐘信號。3選1選擇器可根據(jù)3位十進制計數(shù)模塊的溢出情況來作為選擇標準。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;生成的模塊為:仿真波形為:當輸入為0000時:當輸入為0001時:當輸入為0010時:當輸入為0011時:可以看到,設(shè)計完全符合要求,o端可以作為量程溢出標志。綜上,量程自動轉(zhuǎn)換模塊為:4. 譯碼顯示模塊:譯碼顯示模塊
15、的設(shè)計分為顯示鎖存器的設(shè)計,七段數(shù)碼顯示譯碼器的設(shè)計和小數(shù)點顯示模塊的設(shè)計3部分。顯示鎖存器是在計數(shù)結(jié)束后,利用load信號的上升沿把最新計數(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ù)點顯示模塊的源程序如下: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ù)碼顯示譯碼器。為了便于仿真,clk_in端輸入為1us(是1ms的0.001倍),sig輸入端也同樣變?yōu)榇郎y信號的0.001倍
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度碼頭環(huán)境監(jiān)測與污染風(fēng)險防控服務(wù)協(xié)議4篇
- 美容院2025年度美容師服務(wù)質(zhì)量監(jiān)控合同范本4篇
- 二零二五版智能交通系統(tǒng)檢測與維護合同3篇
- 2025年度PVC光伏組件生產(chǎn)合作協(xié)議3篇
- 2025年度寵物活體銷售合同模板(含寵物培訓(xùn)課程包)3篇
- 2025年度池塘水域漁業(yè)資源養(yǎng)護與增殖合同范本4篇
- 2025年廠房物業(yè)管理與可持續(xù)發(fā)展戰(zhàn)略協(xié)議4篇
- 二零二五年度新型房產(chǎn)交易代理合同4篇
- 二零二五年度航空航天制造勞務(wù)合作合同3篇
- 2025年度產(chǎn)學(xué)研合作促進科技成果轉(zhuǎn)化合同4篇
- 帶狀皰疹護理查房課件整理
- 年月江西省南昌市某綜合樓工程造價指標及
- 奧氏體型不銹鋼-敏化處理
- 作物栽培學(xué)課件棉花
- 交通信號控制系統(tǒng)檢驗批質(zhì)量驗收記錄表
- 弱電施工驗收表模板
- 絕對成交課件
- 探究基坑PC工法組合鋼管樁關(guān)鍵施工技術(shù)
- 國名、語言、人民、首都英文-及各地區(qū)國家英文名
- API SPEC 5DP-2020鉆桿規(guī)范
- 組合式塔吊基礎(chǔ)施工專項方案(117頁)
評論
0/150
提交評論