版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
直接數(shù)字頻率合成器的第一頁,共三十四頁,編輯于2023年,星期三11.1系統(tǒng)設(shè)計要求1971年,美國學(xué)者J.Tierncy、C.M.Reader和B.Gold提出了以全數(shù)字技術(shù)從相位概念出發(fā)直接合成所需波形的一種新的頻率合成原理。隨著技術(shù)和水平的提高,一種新的頻率合成技術(shù)——直接數(shù)字頻率合成(DDS,DirectDigtalSynthesis)技術(shù)得到了飛速發(fā)展。第二頁,共三十四頁,編輯于2023年,星期三
DDS技術(shù)是一種把一系列數(shù)字形式的信號通過DAC轉(zhuǎn)換成模擬形式的信號合成技術(shù),目前使用最廣泛的一種DDS方式是利用高速存儲器作查找表,然后通過高速DAC輸出已經(jīng)用數(shù)字形式存入的正弦波。第三頁,共三十四頁,編輯于2023年,星期三
DDS技術(shù)具有頻率切換時間短(<20ns),頻率分辨率高(0.01Hz),頻率穩(wěn)定度高,輸出信號的頻率和相位可以快速程控切換,輸出相位可連續(xù),可編程以及靈活性大等優(yōu)點,它以有別于其他頻率合成方法的優(yōu)越性能和特點成為現(xiàn)代頻率合成技術(shù)中的姣姣者。DDS廣泛用于接受機本振、信號發(fā)生器、儀器、通信系統(tǒng)、雷達(dá)系統(tǒng)等,尤其適合跳頻無線通信系統(tǒng)。
第四頁,共三十四頁,編輯于2023年,星期三11.2系統(tǒng)設(shè)計方案
11.2.1DDS的工作原理圖11.1是DDS的基本原理圖,頻率控制字M和相位控制字分別控制DDS輸出正(余)弦波的頻率和相位。DDS系統(tǒng)的核心是相位累加器,它由一個累加器和一個N位相位寄存器組成。每來一個時鐘脈沖,相位寄存器以步長M增加。第五頁,共三十四頁,編輯于2023年,星期三圖11.1DDS基本原理圖設(shè)正弦查找表ROM的地址數(shù)為,頻率控制字為M,輸入信號頻率為(周期:),輸出信號頻率為(周期:)。依據(jù)上述電路,ROM得到的實際地址數(shù)為,輸出信號的周期為:,即:,因而,輸出信號的頻率為:
第六頁,共三十四頁,編輯于2023年,星期三
11.2.2DDS的FPGA實現(xiàn)設(shè)計根據(jù)圖11.1,并假定相位控制字為0,這時DDS的核心部分相位累加器的FPGA的設(shè)計可分為如下幾個模塊:相位累加器adder32b、相位寄存器reg32b、相位調(diào)制器adder10b、同步寄存器reg10b、正弦查找表sin_rom,其內(nèi)部組成框圖如圖11.2所示。圖中,輸入信號有時鐘輸入CLK,頻率控制字FWORD,相位控制字PWORD,輸出信號為FOUT。第七頁,共三十四頁,編輯于2023年,星期三圖11.2DDS內(nèi)部組成框圖第八頁,共三十四頁,編輯于2023年,星期三首先利用MATLAB或C語言編程對正弦函數(shù)進(jìn)行采樣;然后對采樣數(shù)據(jù)進(jìn)行二進(jìn)制轉(zhuǎn)換,其結(jié)果作為查找表地址的數(shù)值。用MATLAB語言編寫的正弦函數(shù)數(shù)據(jù)采集程序如下:第九頁,共三十四頁,編輯于2023年,星期三CLEARTIC;T=2*PI/1024;t=[0:T:2*pi];y=255*sin(t);round(y);用C語言編寫的正弦函數(shù)數(shù)據(jù)采樣程序”ROMDATA”如下:#include"stdio.h"#include"math.h"Main(){intI;Floats;第十頁,共三十四頁,編輯于2023年,星期三
For(i=0;i<1024;i++){s=sin(actan(1)*8*i/1024);Printf("%d,%d;\n",(int)((s+1)*1023/2));}}兩個程序運行之后所得結(jié)果是一致的。在DOS下輸入:ROMDATA>rom_data.mif生成ROM數(shù)據(jù)文件。第十一頁,共三十四頁,編輯于2023年,星期三11.3主要VHDL源程序(有改動)11.3.1相位累加器adder32b的VHDL源程序--adder32b.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYadder32bISPORT(a:INSTD_LOGIC_VECTOR(31DOWNTO0);b:INSTD_LOGIC_VECTOR(31DOWNTO0);s:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDadder32b;ARCHITECTUREARTOFadder32bISBEGIN s<=a+b;ENDART;第十二頁,共三十四頁,編輯于2023年,星期三11.3.2相位寄存器reg32b的VHDL源程序--reg32b.VHD(REG2.VHD與reg32b.VHD相似)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYreg32bISPORT(load:INSTD_LOGIC;din:INSTD_LOGIC_VECTOR(31DOWNTO0);dout:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDreg32b;ARCHITECTUREARTOFreg32bISBEGINPROCESS(load,din)BEGIN IFload'EVENTandload='1'THENdout<=din;endif;ENDPROCESS;ENDART;第十三頁,共三十四頁,編輯于2023年,星期三11.3.1相位調(diào)制器adder10b的VHDL源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYadder10bISPORT(a:INSTD_LOGIC_VECTOR(9DOWNTO0);b:INSTD_LOGIC_VECTOR(9DOWNTO0);s:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDadder10b;ARCHITECTUREARTOFadder10bISBEGIN s<=a+b;ENDART;第十四頁,共三十四頁,編輯于2023年,星期三11.3.1同步寄存器reg10b的VHDL源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYreg10bISPORT(load:INSTD_LOGIC;din:INSTD_LOGIC_VECTOR(9DOWNTO0);dout:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDreg10b;ARCHITECTUREARTOFreg10bISBEGINPROCESS(load,din)BEGIN IFload'EVENTandload='1'THENdout<=din;endif;ENDPROCESS;ENDART;第十五頁,共三十四頁,編輯于2023年,星期三11.3.3正弦查找表ROM的VHDL源程序--lpm_rom0.VHDLIBRARYieee;USEieee.std_logic_1164.all;LIBRARYaltera_mf;USEaltera_mf.all;ENTITYlpm_rom0IS PORT (address:INSTD_LOGIC_VECTOR(9DOWNTO0); clock :INSTD_LOGIC; q:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDlpm_rom0;第十六頁,共三十四頁,編輯于2023年,星期三ARCHITECTURESYNOFlpm_rom0IS SIGNALsub_wire0 :STD_LOGIC_VECTOR(9DOWNTO0); COMPONENTaltsyncram GENERIC( clock_enable_input_a :STRING; clock_enable_output_a :STRING; init_file :STRING; intended_device_family :STRING; lpm_hint :STRING; lpm_type :STRING; numwords_a :NATURAL; operation_mode :STRING;第十七頁,共三十四頁,編輯于2023年,星期三
outdata_aclr_a :STRING; outdata_reg_a :STRING; widthad_a :NATURAL; width_a :NATURAL; width_byteena_a :NATURAL); PORT( clock0 :INSTD_LOGIC; address_a :INSTD_LOGIC_VECTOR(9DOWNTO0); q_a :OUTSTD_LOGIC_VECTOR(9DOWNTO0) ); ENDCOMPONENT;第十八頁,共三十四頁,編輯于2023年,星期三
BEGIN q<=sub_wire0(9DOWNTO0); altsyncram_component:altsyncram GENERICMAP( clock_enable_input_a=>"BYPASS", clock_enable_output_a=>"BYPASS", init_file=>"rom_data.mif", intended_device_family=>"CycloneII", lpm_hint=>"ENABLE_RUNTIME_MOD=NO", lpm_type=>"altsyncram", numwords_a=>1024,第十九頁,共三十四頁,編輯于2023年,星期三
operation_mode=>"ROM", outdata_aclr_a=>"NONE", outdata_reg_a=>"CLOCK0", widthad_a=>10, width_a=>10, width_byteena_a=> ) PORTMAP( clock0=>clock, address_a=>address, q_a=>sub_wire0);ENDSYN;第二十頁,共三十四頁,編輯于2023年,星期三11.3.4系統(tǒng)的整體組裝DDS的圖形設(shè)計第二十一頁,共三十四頁,編輯于2023年,星期三11.4系統(tǒng)仿真/硬件驗證
11.4.1系統(tǒng)的有關(guān)仿真系統(tǒng)的有關(guān)仿真如圖11.3~11.5所示,請讀者自己對仿真結(jié)果進(jìn)行分析。從仿真結(jié)果可以看出,對應(yīng)模塊的設(shè)計是正確的。第二十二頁,共三十四頁,編輯于2023年,星期三圖11.5整個系統(tǒng)DDS的仿真結(jié)果第二十三頁,共三十四頁,編輯于2023年,星期三
11.4.2系統(tǒng)的硬件驗證
DDS的輸入頻率控制字K有8位數(shù)據(jù),輸出數(shù)據(jù)Q為32位,并且ROM需1024個存儲單元,需要占用的系統(tǒng)比較大。但我們所擁有的實驗開發(fā)系統(tǒng)所配的適配板的資源可能有限,如我們在進(jìn)行該實驗時所用的芯片為ALTERA公司的EP2C35F484I8N芯片,這時我們直接進(jìn)行硬件驗證會遇到困難。因此我們需要進(jìn)行變通,想辦法進(jìn)行硬件驗證或部分驗證。第二十四頁,共三十四頁,編輯于2023年,星期三在本設(shè)計的硬件驗證過程中,針對實驗開發(fā)系統(tǒng)所提供的輸入、輸出資源的限制及芯片邏輯資源的限制,我們采取了如下變通辦法:(1)在DDS的前端增加一個頻率、相位控制字輸入模塊,可以通過開關(guān)設(shè)置頻率控制字及相位控制字,用來改變輸出頻率與出相位。VHDL源程序如下:第二十五頁,共三十四頁,編輯于2023年,星期三--DATAINPUT.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDATAINPUTISPORT(clk:INSTD_LOGIC;--計數(shù)時鐘=1HzINH,INL:INSTD_LOGIC;--A,B數(shù)輸入使能
sel:INSTD_LOGIC;--A,B數(shù)輸入選擇:1=輸入A數(shù);0=輸入B數(shù)
DisplayInput:OUTSTD_LOGIC_VECTOR(7DOWNTO0);--輸入數(shù)據(jù)顯示輸出
AOUT,BOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--輸出ENDDATAINPUT;第二十六頁,共三十四頁,編輯于2023年,星期三
ARCHITECTUREbehavOFDATAINPUTISsignala1,a2,b1,b2:STD_LOGIC;signalAOUT1,BOUT1:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(sel)--時鐘分配輸出選擇,sel=1,時鐘分配給A計數(shù)器,同時顯示A數(shù)據(jù);sel=0,時鐘分配給B計數(shù)器,同時顯示B數(shù)據(jù);
BEGINifsel='1'THEN a1<=INLandclk;b1<=INHandclk;DisplayInput<=AOUT1; else a2<=INLandclk;b2<=INHandclk;DisplayInput<=BOUT1; endif;ENDPROCESS;第二十七頁,共三十四頁,編輯于2023年,星期三
PROCESS(b1)--A數(shù)計數(shù)器高位
variableq1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINifb1'EVENTANDb1='1'THEN q1:=q1+1; endif; AOUT1(7DOWNTO4)<=q1;ENDPROCESS;PROCESS(a1)--A數(shù)計數(shù)器低位
variableq2:STD_LOGIC_VECTOR(3DOWNTO0);BEGINifa1'EVENTANDa1='1'THEN IFQ2="1111"THENq2:="0001";ELSE q2:=q2+1;endif; endif;第二十八頁,共三十四頁,編輯于2023年,星期三 AOUT1(3DOWNTO0)<=q2;ENDPROCESS;PROCESS(b2)--B數(shù)計數(shù)器高位 variableq1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINifb2'EVENTANDb2='1'THEN q1:=q1+1; endif; BOUT1(7DOWNTO4)<=q1;ENDPROCESS;第二十九頁,共三十四頁,編輯于2023年,星期三
PROCESS(a2)--B數(shù)計數(shù)器低位 variableq2:STD_L
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美食節(jié)場地租賃合同
- 招聘營銷試用合同范例
- 營銷推廣合作委托合同三篇
- 私人住宅裝修合同三篇
- 黃金投資合同三篇
- 貨物裝卸合同(2篇)
- 公積金抵債協(xié)議書
- 土地法超過2028年的承包合同
- 鏟車用工合同范例
- 顧問用工合同范例
- 高中期末復(fù)習(xí) 高效備考主題班會 課件
- 兒童故事:約瑟夫有件舊外套課件
- 水池滿水試驗報告
- 江蘇省第十四批省級民主法治示范村
- 兩班倒排班表excel模板
- 數(shù)學(xué)說題大賽評分標(biāo)準(zhǔn)
- 人教版高中英語必修5_unit2The_united_Kingdom_Reading
- 哈汽東芝型超超臨界1000MW汽輪機低壓缸動靜碰磨故障分析與對策
- 溫州市房屋租賃合同-通用版
- 醫(yī)源性冠狀動脈夾層的識別與防治
- 空心薄壁墩翻模施工技術(shù)交底(修改)
評論
0/150
提交評論