版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)生的角度,可以把公式分成兩部分來(lái)設(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ǔ)起來(lái),然后在頻率控制字的作用下,通過(guò)相位累加器從存儲(chǔ)器中讀出波形
3、數(shù)據(jù),最后經(jīng)過(guò)數(shù)模轉(zhuǎn)換和低通濾波后輸出頻率合成。調(diào)制信號(hào)頻率控制字控制調(diào)制信號(hào)的頻率,由DDS產(chǎn)生的調(diào)制信號(hào)和調(diào)頻頻偏控制字相乘后再與載波頻率控制字相加,得到的就是FM頻率控制字,這個(gè)控制字通過(guò)DDS控制FM信號(hào)的產(chǎn)生。(二)總體方案設(shè)計(jì)硬件部分:圖1 硬件原理框圖1、外部控制部分:通過(guò)實(shí)驗(yàn)硬件平臺(tái)具有的外部控制(按鍵、開(kāi)關(guān)等)實(shí)現(xiàn)對(duì)FM模塊的控制字輸入2、基于FPGA的FM信號(hào)發(fā)生部分:通過(guò)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)告沒(méi)有
4、介紹這兩個(gè)部分。軟件部分:圖2 軟件原理框圖方案論證:系統(tǒng)設(shè)計(jì)方案:方案一:各模塊代碼自己編寫,優(yōu)點(diǎn)是代碼靈活,可根據(jù)需要增加功能。缺點(diǎn)是設(shè)計(jì)中無(wú)法充分考慮時(shí)序因素。方案二:各模塊通過(guò)調(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í)鐘選擇問(wèn)題。硬件調(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)是倍頻過(guò)高可能導(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ì)選擇方案二,而部分無(wú)IP核可實(shí)現(xiàn)的模塊通過(guò)代碼編寫。調(diào)制信號(hào)頻率控制字控制DDS IP核,在100MHz時(shí)鐘源的條件下,DDS核通過(guò)查找余弦ROM表生成調(diào)制信號(hào),由于增加了三角波、方波和外部信號(hào)等波形,故將DDS IP核產(chǎn)生的相位信號(hào)作為外部ROM表的輸入,ROM表的輸出則通過(guò)一個(gè)波形選擇器來(lái)控制,波形選擇器通過(guò)波形控制字決定哪種信號(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)過(guò)系統(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,通過(guò)調(diào)用Clocking Wizard IP核實(shí)現(xiàn)(見(jià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)模塊通過(guò)DDS Compiler IP核實(shí)現(xiàn),設(shè)置相位可編程,Phase Width設(shè)置28位,100MHz228=0.3725Hz,滿足10Hz時(shí)5%的精
8、度,輸出數(shù)據(jù)設(shè)置16位(見(jiàn)圖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) / 輸出相位,用來(lái)后續(xù)連接其他ROM,控制波形);(三) 其他波形三角波部分:通過(guò) Block Memory Generator IP核實(shí)現(xiàn),地址設(shè)置8位,輸出設(shè)置16位,與DDS IP核的輸出位數(shù)相對(duì)應(yīng)(見(jiàn)圖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)型三角波方波部分:通過(guò) Block Memory Generator IP核實(shí)現(xiàn),地址設(shè)置8位,輸出設(shè)置16位,與DDS IP核的輸出位數(shù)相對(duì)應(yīng)(見(jiàn)圖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),通過(guò)波形選擇控制字控制調(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)輸出(五) 乘法器通過(guò)Multiplier IP核實(shí)現(xiàn),A端輸入16位無(wú)符號(hào)頻偏控制字,B端輸入16位有符號(hào)調(diào)制信號(hào),輸出設(shè)置32位輸出(見(jiàn)圖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位無(wú)符號(hào)頻偏控制字 .B(mod_data), /輸入16位有符號(hào)調(diào)制信號(hào) .P(f_offset_data) /輸出32位有符號(hào)頻偏結(jié)果);(六) 加法器通過(guò) Adder/Subtracter IP 核實(shí)現(xiàn),將24位的無(wú)符號(hào)載波信號(hào)控制字與乘法器輸出的32位信號(hào)的前16位相加,輸出為輸出24位FM信號(hào)控制字(見(jiàn)圖10)。圖10 Adder/Subtracter配置界面c_addsub_0
14、 add_a ( .A(car_wave), /輸如24位無(wú)符號(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)生成模塊通過(guò)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)(見(jiàn)圖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ì)是通過(guò)調(diào)用若干IP核來(lái)實(shí)現(xiàn),所以以上子模塊順序連接生成FM_0 IP核(見(jiàn)圖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),首先通過(guò)行為級(jí)仿真測(cè)試,觀察設(shè)計(jì)的邏輯是否滿足要求,測(cè)試文件為上面編寫的testbench。行為級(jí)仿真正確后,再進(jìn)行硬件測(cè)試,外部控制輸入為三個(gè)撥碼開(kāi)關(guān),可以控制調(diào)制信號(hào)的波形,還可以選擇外部調(diào)制信號(hào)輸入,為了方便測(cè)試,程序中直接將外部信號(hào)接地,所以當(dāng)撥碼開(kāi)關(guān)撥到外部模式時(shí),輸出的信號(hào)為載波信號(hào),可以通過(guò)測(cè)量該信號(hào)的頻率來(lái)確定載波是否滿足要求。然后通過(guò)撥碼開(kāi)關(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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版國(guó)際貿(mào)易實(shí)務(wù)買賣合同的標(biāo)的
- 二零二五版車輛貸款保證合同規(guī)范樣本2篇
- 2024科技創(chuàng)新項(xiàng)目前期咨詢服務(wù)協(xié)議版
- 2024版權(quán)授權(quán)協(xié)議書(shū)范本
- 武漢警官職業(yè)學(xué)院《光學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 文山學(xué)院《設(shè)施園藝學(xué)實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版房屋出售委托協(xié)議3篇
- 二零二五年電子制造企業(yè)技術(shù)工人勞動(dòng)合同范本2篇
- 二零二五年度人工智能教育股份分紅與人才培養(yǎng)協(xié)議3篇
- 圖木舒克職業(yè)技術(shù)學(xué)院《別墅空間設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 高二物理競(jìng)賽霍爾效應(yīng) 課件
- 金融數(shù)學(xué)-(南京大學(xué))
- 基于核心素養(yǎng)下的英語(yǔ)寫作能力的培養(yǎng)策略
- 現(xiàn)場(chǎng)安全文明施工考核評(píng)分表
- 亞什蘭版膠衣操作指南
- 四年級(jí)上冊(cè)數(shù)學(xué)教案 6.1口算除法 人教版
- DB32-T 3129-2016適合機(jī)械化作業(yè)的單體鋼架塑料大棚 技術(shù)規(guī)范-(高清現(xiàn)行)
- 6.農(nóng)業(yè)產(chǎn)值與增加值核算統(tǒng)計(jì)報(bào)表制度(2020年)
- 人工挖孔樁施工監(jiān)測(cè)監(jiān)控措施
- 供應(yīng)商物料質(zhì)量問(wèn)題賠償協(xié)議(終端)
- 物理人教版(2019)必修第二冊(cè)5.2運(yùn)動(dòng)的合成與分解(共19張ppt)
評(píng)論
0/150
提交評(píng)論