




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
③田耘,徐文波,張延偉.無線通信FPGA設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008.9~10.FPGA的原理簡單說就是利用EDA技術(shù)對FPGA芯片進(jìn)行多功能開發(fā),一般流程為:首先開始設(shè)計(jì)電路圖、設(shè)定輸入信息、執(zhí)行功能仿真、調(diào)試優(yōu)化、綜合后再仿真、內(nèi)部電路布線、再次時(shí)序仿真、下載電路板驗(yàn)證及最終根據(jù)結(jié)果對芯片進(jìn)行編程調(diào)試。由于FPGA具有硬件結(jié)構(gòu)特點(diǎn),使其適用于運(yùn)算量大、算法結(jié)構(gòu)固定的信號處理,如大量的乘和加算數(shù)運(yùn)算。FPGA的邏輯部分是通過向內(nèi)部存儲(chǔ)單元加入編程數(shù)據(jù)實(shí)現(xiàn),存儲(chǔ)的內(nèi)容決定了邏輯單元的邏輯功能及各模塊間聯(lián)系方式和最終的實(shí)現(xiàn)功能。本次設(shè)計(jì)采用ALTERACYCLONEIV系列芯片,Cyclone是Altera的中等規(guī)格型號的FPGA,其中CycloneIVFPGA系列在10年前正式推出,面向?qū)Τ杀绢A(yù)算有嚴(yán)格規(guī)定的批量應(yīng)用,降低了一定的成本,幫助滿足逐漸嚴(yán)格的帶寬要求,其中CycloneIVE具有功耗最小、成本最低、性能最優(yōu)等特點(diǎn)。該器件在降低功耗和成本的同時(shí)又能完善系統(tǒng)性能,這樣的優(yōu)勢使它在通信、工業(yè)、媒體等行業(yè)領(lǐng)域有很廣泛的應(yīng)用。本系列芯片的主要特征是低成本、低功耗,同時(shí)滿足設(shè)計(jì)所需的帶寬要求。FPGA技術(shù)如今正處于高速發(fā)展的時(shí)代,F(xiàn)PGA向著更大容量、低電壓、低功耗的方向發(fā)展,芯片成本逐步降低,功能不斷增強(qiáng),發(fā)展前景光明。3.3硬件描述語言硬件描述語言是全面介紹的EDA技術(shù)的重要部分,常用語言有VHDL、VerilogHDL等。本次設(shè)計(jì)主要用到的語言是VerilogHDL,它可以用來進(jìn)行多層次的設(shè)計(jì),適合多級運(yùn)算的布局,利于實(shí)現(xiàn)復(fù)雜算法。VerilogHDL語言是特點(diǎn)是語法方便理解,使用規(guī)則比較自由,并能在系統(tǒng)的不同功能方面進(jìn)行精準(zhǔn)設(shè)計(jì),通用使用自頂向下的設(shè)計(jì)方法,易于模塊劃分,通用性好,可對各個(gè)部分設(shè)計(jì)進(jìn)行仿真,檢驗(yàn)時(shí)易于查找錯(cuò)誤,可提高設(shè)計(jì)效率。3.4QuartusII軟件QuarterII軟件主要是EDA技術(shù)實(shí)現(xiàn)的軟件平臺(tái),支持VHDL,VerilogHDL等語言的多種輸入形式,內(nèi)部有自帶的綜合仿真器,可以完成輸入設(shè)計(jì)到仿真到硬件配置的全部設(shè)計(jì)流程。軟件具有運(yùn)行速度快,界面統(tǒng)一,功能強(qiáng)大,方便學(xué)習(xí)使用等特點(diǎn)。它有嚴(yán)格的設(shè)計(jì)流程,通用分為設(shè)計(jì)輸入、分析綜合、布局布線、仿真及編程與配置。軟件可實(shí)現(xiàn)設(shè)計(jì)所需要的所有設(shè)計(jì)文件、軟件源文件和其他相關(guān)文件;建立工程和設(shè)計(jì)之后,可通過各種功能布局來指定初始設(shè)計(jì)約束;編寫好代碼后,啟動(dòng)編譯進(jìn)行分析綜合,檢查單個(gè)設(shè)計(jì)文件的語法錯(cuò)誤;最后可通過仿真來檢驗(yàn)設(shè)計(jì)功能。QuartusII是FPGA常用的建造工具,功能編寫、綜合、仿真和下載。它的功能全面多樣,被廣泛應(yīng)用于教學(xué)環(huán)節(jié)、課程設(shè)計(jì)及產(chǎn)品開發(fā)中。3.5ModelSim仿真ModelSim是也EDA常用的軟件對象,主要用于對硬件源碼的仿真,方便設(shè)計(jì)進(jìn)行調(diào)試。其主要特點(diǎn)是含有RTL和門級優(yōu)化功能,調(diào)試仿真速度快;同時(shí)可以進(jìn)行VHDL和Verilog之間的混合仿真;集中體現(xiàn)了性能分析、代碼查找、比較波形等調(diào)試功能。它的特點(diǎn)是需要添加激勵(lì)文件,可通過代碼語句對輸入端口值賦初值。相比于其它仿真軟件,它對源碼結(jié)構(gòu)有很嚴(yán)謹(jǐn)?shù)囊?,需要有很?xì)致的代碼編寫能力。但同時(shí),它的功能也是十分全面的,可以對復(fù)雜的系統(tǒng)設(shè)計(jì)進(jìn)行仿真,所以是復(fù)雜算法設(shè)計(jì)的首要選擇。4設(shè)計(jì)方案4.1整體設(shè)計(jì)整個(gè)設(shè)計(jì)過程選取了按時(shí)間抽取的基-2算法(DIT-FFT),這一算法結(jié)構(gòu)特點(diǎn)是輸入倒位序的序列,輸出自然順序的變換結(jié)果,利用蝶形運(yùn)算和旋轉(zhuǎn)因子,先作復(fù)乘后作加、減,完成高效的快速傅里葉正反變換。本次設(shè)計(jì)主要為N=16點(diǎn)FFT/IFFT運(yùn)算,可用流程圖表示所需進(jìn)行的算法結(jié)果,它可以直觀顯示設(shè)計(jì)中的數(shù)據(jù)運(yùn)算關(guān)系。圖4-1設(shè)計(jì)流程圖Fig.4-1Flowchartofdesign由圖4-1可知,若將其中的功能處理模塊化后,主要包括三大主要模塊,其中個(gè)別模塊還應(yīng)包含子模塊。主要模塊有數(shù)據(jù)輸入處理模塊,完成圖中對數(shù)據(jù)取共軛的部分;FFT運(yùn)算模塊完成fft運(yùn)算部分;數(shù)據(jù)輸出處理模塊完成對數(shù)據(jù)取共軛并乘1/N的功能;其中FFT運(yùn)算模塊還包含基本蝶形結(jié)模塊進(jìn)行兩點(diǎn)蝶形結(jié)運(yùn)算;基本蝶形結(jié)模塊中包含乘法器模塊進(jìn)行算術(shù)運(yùn)算。4.2具體模塊設(shè)計(jì)4.2.1數(shù)據(jù)輸入處理模塊此模塊命名為put_in_unit,主要對輸入數(shù)據(jù)進(jìn)行接收和處理,并將數(shù)據(jù)傳遞給下一模塊。接收輸入數(shù)據(jù)后進(jìn)行判斷,是對數(shù)據(jù)進(jìn)行FFT變換或是IFFT變換,定義一個(gè)變量choose,輸入/輸出數(shù)據(jù)定義為24位。1)當(dāng)choose為低電平時(shí),進(jìn)行FFT數(shù)據(jù)變換,即輸入數(shù)據(jù)不變直接輸出至下一模塊。2)當(dāng)choose為高電平時(shí)。對輸入數(shù)據(jù)進(jìn)行IFFT變換的處理,將輸入數(shù)據(jù)取共軛,即虛部部分乘以-1,再輸出至下一模塊。針對put_in_unit這一模塊,輸入3個(gè)信號控制程序系統(tǒng)狀態(tài),輸入數(shù)據(jù)是16個(gè)實(shí)部虛部分開的數(shù)據(jù),輸出的也是16個(gè)實(shí)部虛部分開的數(shù)據(jù)。首先根據(jù)Verilog語法,規(guī)范書寫代碼,對各種變量進(jìn)行定義:1)輸入信號:clk,rst,choose2)輸入數(shù)據(jù):data0_re_in~data15_re_in//16個(gè)輸入數(shù)據(jù)的實(shí)部data0_im_in~data15_im_in//16個(gè)輸入數(shù)據(jù)的虛部3)輸出數(shù)據(jù):butt16_re0~butt16_re15//16個(gè)輸出數(shù)據(jù)的實(shí)部butt16_im0~butt16_im15//16個(gè)輸出數(shù)據(jù)的虛部若復(fù)位信號低電平時(shí),本模塊所有輸出值為0,部分語句如下:butt16_re0<=24'b0;butt16_im0<=24'b0;······butt16_re15<=24'b0;butt16_im15<=24'b0; 若choose為低電平時(shí),判斷為FFT運(yùn)算,執(zhí)行如下語句,即將所有輸入數(shù)據(jù)賦值給輸出數(shù)據(jù):butt16_re0<=data0_re_in;butt16_im0<=data0_im_in;······butt16_re15<=data15_re_in;butt16_im15<=data15_im_in;若choose為高電平時(shí),判斷為IFFT運(yùn)算,執(zhí)行如下語句,即將所有輸入數(shù)據(jù)實(shí)部不變,虛部乘-1,再賦值給輸出數(shù)據(jù):butt16_re0<=data0_re_in;butt16_im0<=~data0_im_in+24'b1;······butt16_re15<=data15_re_in;butt16_im15<=~data15_im_in+24'b1; 將數(shù)據(jù)乘-1的代碼的具體含義是將數(shù)據(jù)取補(bǔ)碼,方法是將數(shù)據(jù)取反碼并加1,取反碼符號是“~”,加1的數(shù)字位寬為24位,可寫作“24’b1”。4.2.2FFT運(yùn)算模塊此模塊命名為FFT_16_unit,接收數(shù)據(jù)接收處理模塊(put_in_unit)輸出的數(shù)據(jù),通過調(diào)用多個(gè)蝶形運(yùn)算子模塊,對輸入數(shù)據(jù)進(jìn)行FFT運(yùn)算處理,并將數(shù)據(jù)輸出至下一模塊。1)輸入信號:clk,rst2)輸入數(shù)據(jù):butt16_real0~butt16_real15//輸入16個(gè)數(shù)據(jù)實(shí)部butt16_imag0~butt16_imag15//輸入16個(gè)數(shù)據(jù)虛部3)輸出數(shù)據(jù):y0_real~y15_real//輸出16個(gè)數(shù)據(jù)實(shí)部y0_imag~y15_imag//輸出16個(gè)數(shù)據(jù)虛部根據(jù)16點(diǎn)FFT蝶形運(yùn)算還需定義許多變量,進(jìn)行內(nèi)部連線賦值。本模塊的輸入數(shù)據(jù)參與第一級蝶形運(yùn)算,分組輸入單位蝶形運(yùn)算單元,同時(shí)每組輸入規(guī)定的旋轉(zhuǎn)因子值。根據(jù)16點(diǎn)基2-DIT-FFT流圖,可知調(diào)用butterfly_2模塊的各級蝶形運(yùn)算的組合如下:第一級基本蝶形結(jié)運(yùn)算組合是x(0)和x(8)、x(4)和x(12)、x(2)和x(10)、x(6)和x(14)、x(1)和x(9)、x(5)和x(13)、x(3)和x(11)、x(7)和x(15)。本級旋轉(zhuǎn)因子為。第二級基本蝶形結(jié)運(yùn)算組合是e0和e2、e1和e3、e4和e6、e5和e7、e8和e10、e9和e11、e12和e14、e13和e15。本級旋轉(zhuǎn)因子為,。第三級基本蝶形結(jié)運(yùn)算組合是f0和f4、f1和f5、f2和f6、f3和f7、f8和f12、f9和f13、f10和f14、f11和f15。本級旋轉(zhuǎn)因子為,,,。第四級基本蝶形結(jié)運(yùn)算組合是g0和g8、g1和g9、g2和g10、g3和g11、g4和g12、g5和g13、g6和g14、g7和g15。本級旋轉(zhuǎn)因子為,,,,,,,。其中旋轉(zhuǎn)因子部分為了方便運(yùn)算,是通過直接計(jì)算所得的理論值,并放大倍數(shù),乘2^13后,轉(zhuǎn)換為相對應(yīng)的16進(jìn)制數(shù)值,所計(jì)算的理論值為:圖4-2計(jì)算旋轉(zhuǎn)因子的MATLAB程序Fig.4-2MATLABprogramtocalculatetherotationfactorans=1.0000,0,0.9239,-0.3827,0.7071,-0.7071,0.3827,-0.9239,0.0000,-1.0000,-0.3827,-0.9239,-0.7071,-0.7071,-0.9239,-0.3827將求得數(shù)據(jù)放大倍數(shù)之后再將轉(zhuǎn)換得到的16進(jìn)制值寫入代碼中。具體賦值語句如下:assigntwiddle_real0=32'h00002000;//1assigntwiddle_imag0=32'h00000000;//0assigntwiddle_real1=32'h00001d90;//0.9239assigntwiddle_imag1=32'hfffff3c0;//-0.3827assigntwiddle_real2=32'h000016a0;//0.7071assigntwiddle_imag2=32'hffffe95f;//-0.7071assigntwiddle_real3=32'h00000c3f;//0.3827assigntwiddle_imag3=32'hffffe26f;//-0.9239assigntwiddle_real4=32'h00000000;//0assigntwiddle_imag4=32'hffffe000;//-1assigntwiddle_real5=32'hfffff3c0;//-0.3827assigntwiddle_imag5=32'hffffe26f;//-0.9239assigntwiddle_real6=32'hffffe95f;//-0.7071assigntwiddle_imag6=32'hffffe95f;//-0.7071assigntwiddle_real7=32'hffffe26f;//-0.9239assigntwiddle_imag7=32'hfffff3c0;//-0.38274.2.3基本蝶形結(jié)模塊此子模塊命名為butterfly_2,主要在FFT運(yùn)算模塊中進(jìn)行調(diào)用,對數(shù)據(jù)進(jìn)行蝶形運(yùn)算處理。單個(gè)蝶形運(yùn)算為、,包含一次復(fù)乘、一次復(fù)數(shù)加法與一次復(fù)數(shù)減法。模塊RTL圖如下:圖4-3butterfly_2模塊的RTL圖Fig.4-3RTLdiagramofthebutterfly_2module1)輸入信號:clk,rst2)輸入數(shù)據(jù):butt2_real0//的實(shí)部butt2_imag0//的虛部butt2_real1//的實(shí)部butt2_imag1//的虛部twiddle_real//旋轉(zhuǎn)因子實(shí)部twiddle_imag//旋轉(zhuǎn)因子虛部3)輸出數(shù)據(jù):y0_real//輸出結(jié)果的實(shí)部y0_imag//輸出結(jié)果的虛部y1_real//輸出結(jié)果的實(shí)部y1_imag//輸出結(jié)果的虛部除端口需要定義外,還存在許多變量連接語句,使中間數(shù)據(jù)直接可以轉(zhuǎn)換。首先將第二個(gè)輸入數(shù)據(jù)與旋轉(zhuǎn)因子相乘,需調(diào)用乘法器模塊mult32_24,而加減運(yùn)算直接選用“+”“-”運(yùn)算符,因?yàn)檫\(yùn)算數(shù)據(jù)為復(fù)數(shù),所以可利用復(fù)數(shù)乘法的推導(dǎo)公式求值:。(4-1)這樣就可以分別對數(shù)據(jù)的虛部實(shí)部進(jìn)行處理了,轉(zhuǎn)換為相應(yīng)的代碼邏輯則為:首先將的實(shí)部與的實(shí)部相乘,再與的虛部與的虛部相乘的結(jié)果作差,這個(gè)結(jié)果作為運(yùn)算結(jié)果的實(shí)部;之后,將將的實(shí)部與的虛部相乘,再與的虛部與的實(shí)部相乘的結(jié)果求和,這個(gè)結(jié)果作為運(yùn)算結(jié)果的虛部。重要部分的代碼在附錄中。4.2.4乘法器模塊此模塊命名為mult32_24,主要是基本蝶形結(jié)模塊進(jìn)行調(diào)用,用于對輸入數(shù)據(jù)進(jìn)行乘法運(yùn)算。此方案實(shí)現(xiàn)有符號數(shù)的乘法運(yùn)算功能,其中本模塊原理圖如下:圖4-4mult32_24模塊的RTL圖Fig.4-4RTLdiagramofthemult32_24module1)輸入信號:clk,rst2)輸入數(shù)據(jù):mult_a//因數(shù)mult_b//因數(shù)輸出數(shù)據(jù):mult_out//積乘法器模塊設(shè)計(jì)復(fù)雜,分多級流水線,輸入數(shù)據(jù)要經(jīng)過層層處理,連線型變量特別多,每級都有相應(yīng)的判斷語句,這樣的設(shè)計(jì)方案可以節(jié)約邏輯資源,但層次較多,數(shù)據(jù)之間的傳導(dǎo)需要謹(jǐn)慎的處理。本模塊部分代碼詳見附錄。4.2.5數(shù)據(jù)輸出處理模塊此模塊命名為put_out_unit,主要對FFT運(yùn)算后的數(shù)據(jù)進(jìn)行處理,定義一個(gè)變量choose,用于判斷是FFT運(yùn)算或是IFFT運(yùn)算。1)當(dāng)choose為低電平時(shí),進(jìn)行FFT數(shù)據(jù)變換,即從上一模塊接收到的數(shù)據(jù)不變直接輸出。2)當(dāng)choose為高電平時(shí),對輸入數(shù)據(jù)進(jìn)行IFFT變換的處理,將從上一模塊接收到的數(shù)據(jù)取共軛,即虛部部分乘以-1,再乘1/N=1/8后輸出。1)輸入信號:clk,rst,choose2)輸入數(shù)據(jù):y0_re~y15_re//本模塊輸入數(shù)據(jù)實(shí)部y0_im~y15_im//本模塊輸入數(shù)據(jù)虛部3)輸出數(shù)據(jù):data0_re_out~data15_re_out//輸出數(shù)據(jù)實(shí)部data0_im_out~data15_im_out//輸出數(shù)據(jù)虛部若復(fù)位信號低電平時(shí),所有輸出值為0,部分語句如下:data0_re_out<=24'b0;data0_im_out<=24'b0;······data15_re_out<=24'b0;data15_im_out<=24'b0; 若choose為低電平時(shí),判斷為FFT運(yùn)算,即將所有輸入數(shù)據(jù)賦值給輸出數(shù)據(jù),可用如下語句實(shí)現(xiàn):data0_re_out<=y0_re;data0_im_out<=y0_im;······data15_re_out<=y15_re;data15_im_out<=y15_im; 若choose為高電平時(shí),判斷為IFFT運(yùn)算,將輸入數(shù)據(jù)的虛部值乘-1,再乘1/N=1/16,則可得到IFFT的運(yùn)算結(jié)果。其中將虛部數(shù)據(jù)乘-1實(shí)現(xiàn)代碼如下:zz0_real<=y0_re;zz0_imag<=~y0_im+24'd1;······zz15_real<=y15_re;zz15_imag<=~y15_im+24'd1;之后所有數(shù)據(jù)乘1/N=1/16的代碼如下:data0_re_out<=zz0_real>>>4;data0_im_out<=zz0_imag>>>4;······data15_re_out<=zz15_real>>>4;data15_im_out<=zz15_imag>>>4;因?yàn)橐獙?shí)現(xiàn)1/N=1/16的計(jì)算,因?yàn)?6=2^4,所以可用移位運(yùn)算符進(jìn)行移位。每向右移一位相當(dāng)于數(shù)據(jù)乘1/2,所以根據(jù)設(shè)計(jì)要求需要將數(shù)據(jù)左移4位;其次,考慮到整個(gè)設(shè)計(jì)中包含正數(shù)和負(fù)數(shù),需要考慮最高位的情況,當(dāng)最高位為0時(shí)表示正數(shù),當(dāng)最高位為1時(shí)表示負(fù)數(shù)。所以選擇使用>>>運(yùn)算符,則在進(jìn)行移位運(yùn)算時(shí),若該數(shù)為正數(shù),在運(yùn)算數(shù)據(jù)的高位補(bǔ)0,若該數(shù)為負(fù)數(shù),則在數(shù)據(jù)的高位補(bǔ)1,同時(shí)使用regsigned定義需要進(jìn)行移位的變量。5仿真分析5.1各個(gè)子模塊仿真這部分仿真是單獨(dú)對模塊添加各自的激勵(lì)文件,單獨(dú)測試各個(gè)模塊的功能。這種方式可以一一檢驗(yàn)各模塊功能是否正確,方便對設(shè)計(jì)進(jìn)行排查錯(cuò)誤,并高效完成修改。5.1.1數(shù)據(jù)輸入處理模塊仿真本模塊功能是將輸入數(shù)據(jù)進(jìn)行不變或共軛處理。若choose為低電平,則數(shù)據(jù)輸出與輸入一致;若choose為高電平,則輸出代表實(shí)部的值butt16_re0~butt16_re15為其本身,虛部的值butt16_im0~butt16_im15為其相反數(shù)。1)FFT運(yùn)算模式在激勵(lì)文件中設(shè)定輸入初始值:choose=0;輸入數(shù)據(jù)實(shí)部虛部都設(shè)為1。圖5-1put_in_unit模塊仿真圖1Fig.5-1thesimulation1ofput_in_unitmodule圖5-2put_in_unit模塊仿真圖2Fig.5-2thesimulation1ofput_in_unitmodule此仿真結(jié)果輸出值全為1,符合功能:choose低電平時(shí),輸出數(shù)據(jù)與輸入數(shù)據(jù)一致。2)IFFT運(yùn)算模式在激勵(lì)程序代碼中,重新設(shè)定輸入初始值:choose=1;輸入16個(gè)數(shù)據(jù)的實(shí)部虛部仍舊都設(shè)為1。圖5-3put_in_unit模塊仿真圖3Fig.5-3thesimulation3ofput_in_unitmodule圖5.4put_in_unit模塊仿真圖4Fig.5-4thesimulation4ofput_in_unitmodule仿真結(jié)果實(shí)部不變,虛部為相反數(shù),符合傅里葉反變換時(shí)對輸入數(shù)據(jù)處理的功能要求:當(dāng)choose=1時(shí),實(shí)現(xiàn)取共軛功能(虛部乘-1)。5.1.2FFT運(yùn)算模塊仿真本模塊實(shí)現(xiàn)FFT運(yùn)算功能,對輸入數(shù)據(jù)進(jìn)行FFT運(yùn)算。在仿真激勵(lì)文件中設(shè)定輸入初始值為實(shí)序列[10203040506070801020304050607080],首先用MATLAB計(jì)算理論值為:720.00,0,-80.00+193.14i,0,-80.00+80.00i,0,-80.00+33.14i,0,-80.00,0,-80.00-33.14i,0,-80.00-80.00i,0,-80.00-193.14i,0圖5-5FFT_16_unit模塊仿真圖1Fig.5-5thesimulation1ofFFT_16_unitmodule圖5-6FFT_16_unit模塊仿真圖2Fig.5-6thesimulation2ofFFT_16_unitmodule對比仿真結(jié)果和理論值,數(shù)據(jù)近似正確,保留數(shù)據(jù)的整數(shù)部分,結(jié)果存在一定的誤差。5.1.3基本蝶形結(jié)模塊仿真這一模塊是基本蝶形結(jié)運(yùn)算,可以看做N=2的蝶形運(yùn)算,實(shí)現(xiàn)蝶形變換功能。在仿真文件中設(shè)兩個(gè)參加蝶形運(yùn)算的數(shù)據(jù)為[1020],計(jì)算蝶形結(jié)系數(shù)——旋轉(zhuǎn)因子為1,將其放大2^13倍后的值為8192,在仿真文件中輸入初始值。已利用MATLAB計(jì)算其理論輸出結(jié)果為y=30,-10。仿真結(jié)果與理論值相等,符合功能要求。圖5-7butterfly_2模塊仿真圖Fig.5-7thesimulationofbutterfly_2module5.1.4乘法器模塊仿真完成輸入數(shù)據(jù)的乘法運(yùn)算,設(shè)定初始值的兩個(gè)輸入數(shù)據(jù)為10,20,因?yàn)槔碚撝?0*20=200,與仿真結(jié)果相等,所以此模塊可實(shí)現(xiàn)乘法功能。圖5-8mult32_24模塊仿真圖Fig.5-8thesimulationofmult32_24module5.1.5數(shù)據(jù)輸出處理模塊仿真1)FFT運(yùn)算(choose=0,輸入數(shù)據(jù)為160)圖5-9put_out_unit模塊仿真圖1Fig.5-9thesimulation1ofput_out_unitmodule圖5-10put_out_unit模塊仿真圖2Fig.5-10thesimulation2ofput_out_unitmodule因?yàn)闉镕FT運(yùn)算模式,對輸入輸出直接連接賦值,所以數(shù)據(jù)的輸出應(yīng)和輸入結(jié)果一致。觀察仿真結(jié)果,符合功能要求。實(shí)際上,同數(shù)據(jù)輸入處理模塊,它只是為了對FFT運(yùn)算的輸入和輸出端口的數(shù)據(jù)做了特殊處理,達(dá)成IFFT模式的運(yùn)算處理。也可以在之后的頂層模塊仿真中對比數(shù)據(jù),驗(yàn)證這個(gè)方法。2)IFFT模式在本模塊仿真文件中,設(shè)定輸入值choose為1,所有輸入數(shù)據(jù)都為160。仿真輸出結(jié)果如下:圖5-11put_out_unit模塊仿真圖3Fig.5-11thesimulation3ofput_out_unitmodule圖5-12put_out_unit模塊仿真圖4Fig.5-12thesimulation4ofput_out_unitmodule觀察仿真結(jié)果,因?yàn)槭荌FFT模式,所以需要對代表虛部的數(shù)據(jù)進(jìn)行共軛處理,并將所有實(shí)部、虛部數(shù)據(jù)乘1/N=1/16,得到結(jié)果與仿真結(jié)果一致,所以該模塊功能可實(shí)現(xiàn)。5.2整體仿真分析對頂層模塊仿真,將仿真所得數(shù)據(jù)與用MATLAB產(chǎn)生的理論值進(jìn)行對比,判斷設(shè)計(jì)正確性。5.2.1MATLAB計(jì)算:輸入序列:x=[10203040506070801020304050607080],所得值在下表中:表5-1FFT和IFFT運(yùn)算所得的理論值Tab.5-1TableoftheoreticalvaluesobtainedbyFFTandIFFToperationsFFT結(jié)果720.000-80.00+193.14i0-80.80+80.00i0-80.00+33.14i0-80.000-80.00-33.14i0-80.00-80.00i0-80.00-193.14i0IFFT結(jié)果45.0000-5.0000-12.0711i0-5.0000-5.0000i0-5.0000-2.0711i0-5.00000-5.0000+2.0711i0-5.0000+5.0000i0-5.0000+12.0711i05.2.2ModelSim仿真結(jié)果1)FFT運(yùn)算在仿真激勵(lì)文件中,設(shè)輸入序列的數(shù)據(jù)為[10203040506070801020304050607080],且設(shè)choose=0。圖5-13頂層模塊的FFT仿真圖1Fig.5-13theFFTsimulation1oftopmodule圖5-14頂層模塊的FFT仿真圖2Fig.5-14theFFTsimulation2oftopmodule通過對比數(shù)據(jù)可知,仿真結(jié)果與理論數(shù)值基本一致,可實(shí)現(xiàn)FFT運(yùn)算功能。由于在程序中對旋轉(zhuǎn)因子取了近似值,還是取整運(yùn)算,所以存在一定的誤差。因?yàn)榇舜握w頂層模塊的取值與對子模塊FFT運(yùn)算模塊仿真部分的取值一樣,所以可以看出,成功驗(yàn)證了數(shù)據(jù)輸入處理模塊和數(shù)據(jù)輸出處理模塊對FFT運(yùn)算并無影響,這都是為了在一個(gè)設(shè)計(jì)中將兩個(gè)功能結(jié)合到一起,并能實(shí)現(xiàn)FFT運(yùn)算和IFFT運(yùn)算的功能的選擇,同時(shí)保證
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人才隊(duì)伍課題申報(bào)書
- 產(chǎn)地供應(yīng)合同范本
- 上海學(xué)生項(xiàng)目課題申報(bào)書
- 合伙購車運(yùn)營合同范本
- 北京正規(guī)賣房合同范本
- 公園綠化合同范本
- 醫(yī)藥廠家銷售合同范例
- 化妝品加盟店合同范本
- 農(nóng)村購山地合同范本
- 合同維修合同范本
- 中國中材海外科技發(fā)展有限公司招聘筆試沖刺題2025
- 兩層鋼結(jié)構(gòu)廠房施工方案
- 班級凝聚力主題班會(huì)12
- 初中語文“經(jīng)典誦讀與海量閱讀”校本課程實(shí)施方案
- Gly-Gly-Leu-生命科學(xué)試劑-MCE
- 翻斗車司機(jī)安全培訓(xùn)
- 零售業(yè)的門店形象提升及店面管理方案設(shè)計(jì)
- 高速公路40m連續(xù)T梁預(yù)制、架設(shè)施工技術(shù)方案
- 《論教育》主要篇目課件
- 外籍工作人員聘用合同范本
- 大學(xué)生就業(yè)指導(dǎo)教學(xué)-大學(xué)生就業(yè)形勢與政策
評論
0/150
提交評論