版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 西安歐亞學院信息工程學院FPGA系統(tǒng)開發(fā)設計報告2013 / 2014 學年第 二 學期設計題目: 基于VHDL的分頻計設計 專業(yè)班級: 統(tǒng)本電信1201班 姓名學號: 李瑞洋 12620102154071 指導教師: 張秀芳 設計成績: 一、 設計任務及要求:當系統(tǒng)正常工作時,由系統(tǒng)時鐘提供的50MHz的輸入信號,經(jīng)過信號源模塊,先通過100分頻產(chǎn)生1MHZ的時鐘信號,再將1MHZ的時鐘信號分頻產(chǎn)生多種頻率輸出,其中1HZ的輸出頻率被作為控制模塊的時鐘輸入,7812HZ的輸出頻率被作為顯示模塊的時鐘輸入,由控制模塊產(chǎn)生的計數(shù)使能信號testen和清零信號clr對計數(shù)模塊進行控制,而由其產(chǎn)生
2、的鎖存信號load對鎖存模塊進行控制,一旦計數(shù)使能信號為高電平,并且時鐘上升沿到來,計數(shù)器便開始正常計數(shù),清零信號到來則計數(shù)清零,而當鎖存信號為高電平時,數(shù)據(jù)便被鎖存器鎖存,然后將鎖存的數(shù)據(jù)輸出到顯示模塊顯示出來,數(shù)據(jù)鎖存保證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),顯示譯碼驅(qū)動電路將二進制表示的計數(shù)結(jié)果轉(zhuǎn)換成相應的能夠在數(shù)碼顯示管上可以顯示的十進制結(jié)果。在數(shù)碼顯示管上可以看到計數(shù)結(jié)果。數(shù)字頻率計的原理框圖如圖所示。主要由5個模塊組成,分別是:信號源模塊、控制模塊、計數(shù)模塊、鎖存器模塊和顯示器模塊6二、 基本設計思路 根據(jù)數(shù)字頻率計的系統(tǒng)原理,cnt控制信號發(fā)生器。testctl的計數(shù)使能信號testen能產(chǎn)生一
3、個1 s寬的周期信號,并對頻率計的每一計數(shù)器Cnt10的ENA使能端進行同步控制:當testen高電平時允許計數(shù)、低電平時停止計數(shù)。 reg32b為鎖存器。在信號load的上升沿時,立即對模塊的輸入口的數(shù)據(jù)鎖存到reg32b的內(nèi)部,并由reg32b的輸出端輸出,然后,七段譯碼器可以譯碼輸出。在這里使用了鎖存器,好處是可以穩(wěn)定顯示數(shù)據(jù),不會由于周期性的清零信號而不斷閃爍。 Cnt10為十進制計數(shù)器。有一時鐘使能輸入端ENA,用于鎖定計數(shù)值。當高電平時允許計數(shù),低電平時禁止計數(shù)。將八個十進制計數(shù)器Cnt10級聯(lián)起來實現(xiàn)8 位十進制計數(shù)功能2,7 。 disply為七段譯碼顯示驅(qū)動電路,可以將頻率計
4、數(shù)的結(jié)果譯成能在數(shù)碼管上顯示的相對應的阿拉伯數(shù)字,便于讀取測量的結(jié)果。 為了實現(xiàn)系統(tǒng)功能,測頻控制信號發(fā)生器testctl、計數(shù)器Cnt10、鎖存器reg32b存在一個工作時序的問題,設計時需要綜合考慮。 8位數(shù)字頻率計的頂層框圖(endfreq.bdf),設計實現(xiàn)包括信號源模塊(F1MHZ、CNT)、頻率計模塊(FREQ)和顯示模塊(display)三大模塊。下面分別介紹三個模塊的結(jié)構和實現(xiàn)方法。 三.單元模塊設計實現(xiàn)及仿真1、 信號源模塊的實現(xiàn)(1) 功能簡介信號源是為了產(chǎn)生1MHz 的門控信號和待測的定頻信號,而對輸入系統(tǒng)時鐘clk(50MHz)進行分頻的模塊,設計源代碼PIN1MHZ.
5、VHD 對輸入系統(tǒng)時鐘clk(50MHz)進行分頻產(chǎn)生1MHz 信號。(2) 原程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PIN1MHZ_1 IS PORT (clkin : IN STD_LOGIC; clkout : OUT STD_LOGIC); END PIN1MHZ_1; ARCHITECTURE A OF PIN1MHZ_1 IS BEGIN PROCESS(clkin) variable cnttemp : INTEGER RANGE 0 TO 99;
6、BEGIN IF clkin=1 AND clkinevent THEN IF cnttemp=99 THEN cnttemp:=0; ELSE IF cnttemp50 THEN clkout=1; ELSE clkout=0; END IF; cnttemp:=cnttemp+1; END IF; END IF; END PROCESS; END A;(3) 仿真波形2、 頻率計模塊的實現(xiàn)(1) 功能簡介此程序要求將1MHZ的輸入頻率分別進行21分頻(產(chǎn)生500KHZ的輸出頻freq500k)、23分頻(產(chǎn)生125 KHZ的輸出頻率freq125k)、25 分頻(產(chǎn)生31250HZ的輸出頻
7、freq31250)、27分頻(產(chǎn)生7812HZ的輸出頻率freq7812)、29分頻(產(chǎn)生1953HZ的輸出頻率freq1953)、211分頻(產(chǎn)生488HZ的輸出頻率freq488)、213分頻(產(chǎn)生1HZ的輸出頻率freq1)。(2) 原程序library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt is port(clk : in std_logic; -1MHz 輸入 freq1 : out std_logic; -1Hz 輸出 freq488 : out std_log
8、ic; -488Hz 輸出 freq1953 : out std_logic; -1953Hz 輸出 freq7812 : out std_logic; -7812Hz 輸出 freq31250: out std_logic; -31250Hz 輸出 freq125k : out std_logic; -125KHz 輸出 freq500k : out std_logic ); -500KHz 輸出 end cnt; architecture behv of cnt is signal temp: std_logic_vector(19 downto 0); begin process(clk
9、) begin if clkevent and clk =1 then if temp=11110100001000111111 then temp=00000000000000000000; else temp=temp+1; end if; end if; end process; freq1=temp(19); freq488=temp(10);freq1953=temp(8); freq7812=temp(6); freq31250=temp(4); freq125k=temp(2); freq500k=temp(0); end behv; (3) 仿真波形3.測頻控制信號產(chǎn)生器(1)
10、 功能簡介控制模塊的作用是產(chǎn)生測頻所需要的各種控制信號??刂菩盘柕臉藴瘦斎霑r鐘為1HZ,每兩個時鐘周期進行一次頻率測量。該模塊產(chǎn)生的3個控制信號,分別為TSTEN,LOAD,CLR_CNT.CLR_CNT信號用于在每次測量開始時,對計數(shù)器進行復位,以清除上次測量的結(jié)果,該復位信號高電平有效,持續(xù)半個時鐘周期的時間。TSTEN為計數(shù)允許信號,在TSTEN信號的上升沿時刻計數(shù)模塊開始對輸入信號的頻率進行測量,測量時間恰為一個時鐘周期(正好為單位時間1s),在此時間里被測信號的脈沖數(shù)進行計數(shù),即為信號的頻率。然后將值鎖存,并送到數(shù)碼管顯示出來。設置鎖存器的好處是使顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零
11、信號而不斷閃爍。在每一次測量開始時,都必須重新對計數(shù)器清07。(2) 源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL IS PORT ( CLK: IN STD_LOGIC; -1 Hz測頻控制時鐘 TSTEN: OUT STD_LOGIC; -計數(shù)器時鐘使能 CLR_CNT: OUT STD_LOGIC; -計數(shù)器清零 LOAD: OUT STD_LOGIC); -輸出鎖存信號END TESTCTL;ARCHITECTURE ART OF TESTCTL I
12、S SIGNAL DIV2CLK :STD_LOGIC;SIGNAL CLR :STD_LOGIC;SIGNAL loadcnt :STD_LOGIC;BEGIN PROCESS ( CLK ) IS BEGIN IF CLKEVENT AND CLK= 1 -1 HZ時鐘二分頻 THEN DIV2CLK=NOT DIV2CLK; END IF ; END PROCESS; PROCESS ( CLK,DIV2CLK ) BEGIN IF CLK= 0 AND DIV2CLK = 0 THEN -產(chǎn)生計數(shù)器清零信號 CLR= 1; ELSE CLR= 0 ; END IF; if clr=0
13、and div2clk=0 then loadcnt=1; else loadcnt=0; end if; END PROCESS; LOAD=not div2clk; TSTEN=DIV2CLK;CLR_CNT=CLR;END ARCHITECTURE ART;(3) 仿真波形4.鎖存器(1) 功能簡介鎖存器模塊也是必不可少的,測量模塊測量完成后,在load信號的上升沿時刻將測量值鎖存到寄存器中,然后輸出到顯示模塊。鎖存器是起數(shù)據(jù)保持的作用,它將會把數(shù)據(jù)保存到下次觸發(fā)或復位。主要是主從觸發(fā)器組成的。用于存儲數(shù)據(jù)來進行交換,使數(shù)據(jù)穩(wěn)定下來保持一段時間不變化,直到新的數(shù)據(jù)將其替換。(2) 源程序
14、LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LOAD: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END ENTITY REG32B;ARCHITECTURE ART OF REG32B IS BEGINPROCESS ( LOAD, DIN ) ISBEGIN IF LOAD EVENT AND LOAD= 1 THEN DOUT=DIN; -鎖存輸入數(shù)據(jù) END I
15、F;END PROCESS;END ART;(3)仿真波形5十進制計數(shù)器(1)功能簡介計數(shù)器模塊是由8個帶有異步清零端,進位信號輸出的模為10的計數(shù)模塊級連而成。通過(freq.vhd)進行元件例化實現(xiàn)。此十進制計數(shù)器的特殊之處是,有一時鐘使能輸入端ENA,用于鎖定計數(shù)器。當高電平計數(shù)允許,低電平時計數(shù)禁止。計數(shù)器模塊用于對輸入信號的脈沖進行計數(shù),該模塊必須有計數(shù)允許、異步清零等端口,以便于控制模塊對其進行控制。(2)源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT (CLK:IN STD_LOGIC; -計數(shù)時
16、鐘信號 CLR:IN STD_LOGIC; -清零信號 ENA:IN STD_LOGIC; -計數(shù)使能信號 CQ :OUT INTEGER RANGE 0 TO 15;-4位計數(shù)結(jié)果輸出 CARRY_OUT:OUT STD_LOGIC); -計數(shù)進位END CNT10;ARCHITECTURE ART OF CNT10 IS SIGNAL CQI :INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK,CLR,ENA) ISBEGIN IF CLR= 1 THEN CQI= 0; -計數(shù)器異步清零 ELSIF CLKEVENT AND CLK= 1 THEN IF EN
17、A= 1 THEN IF CQI=10 THEN cqi=1; ELSE CQI=cqi+1;END IF; -等于9,則計數(shù)器清零 END IF; END IF; END PROCESS;PROCESS (CQI) IS BEGIN IF CQI=10 THEN CARRY_OUT= 1; -進位輸出 ELSE CARRY_OUT= 0; END IF;END PROCESS; CQ=CQI;END ART;(3)仿真波形 6.顯示模塊(1) 功能簡介LED有段碼和位碼之分,所謂段碼就是讓LED顯示出八位數(shù)據(jù),一般情況下要通過一個譯碼電路,將輸入的4位2進制數(shù)轉(zhuǎn)換為與LED顯示對應的8位段碼
18、。位碼也就是LED的顯示使能端,對于共陰級的LED而言,低電平使能,在本設計中設計了一個3位的循環(huán)計數(shù)器,將計數(shù)結(jié)果輸入到譯碼器,譯碼結(jié)果輸出即可依次使能每個LED。例如:要讓8個LED同時工作顯示數(shù)據(jù),就是要不停的循環(huán)掃描每一個LED,并在使能每一個LED的同時,輸入所需顯示的數(shù)據(jù)對應的8位段碼。雖然8個LED是依次顯示,但是受視覺分辨率的影響,看到的現(xiàn)象是8個LED同時工作。display 模塊的頂層圖如下所示。CNT計數(shù)產(chǎn)生掃描信號(位碼),LED模塊用于查表產(chǎn)生LED段碼輸出。(2) 仿真波形7.整體設計原理圖四總結(jié)設計本設計對等精度頻率計進行了系統(tǒng)的設計。首先介紹了頻率測量的一般方法,著重介紹等精度測頻原理并進行了誤差分析,利用等精度測量原理,通過FPGA運用VHDL編程,利用FPGA(現(xiàn)場可編程門陣列)芯片設計了一個8位數(shù)字式等精度頻率計,該頻率計的測量范圍為0-100MHZ,利用QUARTUS 集成開發(fā)環(huán)境進行編輯、綜合、波形仿真,并下
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時工項目完成協(xié)議
- 人力資源中介服務合同
- 臨時工勞動合同環(huán)境保護
- 會計實習生勞動合同簡易版
- 二手水源熱泵空調(diào)購銷合同樣本
- 人工智能研究與應用合作協(xié)議書
- 北京市東城區(qū)第十一中學2024年高三第二學期期末考試數(shù)學試題試卷
- 人才派遣合同協(xié)議書范本
- 交通運輸考勤規(guī)則
- 交通運輸合同制度
- 辦理營業(yè)執(zhí)照委托書
- 危險貨物道路運輸安全卡4
- 船舶電氣安裝理論圖紙相結(jié)合PPT課件
- 道路交通標志與標線PPT課件
- 幕墻打膠工藝
- 違約損失率(LGD)研究
- 新冀教版九年級英語上冊第26課課件
- 編寫標準必備文件 國家標準 地方標準 行業(yè)標準 企業(yè)標準 格式模板大全
- 《鉆木取火》PPT
- 2021-2025鄉(xiāng)村5年規(guī)劃三篇
- 無線電遙控帆船講解
評論
0/150
提交評論