FPGA課程設(shè)計(jì)_第1頁(yè)
FPGA課程設(shè)計(jì)_第2頁(yè)
FPGA課程設(shè)計(jì)_第3頁(yè)
FPGA課程設(shè)計(jì)_第4頁(yè)
FPGA課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 西安歐亞學(xué)院信息工程學(xué)院FPGA系統(tǒng)開(kāi)發(fā)設(shè)計(jì)報(bào)告2013 / 2014 學(xué)年第 二 學(xué)期設(shè)計(jì)題目: 基于VHDL的分頻計(jì)設(shè)計(jì) 專業(yè)班級(jí): 統(tǒng)本電信1201班 姓名學(xué)號(hào): 李瑞洋 12620102154071 指導(dǎo)教師: 張秀芳 設(shè)計(jì)成績(jī): 一、 設(shè)計(jì)任務(wù)及要求:當(dāng)系統(tǒng)正常工作時(shí),由系統(tǒng)時(shí)鐘提供的50MHz的輸入信號(hào),經(jīng)過(guò)信號(hào)源模塊,先通過(guò)100分頻產(chǎn)生1MHZ的時(shí)鐘信號(hào),再將1MHZ的時(shí)鐘信號(hào)分頻產(chǎn)生多種頻率輸出,其中1HZ的輸出頻率被作為控制模塊的時(shí)鐘輸入,7812HZ的輸出頻率被作為顯示模塊的時(shí)鐘輸入,由控制模塊產(chǎn)生的計(jì)數(shù)使能信號(hào)testen和清零信號(hào)clr對(duì)計(jì)數(shù)模塊進(jìn)行控制,而由其產(chǎn)生

2、的鎖存信號(hào)load對(duì)鎖存模塊進(jìn)行控制,一旦計(jì)數(shù)使能信號(hào)為高電平,并且時(shí)鐘上升沿到來(lái),計(jì)數(shù)器便開(kāi)始正常計(jì)數(shù),清零信號(hào)到來(lái)則計(jì)數(shù)清零,而當(dāng)鎖存信號(hào)為高電平時(shí),數(shù)據(jù)便被鎖存器鎖存,然后將鎖存的數(shù)據(jù)輸出到顯示模塊顯示出來(lái),數(shù)據(jù)鎖存保證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),顯示譯碼驅(qū)動(dòng)電路將二進(jìn)制表示的計(jì)數(shù)結(jié)果轉(zhuǎn)換成相應(yīng)的能夠在數(shù)碼顯示管上可以顯示的十進(jìn)制結(jié)果。在數(shù)碼顯示管上可以看到計(jì)數(shù)結(jié)果。數(shù)字頻率計(jì)的原理框圖如圖所示。主要由5個(gè)模塊組成,分別是:信號(hào)源模塊、控制模塊、計(jì)數(shù)模塊、鎖存器模塊和顯示器模塊6二、 基本設(shè)計(jì)思路 根據(jù)數(shù)字頻率計(jì)的系統(tǒng)原理,cnt控制信號(hào)發(fā)生器。testctl的計(jì)數(shù)使能信號(hào)testen能產(chǎn)生一

3、個(gè)1 s寬的周期信號(hào),并對(duì)頻率計(jì)的每一計(jì)數(shù)器Cnt10的ENA使能端進(jìn)行同步控制:當(dāng)testen高電平時(shí)允許計(jì)數(shù)、低電平時(shí)停止計(jì)數(shù)。 reg32b為鎖存器。在信號(hào)load的上升沿時(shí),立即對(duì)模塊的輸入口的數(shù)據(jù)鎖存到reg32b的內(nèi)部,并由reg32b的輸出端輸出,然后,七段譯碼器可以譯碼輸出。在這里使用了鎖存器,好處是可以穩(wěn)定顯示數(shù)據(jù),不會(huì)由于周期性的清零信號(hào)而不斷閃爍。  Cnt10為十進(jìn)制計(jì)數(shù)器。有一時(shí)鐘使能輸入端ENA,用于鎖定計(jì)數(shù)值。當(dāng)高電平時(shí)允許計(jì)數(shù),低電平時(shí)禁止計(jì)數(shù)。將八個(gè)十進(jìn)制計(jì)數(shù)器Cnt10級(jí)聯(lián)起來(lái)實(shí)現(xiàn)8 位十進(jìn)制計(jì)數(shù)功能2,7 。  disply為七段譯碼顯

4、示驅(qū)動(dòng)電路,可以將頻率計(jì)數(shù)的結(jié)果譯成能在數(shù)碼管上顯示的相對(duì)應(yīng)的阿拉伯?dāng)?shù)字,便于讀取測(cè)量的結(jié)果。 為了實(shí)現(xiàn)系統(tǒng)功能,測(cè)頻控制信號(hào)發(fā)生器testctl、計(jì)數(shù)器Cnt10、鎖存器reg32b存在一個(gè)工作時(shí)序的問(wèn)題,設(shè)計(jì)時(shí)需要綜合考慮。 8位數(shù)字頻率計(jì)的頂層框圖(endfreq.bdf),設(shè)計(jì)實(shí)現(xiàn)包括信號(hào)源模塊(F1MHZ、CNT)、頻率計(jì)模塊(FREQ)和顯示模塊(display)三大模塊。下面分別介紹三個(gè)模塊的結(jié)構(gòu)和實(shí)現(xiàn)方法。 三.單元模塊設(shè)計(jì)實(shí)現(xiàn)及仿真1、 信號(hào)源模塊的實(shí)現(xiàn)(1) 功能簡(jiǎn)介信號(hào)源是為了產(chǎn)生1MHz 的門控信號(hào)和待測(cè)的定頻信號(hào),而對(duì)輸入系統(tǒng)時(shí)鐘clk(50MHz)進(jìn)行分頻的模塊,設(shè)

5、計(jì)源代碼PIN1MHZ.VHD 對(duì)輸入系統(tǒng)時(shí)鐘clk(50MHz)進(jìn)行分頻產(chǎn)生1MHz 信號(hào)。(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 RAN

6、GE 0 TO 99; BEGIN IF clkin='1' AND clkin'event THEN IF cnttemp=99 THEN cnttemp:=0; ELSE IF cnttemp<50 THEN clkout<='1' ELSE clkout<='0' END IF; cnttemp:=cnttemp+1; END IF; END IF; END PROCESS; END A;(3) 仿真波形2、 頻率計(jì)模塊的實(shí)現(xiàn)(1) 功能簡(jiǎn)介此程序要求將1MHZ的輸入頻率分別進(jìn)行21分頻(產(chǎn)生500KHZ的輸出頻f

7、req500k)、23分頻(產(chǎn)生125 KHZ的輸出頻率freq125k)、25 分頻(產(chǎn)生31250HZ的輸出頻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; -1MH

8、z 輸入 freq1 : out std_logic; -1Hz 輸出 freq488 : out std_logic; -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 sign

9、al temp: std_logic_vector(19 downto 0); begin process(clk) begin if clk'event 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<

10、=temp(8); freq7812<=temp(6); freq31250<=temp(4); freq125k<=temp(2); freq500k<=temp(0); end behv; (3) 仿真波形3.測(cè)頻控制信號(hào)產(chǎn)生器(1) 功能簡(jiǎn)介控制模塊的作用是產(chǎn)生測(cè)頻所需要的各種控制信號(hào)。控制信號(hào)的標(biāo)準(zhǔn)輸入時(shí)鐘為1HZ,每?jī)蓚€(gè)時(shí)鐘周期進(jìn)行一次頻率測(cè)量。該模塊產(chǎn)生的3個(gè)控制信號(hào),分別為TSTEN,LOAD,CLR_CNT.CLR_CNT信號(hào)用于在每次測(cè)量開(kāi)始時(shí),對(duì)計(jì)數(shù)器進(jìn)行復(fù)位,以清除上次測(cè)量的結(jié)果,該復(fù)位信號(hào)高電平有效,持續(xù)半個(gè)時(shí)鐘周期的時(shí)間。TSTEN為計(jì)數(shù)允許信

11、號(hào),在TSTEN信號(hào)的上升沿時(shí)刻計(jì)數(shù)模塊開(kāi)始對(duì)輸入信號(hào)的頻率進(jìn)行測(cè)量,測(cè)量時(shí)間恰為一個(gè)時(shí)鐘周期(正好為單位時(shí)間1s),在此時(shí)間里被測(cè)信號(hào)的脈沖數(shù)進(jìn)行計(jì)數(shù),即為信號(hào)的頻率。然后將值鎖存,并送到數(shù)碼管顯示出來(lái)。設(shè)置鎖存器的好處是使顯示的數(shù)據(jù)穩(wěn)定,不會(huì)由于周期性的清零信號(hào)而不斷閃爍。在每一次測(cè)量開(kāi)始時(shí),都必須重新對(duì)計(jì)數(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測(cè)頻控制時(shí)鐘 T

12、STEN: OUT STD_LOGIC; -計(jì)數(shù)器時(shí)鐘使能 CLR_CNT: OUT STD_LOGIC; -計(jì)數(shù)器清零 LOAD: OUT STD_LOGIC); -輸出鎖存信號(hào)END TESTCTL;ARCHITECTURE ART OF TESTCTL IS SIGNAL DIV2CLK :STD_LOGIC;SIGNAL CLR :STD_LOGIC;SIGNAL loadcnt :STD_LOGIC;BEGIN PROCESS ( CLK ) IS BEGIN IF CLK'EVENT AND CLK= '1' -1 HZ時(shí)鐘二分頻 THEN DIV2CLK&

13、lt;=NOT DIV2CLK; END IF ; END PROCESS; PROCESS ( CLK,DIV2CLK ) BEGIN IF CLK= '0' AND DIV2CLK = '0' THEN -產(chǎn)生計(jì)數(shù)器清零信號(hào) CLR<= '1' ELSE CLR<= '0' ; END IF; if clr='0' and div2clk='0' then loadcnt<='1' else loadcnt<='0' end if; END

14、 PROCESS; LOAD<=not div2clk; TSTEN<=DIV2CLK;CLR_CNT<=CLR;END ARCHITECTURE ART;(3) 仿真波形4.鎖存器(1) 功能簡(jiǎn)介鎖存器模塊也是必不可少的,測(cè)量模塊測(cè)量完成后,在load信號(hào)的上升沿時(shí)刻將測(cè)量值鎖存到寄存器中,然后輸出到顯示模塊。鎖存器是起數(shù)據(jù)保持的作用,它將會(huì)把數(shù)據(jù)保存到下次觸發(fā)或復(fù)位。主要是主從觸發(fā)器組成的。用于存儲(chǔ)數(shù)據(jù)來(lái)進(jìn)行交換,使數(shù)據(jù)穩(wěn)定下來(lái)保持一段時(shí)間不變化,直到新的數(shù)據(jù)將其替換。(2) 源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENT

15、ITY 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 IF;END PROCESS;END ART;(3)仿

16、真波形5十進(jìn)制計(jì)數(shù)器(1)功能簡(jiǎn)介計(jì)數(shù)器模塊是由8個(gè)帶有異步清零端,進(jìn)位信號(hào)輸出的模為10的計(jì)數(shù)模塊級(jí)連而成。通過(guò)(freq.vhd)進(jìn)行元件例化實(shí)現(xiàn)。此十進(jìn)制計(jì)數(shù)器的特殊之處是,有一時(shí)鐘使能輸入端ENA,用于鎖定計(jì)數(shù)器。當(dāng)高電平計(jì)數(shù)允許,低電平時(shí)計(jì)數(shù)禁止。計(jì)數(shù)器模塊用于對(duì)輸入信號(hào)的脈沖進(jìn)行計(jì)數(shù),該模塊必須有計(jì)數(shù)允許、異步清零等端口,以便于控制模塊對(duì)其進(jìn)行控制。(2)源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT (CLK:IN STD_LOGIC; -計(jì)數(shù)時(shí)鐘信號(hào) CLR:IN STD_LOGIC; -清零信

17、號(hào) ENA:IN STD_LOGIC; -計(jì)數(shù)使能信號(hào) CQ :OUT INTEGER RANGE 0 TO 15;-4位計(jì)數(shù)結(jié)果輸出 CARRY_OUT:OUT STD_LOGIC); -計(jì)數(shù)進(jìn)位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; -計(jì)數(shù)器異步清零 ELSIF CLK'EVENT AND CLK= '1' THEN IF

18、 ENA= '1' THEN IF CQI=10 THEN cqi<=1; ELSE CQI<=cqi+1;END IF; -等于9,則計(jì)數(shù)器清零 END IF; END IF; END PROCESS;PROCESS (CQI) IS BEGIN IF CQI=10 THEN CARRY_OUT<= '1' -進(jìn)位輸出 ELSE CARRY_OUT<= '0' END IF;END PROCESS; CQ<=CQI;END ART;(3)仿真波形 6.顯示模塊(1) 功能簡(jiǎn)介L(zhǎng)ED有段碼和位碼之分,所謂段碼就是讓LED顯示出八位數(shù)據(jù),一般情況下要通過(guò)一個(gè)譯碼電路,將輸入的4位2進(jìn)制數(shù)轉(zhuǎn)換為與LED顯示對(duì)應(yīng)的8位段碼。位碼也就是LED的顯示使能端,對(duì)于共陰級(jí)的LED而言,低電平使能,在本設(shè)計(jì)中設(shè)計(jì)了一個(gè)3位的循環(huán)計(jì)數(shù)器,將計(jì)數(shù)結(jié)果輸入到譯碼器,譯碼結(jié)果輸出即可依次使能每個(gè)LED。例如:要讓8個(gè)LED同時(shí)工作顯示數(shù)據(jù),就是要

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論