課程設(shè)計報告基于EDA的數(shù)字式移相信號發(fā)生器_第1頁
課程設(shè)計報告基于EDA的數(shù)字式移相信號發(fā)生器_第2頁
課程設(shè)計報告基于EDA的數(shù)字式移相信號發(fā)生器_第3頁
課程設(shè)計報告基于EDA的數(shù)字式移相信號發(fā)生器_第4頁
課程設(shè)計報告基于EDA的數(shù)字式移相信號發(fā)生器_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字式移相信號發(fā)生器數(shù)字式移相信號發(fā)生器課程設(shè)計報告課程設(shè)計報告 系系 別:別: 專業(yè)班級:專業(yè)班級: 學生姓名:學生姓名: 學生學號:學生學號: 指導教師:指導教師: (課程設(shè)計時間:2011 年 1 月 4 日2011 年 1 月 22 日)前 言 eda 技術(shù)是一門涉及多學科的綜合性技術(shù),是以大規(guī)模邏輯器件為設(shè)計載體,以硬件描述語言為系統(tǒng)邏輯表達的主要方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具通過有關(guān)的開發(fā)軟件,自動完成用軟件方式設(shè)計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、化簡、分割、綜合、優(yōu)化、布局布線及仿真,直至對特定目標芯片的適配編譯、邏輯映射、編程下載等工作,

2、最終形成集成電子系統(tǒng)或?qū)I(yè)集成芯片的一門新技術(shù)。本次課程設(shè)計中我們基于 eda 技術(shù),運用 vhdl 編制程序,完成數(shù)字式移相頻率計的程序編輯,最終下載到 acex1k 系列 epf1k50lc208-3 芯片上,加以簡單的外圍電路,構(gòu)成數(shù)字移相信號發(fā)生器。該裝置能測出頻率在 20hz-2000khz之間的正弦波信號頻率,并給出指定相位差的兩路同頻信號。- 1 -目目 錄錄1.課程設(shè)計目的 12.題目描述及要求23.課程設(shè)計報告內(nèi)容 23.1 系統(tǒng)框圖 23.2 系統(tǒng)各組成部分介紹33.2.1 數(shù)字移相及信號產(chǎn)生模塊33.2.2 數(shù)字頻率計模塊73.2.3 顯示模塊133.3 系統(tǒng)完整介紹15

3、3.4 引腳分配164.總結(jié)17參考文獻19- 2 -1 1 課程設(shè)計目的課程設(shè)計目的(1)進一步加深對 eda 技術(shù)的基本知識的理解,提高 vhdl 編程仿真程序的運用能力。(2)培養(yǎng)根據(jù)課題需要查找參考書籍和文獻資料,并學習運用的的能力,從而更好的培養(yǎng)了自學能力和獨立思考問題和解決問題的能力。 (3)培養(yǎng)硬件設(shè)計、軟件設(shè)計及系統(tǒng)軟、硬件調(diào)試的基本思路、方法和技巧,并能熟練使用當前較流行的一些有關(guān)電路設(shè)計與分析方面的軟件和硬件。 (4)培養(yǎng)嚴肅認真的工作作風和科學態(tài)度,逐步建立正確的生產(chǎn)觀念、工程觀念和全局觀點。2 2 題目描述及要求題目描述及要求設(shè)計題目:數(shù)字式移相信號發(fā)生器設(shè)計要求:(1

4、)被測正弦信號頻率范圍:20hz2000khz; (2)正弦信號頻率皆采用 bcd 碼計數(shù)方式;具有正弦信號頻率測量及數(shù)字顯示功能; (3)能夠輸出給定相位差的兩路同頻,相位測量絕對誤差2。3.3. 課程設(shè)計報告內(nèi)容課程設(shè)計報告內(nèi)容3.1 系統(tǒng)框圖系統(tǒng)整體框圖如下圖 3-1 所示: 正弦信號 q1 正弦信號 q2 時鐘輸入信號 移相信號 同頻方波. 1hz 時鐘信號 圖 3-1 數(shù)字式移相頻率計的系統(tǒng)框圖 數(shù)字式移相頻率計的系統(tǒng)框圖如圖 3-1 所示,通過一給定頻率的時鐘輸入信號,使數(shù)字移相模塊(fpga)產(chǎn)生正弦信號 q1,同時產(chǎn)生與 q1 同頻的方波信號送給數(shù)字頻率計模塊,測出方波頻率再通

5、過顯示模塊譯碼后,逐一送 8 個led 顯示。同時通過鍵盤輸入二進制的移相信號給數(shù)字移相模塊,來輸出與正數(shù)字移相模塊數(shù)字頻率計模塊 顯示模塊- 3 -弦信號 q1 有指定相位差的同頻正弦信號 q2。3.2 系統(tǒng)各組成部分介紹3.2.1 數(shù)字移相及信號產(chǎn)生模塊該模塊的作用是產(chǎn)生兩路指定相位差的同頻信號,同時輸出與之頻率相同的正弦信號。先對正弦信號進行一周期 64 點的采樣,再把采樣正弦波幅值送到兩個 frpg 的 rom 中。通過時鐘輸入信號是指針信號在“000000”到“111111”進行加 1 循環(huán)計數(shù),從而對一個 rom 的值逐一讀取。另一個 rom中指針的值,則是在這個指針信號值的基礎(chǔ)上

6、加相位偏移量 din。這樣就達到了輸出兩路相位差的同頻信號。因為對正弦信號進行 64 點采樣,則每相鄰兩點之間相位差為360/64=5.625,所有本移相信號發(fā)生器的最小精度為 5.625。 (1)數(shù)字移相及信號產(chǎn)生模塊程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity yx2 is port(clk:in std_logic; din:in std_logic_vector(5 downto 0); dout,yxdout:

7、 out std_logic_vector(7 downto 0); fsout:out std_logic);end entity yx2;architecture art of yx2 is signal q1,q2: std_logic_vector(5 downto 0); signal q3,a1,a2: std_logic_vector(6 downto 0);begina2=0& din; process(clk) is beginif clkevent and clk=1then if q1111111 then q1=q1+1; else q1=000000;end if;e

8、nd if;- 4 -end process;process(q1) is begina1=0& q1;q3=a1+a2;q2=q3(5 downto 0); if q1100000 then fsout=1; else fsoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout

9、doutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutnull;end case;end process;process(q2) is begin case q2 iswhen 000000=yxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxd

10、outyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutyxdoutnull;end case;end process;- 7 -end architecture art;(2)波形仿真控制模塊運行波形仿真圖如圖 3-

11、2 所示,移相信號 din 為 2,則圖中輸出倆正弦波 dout 與 yxdout 的相位差正好是 2,而輸出方波信號 fsout 正好在dout 為 0 時發(fā)生翻轉(zhuǎn),從而使 fsout 與 dout 同頻。圖 3-2 數(shù)字移相及信號產(chǎn)生模塊運行波形仿真圖3.2.2 數(shù)字頻率計模塊 8 位數(shù)字頻率計的原理框圖如下圖 3-3 所示: 輸入方波信號 tsten 待顯示頻率信號 1hz 信號 clr_cnt load圖 3-3 8 位數(shù)字頻率計的原理框圖 該數(shù)字頻率計通過 1hz 標準信號,使控制模塊控制計數(shù)器在 1s 內(nèi)對輸入方波進行計數(shù),從而測出其頻率,送到鎖存模塊鎖存。(1)系統(tǒng)個組成部分控制

12、模塊控制模塊是產(chǎn)生測量所需的各種控制,如圖 3-4 所示,clk 為 1hz 的標準時鐘信號;tsten 為使能信號,當 clk 上升沿時,發(fā)生翻轉(zhuǎn),若為高電平,計數(shù)器開始計數(shù);load 為鎖存信號,其值是 tsten 的反向信號,真好當 tsten 變?yōu)?0,一次計數(shù)完成時,它就變?yōu)楦唠娖?,把計?shù)器的值鎖存;clr_cnt 為置位信號,當 clkt、sten 都為低電平時,對計數(shù)器進行置位清零,好 1 進行下一輪計數(shù)。通過圖 2-4 可看出,在時鐘信號的兩個周期內(nèi),完成一個計數(shù)周期(2s) ,一次計數(shù)的時間為 1s。在一個計數(shù)周期內(nèi),對待測信號的上升沿進行計數(shù),正好是待測信號的頻率??刂颇K

13、計數(shù)模塊鎖存模塊- 8 -clk tstenloadclr_cnt 圖 3-4 控制信號時序關(guān)系控制模塊程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testctl is port(clk: in std_logic; tsten: out std_logic; clr_cnt: out std_logic; load :out std_logic);end entity testctl;architecture art of testctl issignal div2clk

14、:std_logic;begin process(clk) isbegin if clkevent and clk=1 then div2clk= not div2clk; end if; end process;process(clk,div2clk) is- 9 -beginif clk=0 and div2clk=0 then clr_cnt=1; else clr_cnt=0; end if;end process;load= not div2clk;tsten= div2clk;end architecture art; 波形仿真圖如下圖 3-5 所示: 3-5 控制模塊運行波形仿真

15、圖 控制模塊通過仿真顯示的波形圖正好與圖 2-4 的控制信號時序關(guān)系圖吻合,符合要求。計數(shù)模塊計數(shù)器模塊是由 8 個帶有異步清零端,進位信號輸出的 10 進制計數(shù)模塊級連而成,計數(shù)器以待測信號 fsin 作為時鐘,在清零信號 clr 到來時,異步清零;clk 為高電平時開始計數(shù)。該計數(shù)器計數(shù)范圍為 0 到 99999999。計數(shù)模塊程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(clk:in std_logic; clr: in std_logic;

16、 ena: in std_logic; cq: out std_logic_vector(3 downto 0); carry_out: out std_logic);end entity cnt10;architecture art of cnt10 is- 10 -signal cqi: std_logic_vector(3 downto 0);beginprocess(clk,clr,ena) isbeginif clr=1 then cqi=0000;elsif clkevent and clk=1then if ena=1 then if cqi1001 then cqi=cqi+0

17、001;carry_out=0; else cqi=0000; carry_out=1; end if; end if;end if;end process; cq=cqi;end architecture art;波形仿真如下圖 3-6 所示:圖 3-6 十進制計數(shù)運行波形仿真圖單個十進制計數(shù)器仿真波形如圖 5-6 所示,當使能信號為高電平是開始計數(shù),計數(shù)到 9,在下一個時鐘上升沿來臨時,計數(shù)值變?yōu)?0,同時進位信號carry_out 產(chǎn)生一個上升沿,使高位計數(shù)器計數(shù)一次。鎖存模塊設(shè)置鎖存器的作用在于,使顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。若已有 32 位 bcd 碼存在于此

18、模塊的輸入口,在信號 load 的上升沿后即被鎖存到寄存器 reg32b 的內(nèi)部,并由 reg32b 的輸出端輸出,然后由實驗板上的 7 段譯碼器譯成能在數(shù)碼管上顯示輸出的相對應(yīng)的數(shù)值。鎖存模塊程序:library ieee;- 11 -use ieee.std_logic_1164.all;entity reg32b isport(load: in std_logic; din: in std_logic_vector(31 downto 0);dout: out std_logic_vector(31 downto 0 );end entity reg32b;architecture ar

19、t of reg32b isbegin process(load,din) isbegin if load event and load=1 then doutclk,tsten=se,clr_cnt=sc,load=sl);u1:cnt10 port map(clk=fsin,clr=sc,ena=se,cq=sd(3 downto 0),carry_out=s1);u2:cnt10 port map(clk=s1,clr=sc,ena=se,cq=sd(7 downto 4),carry_out=s2);u3:cnt10 port map(s2,sc,se,sd(11 downto 8),

20、s3);u4:cnt10 port map(s3,sc,se,sd(15 downto 12),s4);u5:cnt10 port map(s4,sc,se,sd(19 downto 16),s5);u6:cnt10 port map(s5,sc,se,sd(23 downto 20),s6);u7:cnt10 port map(s6,sc,se,sd(27 downto 24),s7);u8:cnt10 port map(s7,sc,se,sd(31 downto 28),s8);u9:reg32b port map(load=sl,din=sd(31 downto 0),dout=dout

21、 );end architecture art;- 13 - 波形仿真 數(shù)字頻率計仿真波形如圖 3-8 所示:圖 3-8 數(shù)字頻率計波形仿真圖 待測信號 fsin 周期為 20ms,即 50hz,通過仿真波形可看出,數(shù)字頻率計測出其頻率也 50hz。 數(shù)字頻率計原理圖 數(shù)字頻率計的原理圖如圖 3-9 所示,她是數(shù)字頻率計頂層程序的另一種表示。圖 3-9 數(shù)字頻率計原理圖3.2.3 顯示模塊本文采用 8 個共陰極數(shù)碼管來顯示待測頻率的數(shù)值,其顯示范圍從 0 99999999。(1)顯示模塊程序library ieee;use ieee.std_logic_1164.all;use ieee.st

22、d_logic_unsigned.all;- 14 -entity display isport(in32:in std_logic_vector(31 downto 0);lout7:out std_logic_vector(6 downto 0);sel:out std_logic_vector(2 downto 0);clk:in std_logic);end display;architecture art of display issignal q:std_logic_vector(2 downto 0);signal lout4:std_logic_vector(3 downto

23、0);beginprocess (clk)beginif (clkevent and clk=1)thenif (q=111) then q=000;else q=q+1; end if;end if;sellout4lout4lout4lout4lout4lout4lout4lout4lout4lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7=0000000;end case;end process;end architecture art; (2)波形仿真 顯示模塊仿真波形如圖 3-10 所示: 圖 3-10 顯示模塊

24、運行波形仿真圖 輸入頻率為 8 位 bcd 碼,lout7 為晶體管段選信號。信號 sel 則選擇將lout7送入哪一個晶體管,從而實現(xiàn)將輸入的 8 為 bcd 頻率信號逐一送入對于的晶體管顯示。3.3 系統(tǒng)完整介紹(1)系統(tǒng)原理圖 系統(tǒng)的原圖見圖 3-11,這里通過原理圖的方式將各個模塊連接起來,讓其組成數(shù)字式移相信號發(fā)生器的總程序。 (2)仿真波形系統(tǒng)總的仿真波形見圖 3-12,給時鐘信號 input 的周期為 2ms,由此產(chǎn)生兩路同頻正弦信號 q1,、q2,其頻率為 500/648hz,在 sel 進行逐次加 1 選擇- 16 -晶體管時,lout7 依次輸出 7f、3f、3f、3f、3

25、f、3f、3f、3f,晶體管將顯示00000008。又由于鍵盤輸入相位差為“04”則 q1、q2 的相位差為45.62522.5。圖 3-11 數(shù)字式移相頻率計原理圖圖 3-12 數(shù)字式移相頻率計運行波形仿真圖3.4 引腳分配引腳分配如表 3-1 所示,input 接任意頻率,來決定產(chǎn)生正弦波的頻率;clk1 接 1hz 方波時鐘信號;clk 接 7812hz 輸入頻率,作為顯示模塊的時鐘輸入;jp5.0分別接 k5 到 k0 六個撥碼開關(guān);lout76.0接到 8 個 led 的七段顯示;sel2.0接 138 譯碼器,通過譯碼對 8 個 led 進行片選輸出;q17.0和- 17 -q27

26、.0接兩個 d/a 轉(zhuǎn)換的輸入端,使這兩路正弦信號由數(shù)字量轉(zhuǎn)變?yōu)槟M量,從而能在示波器上顯示兩路正弦信號。表 3-1 系統(tǒng)引腳分配信號名稱信號名稱fpga i/o 名稱名稱信號名稱信號名稱fpga i/o 名稱名稱inputpin_118lout76pin_17jp0pin_111q10pin_38jp1pin_112q11pin_39jp2pin_113q12pin_40jp3pin_114q13pin_41jp4pin_115q14pin_44jp5pin_116q15pin_45clkpin_119q16pin_46clk1pin_125q17pin_47sel0pin_101q20pi

27、n_26sel1pin_102q21pin_27sel2pin_107q22pin_28lout70pin_114q23pin_29lout71pin_8q24pin_30lout72pin_9q25pin_31lout73pin_10q26pin_36lout74pin_12q27pin_37lout75pin_134.4. 總結(jié)總結(jié)經(jīng)過這次數(shù)字式移相頻率計的課程設(shè)計,首先讓我對 max+plus ii 這一軟件的使用從熟悉到能熟練使用,對運用 eda 技術(shù)解決一些實際問題有了更進一步的了解。同時在掌握 vhdl語言的基礎(chǔ)上,培養(yǎng)了我對資料的查閱、理解的能力,獨立思考問題、解決問題的能力也得到了很大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論