版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、 設(shè)計(jì)選題及技術(shù)要求設(shè)計(jì)選題 FM信號(hào)調(diào)制器的設(shè)計(jì)與實(shí)現(xiàn)基礎(chǔ)指標(biāo):實(shí)現(xiàn)FM信號(hào)產(chǎn)生,可配置載波和調(diào)制信號(hào)頻率、調(diào)頻頻偏。(1)載波頻率范圍:100kHz-20MHz,精度優(yōu)于5%。(2)音頻(調(diào)制信號(hào))頻率范圍:10Hz-10kHz,精度優(yōu)于5%。(3) 調(diào)頻頻偏:10kHz-100kHz,步進(jìn)1kHz,精度優(yōu)于5%。(4) 將FM調(diào)制器封裝成IP核,測(cè)試其功能。增加指標(biāo):(1) 實(shí)現(xiàn)多種波形的調(diào)制信號(hào)(2) 可設(shè)置輸入外部載波信號(hào)二、 方案設(shè)計(jì)及原理分析(一)原理分析由題目要求可知,需要輸入的基本控制字有載波頻率控制字和調(diào)制信號(hào)頻率控制字、調(diào)頻頻偏控制字。時(shí)域表達(dá)式:SFM(t)=cos
2、ct+KFM0lxd =coscnTa+mTs+KFM0nTa+mTsxd =cos22NKnl+m+KFMp=0nl+m-1xpTsTs =cosp=0nl+m-122N(K+2N2KFMTsx(pTs) 則SFMt=cosp=0nl+m-122N(K+K0x(pTs),其中:K是頻率控制字,K0=2NKFMTs/2, KFM是調(diào)制指數(shù)。從波形產(chǎn)生的角度,可以把公式分成兩部分來設(shè)計(jì),第一部分是調(diào)制信號(hào)產(chǎn)生部分,第二部分是FM信號(hào)產(chǎn)生部分。而信號(hào)的產(chǎn)生可以運(yùn)用DDS原理實(shí)現(xiàn),直接數(shù)字式頻率合成DDS技術(shù)的基本原理是將波形數(shù)據(jù)先存儲(chǔ)起來,然后在頻率控制字的作用下,通過相位累加器從存儲(chǔ)器中讀出波形
3、數(shù)據(jù),最后經(jīng)過數(shù)模轉(zhuǎn)換和低通濾波后輸出頻率合成。調(diào)制信號(hào)頻率控制字控制調(diào)制信號(hào)的頻率,由DDS產(chǎn)生的調(diào)制信號(hào)和調(diào)頻頻偏控制字相乘后再與載波頻率控制字相加,得到的就是FM頻率控制字,這個(gè)控制字通過DDS控制FM信號(hào)的產(chǎn)生。(二)總體方案設(shè)計(jì)硬件部分:圖1 硬件原理框圖1、外部控制部分:通過實(shí)驗(yàn)硬件平臺(tái)具有的外部控制(按鍵、開關(guān)等)實(shí)現(xiàn)對(duì)FM模塊的控制字輸入2、基于FPGA的FM信號(hào)發(fā)生部分:通過FPGA實(shí)現(xiàn)FM信號(hào)輸出,同時(shí)輸出調(diào)制信號(hào)作為參考3、數(shù)模轉(zhuǎn)換器:將已經(jīng)合成的波形數(shù)字量轉(zhuǎn)化成模擬量。4、低通濾波器:濾除高頻成分,恢復(fù)所要合成的波形。由于實(shí)驗(yàn)平臺(tái)缺少數(shù)模轉(zhuǎn)換器和低通濾波器,故本報(bào)告沒有
4、介紹這兩個(gè)部分。軟件部分:圖2 軟件原理框圖方案論證:系統(tǒng)設(shè)計(jì)方案:方案一:各模塊代碼自己編寫,優(yōu)點(diǎn)是代碼靈活,可根據(jù)需要增加功能。缺點(diǎn)是設(shè)計(jì)中無法充分考慮時(shí)序因素。方案二:各模塊通過調(diào)用IP核實(shí)現(xiàn),優(yōu)點(diǎn)是實(shí)現(xiàn)方便,IP核已通驗(yàn)證,性能優(yōu)越。缺點(diǎn)是靈活性低,不能隨意修改內(nèi)部代碼。時(shí)鐘方案:方案一:所有模塊共用同一時(shí)鐘源,設(shè)計(jì)方便,不必考慮時(shí)鐘選擇問題。硬件調(diào)試時(shí),時(shí)鐘域單一,可以減少時(shí)鐘域選擇造成的錯(cuò)誤。但時(shí)鐘頻率低,可能導(dǎo)致DDS輸出波形失真。方案二:DDS高頻部分時(shí)鐘源為系統(tǒng)時(shí)鐘倍頻得到,其他部分共用系統(tǒng)時(shí)鐘。優(yōu)點(diǎn)是所有模塊理論上可達(dá)到題目指標(biāo)要求。缺點(diǎn)是倍頻過高可能導(dǎo)致系統(tǒng)最終不滿足時(shí)序
5、約束。方案分析:需要輸入的基本控制字有載波頻率控制字和調(diào)制信號(hào)頻率控制字、調(diào)頻頻偏控制字。在此基礎(chǔ)上,該設(shè)計(jì)又增加了調(diào)制信號(hào)波形控制部分,總體軟件原理框圖如圖2所示,模塊較多,但各部分功能較簡(jiǎn)單,故不必考慮代碼靈活與否,而需要考慮整體性能,則系統(tǒng)設(shè)計(jì)選擇方案二,而部分無IP核可實(shí)現(xiàn)的模塊通過代碼編寫。調(diào)制信號(hào)頻率控制字控制DDS IP核,在100MHz時(shí)鐘源的條件下,DDS核通過查找余弦ROM表生成調(diào)制信號(hào),由于增加了三角波、方波和外部信號(hào)等波形,故將DDS IP核產(chǎn)生的相位信號(hào)作為外部ROM表的輸入,ROM表的輸出則通過一個(gè)波形選擇器來控制,波形選擇器通過波形控制字決定哪種信號(hào)輸出,將輸出的
6、調(diào)制信號(hào)與調(diào)頻頻偏控制字相乘,得到的數(shù)據(jù)再與載波頻率控制字相加,結(jié)果可作為另一個(gè)DDS IP和的輸入,DDS IP核的輸出即為生成的FM信號(hào)。需要注意的是,系統(tǒng)時(shí)鐘100MHz,而載波最高為20MHz,則當(dāng)載波為最高時(shí),DDS IP核輸出的波形有一定程度的失真,所以產(chǎn)生FM信號(hào)的DDS IP核所用的時(shí)鐘源應(yīng)該經(jīng)過系統(tǒng)時(shí)鐘倍頻,時(shí)鐘方案選擇方案二,考慮到系統(tǒng)稍復(fù)雜,如果倍頻太高,可能導(dǎo)致所設(shè)計(jì)硬件不能滿足時(shí)序約束,綜合以上情況考慮,將系統(tǒng)時(shí)鐘倍頻到200MHz,作為產(chǎn)生FM信號(hào)的DDS核的時(shí)鐘源。三、 程序分析及設(shè)計(jì)圖3 總體流程圖(一) 倍頻模塊圖4 Clocking Wizard配置結(jié)果將1
7、00MHz時(shí)鐘倍頻到200MHz,通過調(diào)用Clocking Wizard IP核實(shí)現(xiàn)(見圖4)。wire clk_200M;/定義輸出已倍頻時(shí)鐘信號(hào) clk_wiz_0 instance_name(.clk_in1(clk), / 系統(tǒng)時(shí)鐘接入.clk_out1(clk_200M), / 輸出已倍頻時(shí)鐘.reset(cpu_resetn), / 復(fù)位信號(hào)取反后與其連接.locked() / locked輸出不接信號(hào)); (二) 內(nèi)部調(diào)制信號(hào)模塊通過DDS Compiler IP核實(shí)現(xiàn),設(shè)置相位可編程,Phase Width設(shè)置28位,100MHz228=0.3725Hz,滿足10Hz時(shí)5%的精
8、度,輸出數(shù)據(jù)設(shè)置16位(見圖5)。 圖5 DDS Compiler配置結(jié)果wire 31:0mod_data_reg;wire 31:0mod_ph_data;dds_mod dds_mod_inst ( .aclk(clk), / 接入時(shí)鐘信號(hào) .s_axis_config_tvalid(1'b1), / 接高電平有效 .s_axis_config_tdata(4'b0,mod_wave), .m_axis_data_tvalid(), / 輸出數(shù)據(jù)有效信號(hào)不接 .m_axis_data_tdata(mod_data_reg), / 輸出32位數(shù)據(jù),為調(diào)制信號(hào),取低16位為實(shí)
9、際數(shù)據(jù)位 .m_axis_phase_tvalid(), / 輸出相位有效信號(hào)不接 .m_axis_phase_tdata(mod_ph_data) / 輸出相位,用來后續(xù)連接其他ROM,控制波形);(三) 其他波形三角波部分:通過 Block Memory Generator IP核實(shí)現(xiàn),地址設(shè)置8位,輸出設(shè)置16位,與DDS IP核的輸出位數(shù)相對(duì)應(yīng)(見圖6)。圖6 三角波Block Memory Generator 配置界面wire 15:0dout_tri;/定義rom輸出信號(hào)blk_mem_gen_0 rom_tria ( .clka(clk), / 接時(shí)鐘信號(hào) .addra(mod_
10、ph_data27:20), / 接8位地址信號(hào) .douta(dout_tri) /ROM輸出三角波原碼);wire15:0dout_tri_result=dout_tri151'b1,dout_tri14:0;/進(jìn)行碼型變換,轉(zhuǎn)換為有符號(hào)型三角波方波部分:通過 Block Memory Generator IP核實(shí)現(xiàn),地址設(shè)置8位,輸出設(shè)置16位,與DDS IP核的輸出位數(shù)相對(duì)應(yīng)(見圖7)。圖7 方波Block Memory Generator 配置界面wire 15:0dout_squ;/定義rom輸出信號(hào)brom_squ rom_squa ( .clka(clk), / 接時(shí)鐘
11、信號(hào) .addra(mod_ph_data27:20), / 接8位地址信號(hào) .douta(dout_squ) /ROM輸出方波);(四) 波形選擇器組合邏輯實(shí)現(xiàn),通過波形選擇控制字控制調(diào)制信號(hào)波形。reg 15:0mod_data1;/定義寄存器型調(diào)制信號(hào)always(*)case(mod_wave_con)/當(dāng)波形控制字為正弦波時(shí)輸出正弦波sin_wave:mod_data1=mod_data_reg15:0; /當(dāng)波形控制字為三角波時(shí)輸出三角波tri_wave:mod_data1=dout_tri_result; /當(dāng)波形控制字為方波時(shí)輸出方波square_wave:mod_data1=
12、dout_squ_result; /當(dāng)波形控制字為外部信號(hào)時(shí)輸出外部信號(hào)external_wave:mod_data1=external_mod; /波形控制字不為以上情況時(shí)輸出正弦信號(hào)default:mod_data1=mod_data_reg15:0; endcasewire 15:0mod_data= mod_data1;/定義最終調(diào)制信號(hào)assign modwave_out=mod_data;/作為輸出端將調(diào)制信號(hào)輸出(五) 乘法器通過Multiplier IP核實(shí)現(xiàn),A端輸入16位無符號(hào)頻偏控制字,B端輸入16位有符號(hào)調(diào)制信號(hào),輸出設(shè)置32位輸出(見圖8,圖9)。圖8 乘法器輸入配置
13、 圖9 乘法器輸出配置wire 31:0f_offset_data;/定義乘法器輸出信號(hào)mult_gen_0 mult_a ( .CLK(clk), / 接入時(shí)鐘信號(hào) .A(f_offset), / 輸入16位無符號(hào)頻偏控制字 .B(mod_data), /輸入16位有符號(hào)調(diào)制信號(hào) .P(f_offset_data) /輸出32位有符號(hào)頻偏結(jié)果);(六) 加法器通過 Adder/Subtracter IP 核實(shí)現(xiàn),將24位的無符號(hào)載波信號(hào)控制字與乘法器輸出的32位信號(hào)的前16位相加,輸出為輸出24位FM信號(hào)控制字(見圖10)。圖10 Adder/Subtracter配置界面c_addsub_0
14、 add_a ( .A(car_wave), /輸如24位無符號(hào)載波頻率控制字 .B(f_offset_data31:17), / 輸入15位有符號(hào)頻偏結(jié)果 .CLK(clk), / 接入時(shí)鐘信號(hào) .CE(1'b1), /使能信號(hào)始終接高電平 .S(FM_w_result) / 輸出24位FM信號(hào)控制字);(七) DDS的FM信號(hào)生成模塊通過DDS Compiler IP核實(shí)現(xiàn),設(shè)置相位可編程,Phase Width設(shè)置24位,200MHz224=11.92Hz,滿足100kHz時(shí)5%的精度,輸出數(shù)據(jù)設(shè)置16位,輸出信號(hào)為FM信號(hào)(見圖11)。圖11 DDS Compiler配置結(jié)果
15、dds_car dds_car_inst ( .aclk(clk_200M), / 接入200M時(shí)鐘 .s_axis_config_tvalid(1'b1), / 輸入有效信號(hào)接高電平 .s_axis_config_tdata(FM_w_result), /接入24位FM信號(hào)控制字 .m_axis_data_tvalid(), / 輸出數(shù)據(jù)有效信號(hào)不接 .m_axis_data_tdata(FM_wave_reg), / 輸出32位有符號(hào)FM信號(hào) .m_axis_phase_tvalid(), / 輸出相位有效信號(hào)不接 .m_axis_phase_tdata() /輸出相位信號(hào)不接);
16、(八) 頂層模塊程序設(shè)計(jì)由于本實(shí)驗(yàn)設(shè)計(jì)是通過調(diào)用若干IP核來實(shí)現(xiàn),所以以上子模塊順序連接生成FM_0 IP核(見圖12)。圖12 IP核打包管腳界面(九) 測(cè)試程序設(shè)計(jì)module FM_tb();parameter car_width = 5'd23,/載波控制字位寬mod_width = 5'd27,/調(diào)制信號(hào)控制字位寬f_offset_width =5'd15,/2頻偏控制字位寬FM_width = 5'd15;/FM輸出信號(hào)位寬/-reg clk;/時(shí)鐘信號(hào)reg cpu_resetn;/復(fù)位信號(hào)reg car_width:0car_wave;/載波控制
17、字reg mod_width:0mod_wave;/調(diào)制信號(hào)控制字reg f_offset_width:0f_offset; /頻偏控制字reg 2:0mod_wave_con;/調(diào)制信號(hào)波形控制字reg 15:0external_mod;/外部信號(hào)wire 15:0modwave_out;/調(diào)制信號(hào)輸出wire FM_width:0FM_wave;/FM信號(hào)輸出/實(shí)例化FM模塊FM FM_tb(clk,cpu_resetn,car_wave,mod_wave,f_offset,mod_wave_con,external_mod,modwave_out,FM_wave );initial be
18、gin#0 clk=0;#0 cpu_resetn=0;#0 car_wave=83886;/公式fo=fc*M/2N,fo=200MHz*car_wave/224, 83886*200MHz/224=1MHz#0 mod_wave=2684;/公式fo=fc*M/2N,得fo=100MHz*mod_wave/228,2684*100MHz/228=1kHz#0 f_offset=100000/3;/50000/3;/12Hz-16'h0004;設(shè)計(jì)頻偏分辨率/為200MHz/224=12Hz,當(dāng)控制字為16h0004時(shí)最小,所以當(dāng)頻偏100kHz 時(shí),對(duì)應(yīng)f_offset=10000
19、0/3#0 external_mod=16'h0000;/外部信號(hào)起始為0#0 mod_wave_con=3'b000;/調(diào)制信號(hào)波形控制起始為正弦#100 cpu_resetn=1'b1;/復(fù)位信號(hào)拉高#1100000 mod_wave_con=3'b100;/調(diào)制信號(hào)波形控制變?yōu)闉橥獠啃盘?hào)#1100000 mod_wave_con=3'b001;/end /波形存儲(chǔ)寄存器reg 15:0mem_tri0:255;reg 15:0mem_sin0:255;reg 15:0mem_squ0:255;reg 15:0external_mod_reg;reg
20、 8:0i;initialbegin $readmemh("F:/workplace/FPGA/Vivado/FM/FM/project_1/project_1.srcs/sim_1/new/tri_test.dat",mem_tri);/調(diào)用系統(tǒng)函數(shù)產(chǎn)生外部三角波信號(hào)$readmemh("F:/workplace/FPGA/Vivado/FM/FM/project_1/project_1.srcs/sim_1/new/sin_test.dat",mem_sin); /調(diào)用系統(tǒng)函數(shù)產(chǎn)生外部正弦波信號(hào)$readmemh("F:/workplace
21、/FPGA/Vivado/FM/FM/project_1/project_1.srcs/sim_1/new/squ_test.dat",mem_squ); /調(diào)用系統(tǒng)函數(shù)產(chǎn)生外部方波信號(hào)endinitialbegin#4000000mod_wave_con=3'b100;/波形控制字為外部信號(hào)/-將外部信號(hào)文件的數(shù)據(jù)導(dǎo)入for(i=1'b0;i<=8'd255;i=i+1'b1)begin#(1000000000/10000/255) external_mod_reg=mem_trii;/三角波數(shù)據(jù)external_mod=external_mo
22、d_reg151'b1,external_mod_reg14:0;endfor(i=1'b0;i<=8'd255;i=i+1'b1)begin#(1000000000/10000/255) external_mod_reg=mem_sini;/正弦波數(shù)據(jù)external_mod=external_mod_reg151'b1,external_mod_reg14:0;endfor(i=1'b0;i<=8'd255;i=i+1'b1)begin#(1000000000/10000/255) external_mod_reg
23、=mem_squi;/方波數(shù)據(jù)external_mod=external_mod_reg;endend/-always #5 clk=clk;/仿真每5ns翻轉(zhuǎn)一次時(shí)鐘,相當(dāng)于100MHzendmodule(十) RTL級(jí):圖 13 生成RTL級(jí)視圖四、系統(tǒng)測(cè)試及分析(一) 測(cè)試方案及數(shù)據(jù)測(cè)試方案:為方便測(cè)試,選取載波為1MHz,頻偏為100KHz,調(diào)制信號(hào)為1kHz作為測(cè)試點(diǎn),首先通過行為級(jí)仿真測(cè)試,觀察設(shè)計(jì)的邏輯是否滿足要求,測(cè)試文件為上面編寫的testbench。行為級(jí)仿真正確后,再進(jìn)行硬件測(cè)試,外部控制輸入為三個(gè)撥碼開關(guān),可以控制調(diào)制信號(hào)的波形,還可以選擇外部調(diào)制信號(hào)輸入,為了方便測(cè)試,程序中直接將外部信號(hào)接地,所以當(dāng)撥碼開關(guān)撥到外部模式時(shí),輸出的信號(hào)為載波信號(hào),可以通過測(cè)量該信號(hào)的頻率來確定載波是否滿足要求。然后通過撥碼開關(guān)設(shè)置調(diào)制信號(hào)為內(nèi)部正弦信號(hào),先測(cè)量調(diào)制信號(hào)是否為1kHz,調(diào)制信號(hào)測(cè)試正確后,繼續(xù)測(cè)量FM信號(hào)的最高頻率和最低頻率,最高頻率對(duì)應(yīng)位置為正弦調(diào)制信號(hào)的波峰,最低頻率對(duì)應(yīng)位置為正弦調(diào)制信號(hào)的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 規(guī)范企業(yè)自主評(píng)價(jià)制度
- 蜜雪合同人打卡制度
- 2026年甘肅省嘉峪關(guān)市人民社區(qū)衛(wèi)生服務(wù)中心招聘?jìng)淇伎荚囋囶}附答案解析
- 2026重慶市大足區(qū)科學(xué)技術(shù)局招聘公益性崗位工作人員2人參考考試試題附答案解析
- 2026貴州黔南州福泉市考調(diào)公務(wù)員 (參公人員)2人備考考試試題附答案解析
- 2026內(nèi)蒙古鄂爾多斯市合創(chuàng)控股集團(tuán)有限公司招聘6人參考考試試題附答案解析
- 2026云南西雙版納州勐??h消防救援局招聘城鎮(zhèn)公益性崗位人員2人備考考試試題附答案解析
- 2026山東聊城要素綜合服務(wù)有限公司招聘1人備考考試題庫附答案解析
- 2026四川長虹新網(wǎng)科技有限責(zé)任公司招聘軟件設(shè)計(jì)師等崗位68人備考考試題庫附答案解析
- 2026云南保山市騰沖出入境邊防檢查站執(zhí)勤隊(duì)口岸邊境管控專職輔警招聘3人備考考試試題附答案解析
- 心臟瓣膜置換術(shù)護(hù)理查房
- 【診療方案】慢性阻塞性肺疾病診治指南(2025年修訂版)
- 初三上學(xué)期物理期末復(fù)習(xí)知識(shí)詳解(含答案)
- 2025年擔(dān)保公司考試題庫(含答案)
- 營養(yǎng)員指導(dǎo)員培訓(xùn)
- 期末模擬測(cè)試(試卷)2025-2026學(xué)年六年級(jí)語文上冊(cè)(統(tǒng)編版)
- 2025-2026學(xué)年蘇教版小學(xué)數(shù)學(xué)三年級(jí)上冊(cè)期末綜合測(cè)試卷及答案(三套)
- 服裝廠生產(chǎn)流程標(biāo)準(zhǔn)操作程序
- 2025至2030伴侶動(dòng)物診斷行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 授信財(cái)務(wù)知識(shí)培訓(xùn)課件
- 師范類學(xué)生教學(xué)能力提升計(jì)劃
評(píng)論
0/150
提交評(píng)論