基于FPGA數(shù)字式相位差計(jì)設(shè)計(jì)報(bào)告_第1頁
基于FPGA數(shù)字式相位差計(jì)設(shè)計(jì)報(bào)告_第2頁
基于FPGA數(shù)字式相位差計(jì)設(shè)計(jì)報(bào)告_第3頁
基于FPGA數(shù)字式相位差計(jì)設(shè)計(jì)報(bào)告_第4頁
基于FPGA數(shù)字式相位差計(jì)設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于fpga的數(shù)字式相位差計(jì)設(shè)計(jì)報(bào)告題目名稱:基于fpga的數(shù)字式相位差設(shè)計(jì) 目 錄 1設(shè)計(jì)任務(wù)及內(nèi)容32設(shè)計(jì)方案42.1信號(hào)產(chǎn)生及計(jì)數(shù)時(shí)序控制電路模塊42.2待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊52.3鎖存與譯碼顯示控制電路模塊53系統(tǒng)硬件設(shè)計(jì)53.1 fpga硬件連接電路圖53.2單片機(jī)硬件連接電路圖63.3數(shù)碼顯示硬件連接電路圖64系統(tǒng)軟件設(shè)計(jì)74.1信號(hào)產(chǎn)生及時(shí)序控制電路:74.2待測(cè)信號(hào)計(jì)數(shù)電路74.3待測(cè)信號(hào)譯碼顯示電路84.4系統(tǒng)頂級(jí)電路圖95系統(tǒng)調(diào)試95.1信號(hào)產(chǎn)生及計(jì)數(shù)時(shí)序控制電路模塊的仿真95.2待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊的仿真105.2.1十進(jìn)制加法計(jì)數(shù)器的仿真105.2.2待測(cè)信號(hào)脈

2、沖計(jì)數(shù)器的仿真105.3鎖存與譯碼顯示控制電路模塊的仿真105.3.1譯碼顯示電路的仿真105.3.2鎖存與譯碼顯示控制電路的仿真115.4數(shù)字式相位差計(jì)整個(gè)系統(tǒng)的仿真116課程設(shè)計(jì)總結(jié)11參考文獻(xiàn)121設(shè)計(jì)任務(wù)及內(nèi)容相位差的測(cè)量在研究網(wǎng)絡(luò)特性中具有重要作用,如何快速、精確地測(cè)量相位差已成為生產(chǎn)科研中的重要課題。本文介紹了利用fpga技術(shù)設(shè)計(jì)的數(shù)字式相位差計(jì)。通過對(duì)相位差測(cè)量原理的研究和各種測(cè)量方法的比較,發(fā)現(xiàn)利用fpga設(shè)計(jì)的數(shù)字式相位差計(jì)操作簡單,可讀性強(qiáng),讀者可直接讀出待測(cè)信號(hào)的相位差。首先介紹了各種相位差測(cè)量的原理及其基本方法,然后詳細(xì)介紹了以eda技術(shù)為基礎(chǔ)來設(shè)計(jì)數(shù)字式相位差計(jì),分別

3、通過vhdl語言和原理圖兩種方式來實(shí)現(xiàn)數(shù)字式相位差測(cè)量,最后通過仿真表面該設(shè)計(jì)簡單可行、精確度高、有實(shí)際的應(yīng)用價(jià)值。 數(shù)字式相位差計(jì)又稱電子計(jì)數(shù)式相位差計(jì),這種方法就是應(yīng)用電子計(jì)數(shù)器來測(cè)量周期t和兩同頻正弦波過零點(diǎn)時(shí)間差t,依式(2)換算為相位差。對(duì)照?qǐng)D所示波形圖,講述該法的基本原理。圖中u1、u2為兩個(gè)同頻但具有一定相位差的正弦信號(hào);uc、ud分別為u1、u2經(jīng)各自的脈沖形成電路輸出的尖脈沖信號(hào),兩路尖脈沖都出現(xiàn)于正弦波電壓從負(fù)到正過零點(diǎn)的瞬時(shí);ue為uc尖脈沖信號(hào)經(jīng)觸發(fā)電路形成寬度等于待測(cè)兩信號(hào)周期t的閘門信號(hào),用它來控制時(shí)間閘門;uf為標(biāo)準(zhǔn)頻率脈沖(晶振輸出經(jīng)整形形成的窄脈沖,頻率為fc

4、)在閘門時(shí)間控制信號(hào)ue控制下通過閘門加于計(jì)數(shù)器計(jì)數(shù)的脈沖,設(shè)計(jì)數(shù)值為n;uq為用uc、ud去觸發(fā)一個(gè)雙穩(wěn)態(tài)多諧振蕩器形成的反映u1、u2過零點(diǎn)時(shí)間寬度為t的另一個(gè)閘門信號(hào);uk為標(biāo)準(zhǔn)頻率脈沖(頻率為fc)在閘門時(shí)間信號(hào)控制下通過另一個(gè)閘門加于另一計(jì)數(shù)器計(jì)數(shù)的脈沖,設(shè)計(jì)數(shù)值為n。圖1.1 數(shù)字式相位差計(jì)原理波形圖由圖所示波形圖可見: (1) 將式(1)代入式并將結(jié)果代入式(由模擬式直讀相位計(jì)得),得被測(cè)兩信號(hào)相位差: (2) 以上講述的數(shù)字式相位差計(jì)原理在理論上是可行的,但具體電路實(shí)現(xiàn)構(gòu)成儀器是復(fù)雜的,操作是不方便的。因?yàn)樗枰獌蓚€(gè)閘門時(shí)間形成電路,兩個(gè)計(jì)數(shù)顯示電路,同時(shí),在讀得n與n之后還要

5、經(jīng)式(2)換算為相位差,不能直讀。因此,還要用到單片機(jī)來進(jìn)行此換算,因此本設(shè)計(jì)要用到eda和單片機(jī)這兩門學(xué)科的知識(shí)。2設(shè)計(jì)方案 通過對(duì)數(shù)字式相位差計(jì)原理的閱讀和理解,可將其大意作如圖2所示電路圖。該系統(tǒng)分別由信號(hào)產(chǎn)生及計(jì)數(shù)時(shí)序控制電路模塊、待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊三部分組成。圖2.1 電子計(jì)數(shù)式相位差電路圖2.1信號(hào)產(chǎn)生及計(jì)數(shù)時(shí)序控制電路模塊信號(hào)產(chǎn)生及計(jì)數(shù)時(shí)序控制電路主要產(chǎn)生待測(cè)信號(hào)的相位差數(shù)值n、計(jì)數(shù)允許信號(hào)en、清零信號(hào)clr和鎖存信號(hào)lock。2.2待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊待測(cè)信號(hào)脈沖計(jì)數(shù)電路是對(duì)前面已經(jīng)整理過的待測(cè)信號(hào)的相位差n進(jìn)行測(cè)量,它由4個(gè)十進(jìn)制加法計(jì)

6、數(shù)器組成,其中en為計(jì)數(shù)選通控制信號(hào),clr為計(jì)數(shù)器清零信號(hào),fin為待測(cè)的相位差數(shù)值n。在計(jì)數(shù)器清零信號(hào)clr清零后,當(dāng)計(jì)數(shù)選通控制信號(hào)en有效時(shí),開始對(duì)整理好的待測(cè)相位差n進(jìn)行計(jì)數(shù)。2.3鎖存與譯碼顯示控制電路模塊鎖存與譯碼顯示控制電路用于實(shí)現(xiàn)記憶顯示,在測(cè)量過程中不刷新新的數(shù)據(jù),直到計(jì)數(shù)過程結(jié)束后,鎖存顯示測(cè)量結(jié)果,并且保存到下一次測(cè)量結(jié)束。鎖存與譯碼顯示電路的功能是對(duì)四位bcd碼進(jìn)行鎖存,并轉(zhuǎn)換為對(duì)應(yīng)的4組七段碼,用于驅(qū)動(dòng)數(shù)碼管。3系統(tǒng)硬件設(shè)計(jì)3.1 fpga硬件連接電路圖完成主要的相位測(cè)量工作,單片機(jī)以串行方式和fpga進(jìn)行通信,發(fā)送頻率字和相位字給fpga,fpga通過計(jì)數(shù),鎖存,

7、譯碼顯示等模塊完成相位發(fā)生功能。 圖3.1 fpga引腳圖3.2單片機(jī)硬件連接電路圖單片機(jī)在系統(tǒng)中主要用于lcd顯示控制,接受fpga送來的數(shù)據(jù),并進(jìn)行處理和轉(zhuǎn)換。 圖3.2 單片機(jī)引腳圖3.3數(shù)碼顯示硬件連接電路圖主要完成顯示功能,將從fpga中接收的數(shù)據(jù)輸送給lcd顯示。圖3.3 數(shù)碼顯示電路引腳圖4系統(tǒng)軟件設(shè)計(jì)4.1信號(hào)產(chǎn)生及時(shí)序控制電路:圖中aa為異或門,被測(cè)兩路信號(hào)clka 和clkb經(jīng)過異或門再經(jīng)過ftctrl分頻電路進(jìn)行2分頻,得到的信號(hào)作為計(jì)數(shù)器的使能信號(hào)。(如圖4.1所示)三路信號(hào)clka、clkb、clkc再經(jīng)過aa1所得到的三路信號(hào)分別為rst_en、load和fin,它

8、們分別作為計(jì)數(shù)器1118的清零端clr、鎖存端lock和時(shí)鐘信號(hào)端clock的輸入信號(hào)。(圖4.1.1為圖4.1的子圖)圖4.1 信號(hào)產(chǎn)生及時(shí)序控制電路圖4.1.1 aa 1內(nèi)部電路4.2待測(cè)信號(hào)計(jì)數(shù)電路 該電路由計(jì)數(shù)器count、鎖存電路和譯碼電路組成。計(jì)數(shù)器可以用來進(jìn)行千位計(jì)數(shù),該計(jì)數(shù)器是由四個(gè)十進(jìn)制計(jì)數(shù)器組合而成的,所以計(jì)數(shù)的時(shí)候最高可以計(jì)數(shù)計(jì)到千位,而我們實(shí)際中通常有兩位就夠了??刂齐娐返男盘?hào)來控制計(jì)數(shù)電路使其計(jì)數(shù)然后再經(jīng)過鎖存和譯碼送到數(shù)碼管。圖4.2 待測(cè)信號(hào)計(jì)數(shù)電路4.3待測(cè)信號(hào)譯碼顯示電路該部分電路由鎖存和譯碼電路兩部分組成。74374完成鎖存功能,它會(huì)將計(jì)數(shù)器計(jì)好的數(shù)據(jù)進(jìn)行鎖

9、存,然后送給74248來進(jìn)行譯碼,最后再送給數(shù)碼管進(jìn)行顯示即可。鎖存與譯碼顯示控制電路用于實(shí)現(xiàn)記憶顯示,在測(cè)量過程中不刷新新的數(shù)據(jù),直到計(jì)數(shù)過程結(jié)束后,鎖存顯示測(cè)量結(jié)果,并且保存到下一次測(cè)量結(jié)束。鎖存與譯碼顯示電路的功能是對(duì)四位bcd碼進(jìn)行鎖存,并轉(zhuǎn)換為對(duì)應(yīng)的4組七段碼,用于驅(qū)動(dòng)數(shù)碼管。圖4.3 待測(cè)信號(hào)譯碼顯示電路4.4系統(tǒng)頂級(jí)電路圖 該電路即為設(shè)計(jì)頂層電路,它可以把n和n的數(shù)值計(jì)算出來,其中n_h16.0 n_l16.0 n_h6.0 n_l6.0為n的數(shù)值,同樣,h16.0 l16.0 h6.0 l6.0為n的數(shù)值。與七段數(shù)碼管相連即可看到顯示的n和n的數(shù)值。圖4.4 系統(tǒng)頂級(jí)電路圖5系

10、統(tǒng)調(diào)試 5.1信號(hào)產(chǎn)生及計(jì)數(shù)時(shí)序控制電路模塊的仿真圖5.15.2待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊的仿真5.2.1十進(jìn)制加法計(jì)數(shù)器的仿真圖5.2.15.2.2待測(cè)信號(hào)脈沖計(jì)數(shù)器的仿真圖5.2.25.3鎖存與譯碼顯示控制電路模塊的仿真5.3.1譯碼顯示電路的仿真圖5.3.15.3.2鎖存與譯碼顯示控制電路的仿真圖5.3.25.4數(shù)字式相位差計(jì)整個(gè)系統(tǒng)的仿真圖5.46課程設(shè)計(jì)總結(jié)經(jīng)過這段時(shí)間的努力,基本完成了此次設(shè)計(jì)。本設(shè)計(jì)通過對(duì)平均值相位差計(jì)原理的分析和程序設(shè)計(jì)、仿真,用fpga芯片實(shí)現(xiàn)了一個(gè)高精度、寬頻率范圍的相位差計(jì)。從測(cè)量數(shù)據(jù)可以看出,基于fpga的數(shù)字式相位差計(jì)的所有控制和功能正常,測(cè)試的數(shù)據(jù)基本

11、符合設(shè)計(jì)的目標(biāo),結(jié)合理論、仿真結(jié)果、測(cè)量數(shù)據(jù)結(jié)果可以看出從理論的角度來看還是存在一定的誤差,主要是有以下幾個(gè)方面造成的:1.在仿真時(shí)由于數(shù)據(jù)的原因標(biāo)準(zhǔn)頻率并不等于信號(hào)頻率的某一值,而是約等于,這其中有一定的誤差。2.在做仿真圖時(shí)對(duì)信號(hào)的起點(diǎn)、終點(diǎn)有可能把握不是很準(zhǔn)確,這也有可能造成誤差。3.仿真軟件存在著一定的時(shí)間差,造成計(jì)數(shù)有一定的誤差。由于該設(shè)計(jì)原理簡單,操作性強(qiáng),可直接讀數(shù),因此在實(shí)際應(yīng)用中很普遍。參考文獻(xiàn)1 張永瑞,劉振起等:電子測(cè)量技術(shù)基礎(chǔ),西安電子科技大學(xué)出版社,1994.122 潘松,黃繼業(yè)編著:eda技術(shù)實(shí)用教程,科學(xué)出版社,2002.103 閻石主編:數(shù)字電子技術(shù)基礎(chǔ),高等教

12、育出版社,1998.124 曹昕燕,周鳳臣等編著:eda技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì),清華大學(xué)出版社,2006.055 王彥朋等編:大學(xué)生電子設(shè)計(jì)與應(yīng)用,中國電力出版社,2007.036 何書森,何華斌編著:電子電路設(shè)計(jì)速成實(shí)用手冊(cè),2006.117 王道憲主編:vhdl電路設(shè)計(jì)技術(shù),國防工業(yè)出版社,2004.018 雷伏容編著:vhdl電路設(shè)計(jì),清華大學(xué)出版社,2006.079 華清遠(yuǎn)見嵌入式培訓(xùn)中心:fpga應(yīng)用開發(fā)入門與典型實(shí)例,工業(yè)出版社10 王傳新主編:fpga設(shè)計(jì)基礎(chǔ),工業(yè)出版社,2007.0911 羅朝霞:cpld/fpga設(shè)計(jì)及應(yīng)用,工業(yè)出版社,2007.0712 韓廣興:電子元器件與實(shí)

13、用電路基礎(chǔ),電子工業(yè)出版社,2008.1013 孟慶海,張洲:vhdl基礎(chǔ)及開發(fā)實(shí)例,西安交通大學(xué)出版社,2008.04 附錄1.系統(tǒng)硬件原理圖:2.程序代碼:2.1電路模塊vhdl源程序library ieee; -時(shí)序控制use ieee.std_logic_1164.all;entity aa1 is port (clka, clkb, clkc: in std_logic; fin, rst_en, and load: out std_logic);end aa1;architecture struc of aa1 iscomponent aa -或門 port (a123, b123

14、: in std_logic; c: out std_logic);end component;component ftctrl -分頻 port (clkk: in std_logic; cnt_en: out std_logic);end component;component ftctrl1 -清零,鎖存 port (clkk: in std_logic; rst_en1: out std_logic; load1: out std_logic);end component;component aa2 -與門 port (fin1, clkk1: in std_logic; fin2:

15、out std_logic);end component;signal q, w: std_logic;begin u1: aa port map (a123=>clka, b123=>clkb, c=>q); u2: ftctrl port map (clkk=>q,cnt_en=>w); u3:aa2 port map (clkk1=>clkc, fin1=>w, fin2=>fin); u4:ftctrl1 port map (clkk=>q, rst_en1=>rst_en, load1=>load);end struc

16、;2.2待測(cè)信號(hào)異或門模塊的vhdl源程序library ieee; -或門use ieee.std_logic_1164.all;entity aa is port (a123, b123: in std_logic; c :out std_logic);end entity aa;architecture one of aa is begin c<=a123 xor b123;end architecture one;library ieee; -分頻use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity

17、ftctrl is port (clkk: in std_logic; cnt_en: out std_logic);end ftctrl;architecture behav of ftctrl issignal div2clk:std_logic;begin process (clkk) begin if clkk'event and clkk='0' then div2clk<= not div2clk; end if; end process; process (clkk, div2clk) begin if clkk='1' and di

18、v2clk='1' then cnt_en<= not clkk; else cnt_en<= clkk; end if; end process;end behav;library ieee; -清零,鎖存use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ftctrl1 is port (clkk: in std_logic; rst_en1: out std_logic; load1:out std_logic) ;end ftctrl1;architecture behav o

19、f ftctrl1 issignal div2clk:std_logic;begin process (clkk) begin if clkk'event and clkk ='1' then div2clk <= not div2clk; end if; end process; process (clkk, div2clk) begin if clkk='0' and div2clk='1' then load1<='1' else load1<='0' end if; end pro

20、cess; process (clkk, div2clk) begin if clkk='0' and div2clk='0' then rst_en1<='1' else rst_en1<=0; end if; end process;end behav;library ieee; -與門use ieee.std_logic_1164.all;entity aa2 is port (fin1, clkk1: in std_logic; fin2: out std_logic);end entity aa2;architecture

21、one of aa2 is begin fin2<=fin1 and clkk1;end architecture one;2.3十進(jìn)制加法計(jì)數(shù)器的vhdl源程序library ieee; -十進(jìn)制加法計(jì)數(shù)use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cb10 is port (clk, en, clr: in std_logic; count10: buffer std_logic_vector (3 downto 0);end cb10;architecture art of cb10 is be

22、gin process (clk,clr,en) begin if clr='1' then count10<="0000" elsif rising_edge (clk) then if (en='1') then if count10="1001" then count10<="0000" else count10<=count10+'1' end if; end if; end if; end process;end art;2.4允許計(jì)數(shù)控制電路模塊的vhdl源

23、程序library ieee; -允許計(jì)數(shù)控制電路 use ieee.std_logic_1164.all;entity bb1 is port (clka, clkb: in std_logic; fin: out std_logic);end bb1;architecture struc of bb1 iscomponent aa port (a123, b123: in std_logic; c: out std_logic);end component;component ftctrl port (clkk: in std_logic; cnt_en: out std_logic);e

24、nd component;signal q: std_logic;begin u1: aa port map (a123=>clka,b123=>clkb , c=>q); u2: ftctrl port map (clkk=>q,cnt_en=>fin);end struc;2.5待測(cè)信號(hào)脈沖計(jì)數(shù)器的vhdl源程序library ieee; -百進(jìn)制計(jì)數(shù)use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count is port (clk, en, clr: in std_log

25、ic; qa1, qb1, qc1, qd1: buffer std_logic_vector (3 downto 0);end;architecture art of count is component cb10 port (clk, en, clr: in std_logic; count10: buffer std_logic_vector (3 downto 0);end component;signal clk2, clk3, clk4:std_logic;begin clk2<=not qa1(3); clk3<=not qb1(3); clk4<=not qc

26、1(3); u1:cb10 port map (clk, en, clr, qa1); u2:cb10 port map (clk2, en, clr, qb1); u3:cb10 port map (clk3, en, clr, qc1); u4:cb10 port map (clk4, en, clr, qd1);end art;2.6譯碼顯示電路的vhdl源程序library ieee; -譯碼顯示電路use ieee.std_logic_1164.all;entity bcd7 is port (bcd: in std_logic_vector (3 downto 0); led: o

27、ut std_logic_vector (6 downto 0);end;architecture art of bcd7 is begin led<="0111111" when bcd="0000" else "0000110" when bcd="0001" else "1011011" when bcd="0010" else "1001111" when bcd="0011" else "1100110&quo

28、t; when bcd="0100" else "1101101" when bcd="0101" else "1111101" when bcd="0110" else "0000111" when bcd="0111" else "1111111" when bcd="1000" else "1101111" when bcd="1001" else "00000

29、00"end art;2.7鎖存與譯碼顯示控制電路模塊的vhdl源程序library ieee; -鎖存與譯碼控制電路use ieee.std_logic_1164.all;entity lock is port (lock: in std_logic; qa, qb, qc, qd: in std_logic_vector(3 downto 0); leda, ledb, ledc, ledd: out std_logic_vector(6 downto 0);end;architecture art of lock issignal qal, qbl, qcl, qdl: std

30、_logic_vector(3 downto 0);component bcd7 port (bcd: in std_logic_vector (3 downto 0); led: out std_logic_vector (6 downto 0);end component;begin process (lock) begin if(lock'event and lock='1')then qal<=qa; qbl<=qb; qcl<=qc; qdl<=qd; end if; end process;u1:bcd7 port map (qal, leda);u2:bcd7 port map (qbl, ledb);u3:bcd7 port map (qcl, ledc);u4:bcd7 port map (qdl, ledd);end art; 2.8頂層電路的vhdl源程序library ieee; -頂層電路use ieee.std_logic_1164.all;entity pinl is port (clk1, clk2, clk3: in std_lo

溫馨提示

  • 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. 人人文庫網(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)論