freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于modelsim的fft算法的設(shè)計(jì)學(xué)士學(xué)位論文(參考版)

2025-07-06 15:03本頁面
  

【正文】 blkb=1。 wrda=datain_wr。 blka=datain_blk。 end st5 : begin //finish the cfft process to ram1,start to output the result cf_address_gen_en=0。 addrb[4:0]=addr_cf2[4:0]。 dinb[35:0]=0。// ram signal blka=blk_cf。 end st4 : begin // start cfft to process the ram cf_address_gen_en=1。 wrdb=wr_ram。 blkb=blk_cf。 wrda=wr_ram。 //join the ram to cfft blka=blk_cf。 end st3 : begin // start cfft to process the ram cf_address_gen_en=1。 wrdb=1。 //disable the b block of the ram1 blkb=1。 wrda=datain_wr。 blka=datain_blk。 end st2 : begin// write the first bank data to ram1 cf_address_gen_en=0。 wrdb=1。 blkb=1。 wrda=datain_wr。 blka=datain_blk。 end st1 : begin// write the data to ram cf_address_gen_en=0。 wrdb=1。 blkb=1。 wrda=1。// ram signal blka=1。 endcase end always(posedge clk) begin case(state) st0 : begin //start state cf_address_gen_en=0。 else state=st5。 else state=st4。 end st4: begin // start the cfft ram1。 if(last_butterfly) state=st4。 else state = st2。 end st1: state=st2。 else case(state) st0 : begin //initial state if(d_valid) state = st1。 datain_blk=1。 datain_blk=0。 datain_blk=1。 else if(valid) datain_t[4:0]=datain_t[4:0]+1。 always(posedge clk or negedge rst_n) //input datain counter。 if(!rst_n) datain[31:0]=0。 else valid=d_valid。 always(posedge clk or negedge rst_n) //input datain_valid sync。 assign address_b[3:0]=(dataout_valid)?addrb[4:1]:439。 assign address_a[3:0]=(dataout_valid)?addra[4:1]:439。 assign dataout_b[13:0]=(dataout_valid)?{dataout_cf2[35],dataout_cf2_t2[12:0]}:1439。 assign dataout_a[13:0]=(dataout_valid)?{dataout_cf1[35],dataout_cf1_t2[12:0]}:1439。 assign dataout_cf1_t2[24:0]=dataout_cf1_t[24:0]slice_number[4:0]。 assigndataout_cf1_t[24:0]={dataout_cf1[35],dataout_cf1[35],dataout_cf1[35],dataout_cf1[35],dataout_cf1[35],dataout_cf1[35],dataout_cf1[35],dataout_cf1[35:18]}number[3:0]。b0。b0。 assign d_im_conj[15:0]=d_im[15:0]。amp。 理工大學(xué)學(xué)士學(xué)位論文 21 assign fft_finish=finish_butterfly。 wire last_butterfly。 wire fft_finish。 wire read_twiddle。 wire [3:0] address_w。 wire start_cfft。 reg [31:0] datain。//cfft address wire blk_cf,rd_ram,wr_ram。 wire [35:0] dataout_cf1,dataout_cf2。 reg cf_address_gen_en。 parameter [4:0] st0=0, st1=1, st2=2, st3=3, st4=4, st5=5, st6=6, st7=7, st8=8,st9=9,st10=10,st11=11,st12=12,st13=13。 reg [4:0] addra,addrb。 reg wrda,wrdb。 reg [4:0] datain_t。 assign d_re[15:0]=normal_re[15:0]。 wire [15:0] d_im。 wire d_valid。 output dataout_valid。 output [3:0] address_b。 output [3:0] address_a。 input startfft。 理工大學(xué)學(xué)士學(xué)位論文 20 input [15:0] normal_im。 input [4:0] slice_number。 input clk。其程序設(shè)計(jì)如下。如果輸入數(shù)據(jù)是連續(xù)的,那么一次 N 點(diǎn) FFT 運(yùn)算必須在下一組 N 點(diǎn)輸入數(shù)據(jù)輸入結(jié)束之前完成,這往往需要數(shù)倍于輸入數(shù)據(jù)時(shí)鐘的內(nèi)部運(yùn)算時(shí)鐘。若執(zhí)行一次蝶形運(yùn)算的時(shí)間為 T,則完成 N 點(diǎn) FFT 計(jì)算,所需的時(shí)間為N/2 log2NT。 蝶形運(yùn)算單元的設(shè)計(jì) 圖 給出了遞歸順序型 FFT 算法結(jié)構(gòu)框圖?;?2FFT 模塊設(shè)計(jì)主要由 6 個(gè)部分組成:蝶形運(yùn)算單元、存儲(chǔ)單元、地址生成單元、功能切換單元、塊浮點(diǎn)單元和時(shí)序控制單元 [4],如圖 所示??偟膩碚f,塊浮點(diǎn)數(shù)具有定點(diǎn)數(shù)的運(yùn)算速度,同時(shí)又有浮點(diǎn)數(shù)的計(jì)數(shù)思想,鑒于塊浮點(diǎn)數(shù)的這種優(yōu)點(diǎn),本課題選擇了塊浮點(diǎn)數(shù)的計(jì)數(shù)方式 [3]。為了保持?jǐn)?shù)據(jù)寬度不變,可以將所有 256個(gè)點(diǎn)的數(shù)值均除以 2, 然后寄存器中置入一個(gè)“ 1”,這樣通過增加一位寄存器,達(dá)到了既增加了數(shù)據(jù)的動(dòng)態(tài)范圍,又未增加數(shù)據(jù)寬度的目的。這一方法的初始輸入數(shù)據(jù)限制為 |x(n)|l,計(jì)算方式按定點(diǎn)方式進(jìn)行。 塊浮點(diǎn)數(shù)記數(shù)方法廣泛用于信號(hào)處理領(lǐng)域,如執(zhí)行 FFT變換,它消耗的硬件資源要比浮點(diǎn)數(shù)少得多。 塊浮點(diǎn)數(shù) 浮點(diǎn)數(shù)具有很大的動(dòng)態(tài)范圍,可以非常精確地表示一個(gè)數(shù)值。 這些誤差就使得利用 FPGA進(jìn)行數(shù)字信號(hào)處理的時(shí)候會(huì)產(chǎn)生有限字長(zhǎng)效應(yīng)。 當(dāng)利用 FPGA實(shí)現(xiàn)乘法計(jì)算的時(shí)候,例如計(jì)算兩個(gè) N位寬的二進(jìn)制數(shù)的乘積,乘積的理工大學(xué)學(xué)士學(xué)位論文 17 結(jié)果一般都會(huì)用 2N位寬的二進(jìn)制數(shù)表示,這個(gè)時(shí)候都會(huì)將結(jié)果進(jìn)行適當(dāng)?shù)纳嵛惶幚?,否則再進(jìn)行后面的運(yùn)算的話最終的結(jié)果的數(shù)據(jù)寬度將是難以想象的。模擬信號(hào)必須利用 A/D轉(zhuǎn)換成數(shù)字信號(hào)以后才能利用 FPGA處理。這里討論的為有符號(hào)數(shù)。數(shù)的定標(biāo)有 Q表示法和 S表示法兩種表示方法。這是因?yàn)閮蓚€(gè)絕對(duì)值小于 l的數(shù)相加,其結(jié)果不會(huì)大于或等于 2,所以最高符號(hào)位永遠(yuǎn)表示結(jié)果的正確符號(hào)。數(shù)的變形補(bǔ)碼定義為: [x]補(bǔ) =x 當(dāng) 2x≥O [x]補(bǔ) =4+x 當(dāng) 0x≥2 或用同余式表示為: [x]補(bǔ) =4+X (mod 4) 下式也同樣成立: [x]補(bǔ) +[y]補(bǔ) =[x+y]補(bǔ) (mod 4) 為了得到兩數(shù)變形補(bǔ)碼之和等于兩數(shù)和的變形補(bǔ)碼,同樣必須: 兩個(gè)符號(hào)位都看做數(shù)碼一樣參加運(yùn)算; 兩數(shù)進(jìn)行以 4為模的加法,即最高符號(hào)位上產(chǎn)生的進(jìn)位要丟掉。兩個(gè)負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù),稱為下溢。 運(yùn)算結(jié)果產(chǎn)生了溢出是發(fā)生錯(cuò)誤的原因。例如: x=+, y=+,那么 [x]補(bǔ) =, [y]補(bǔ) =,由補(bǔ)碼加法公式 [X]補(bǔ) +[Y]補(bǔ) =[X+Y]補(bǔ) 得: [x+y]補(bǔ) =,兩個(gè)正數(shù)相加的結(jié)果成為負(fù)數(shù),這顯然是錯(cuò)誤的。在運(yùn)算過程中如出現(xiàn)大于 1的現(xiàn)象,稱為“溢出”。 定點(diǎn)運(yùn)算 時(shí),當(dāng)運(yùn)算結(jié)果超出數(shù)的表示范圍,就發(fā)生溢出;而在浮點(diǎn)運(yùn)算時(shí),運(yùn)算結(jié)果超出尾數(shù)的表示范圍卻并不一定溢出,只有當(dāng)階碼也超出所能表示的范圍時(shí),才發(fā)生溢出。對(duì)于字長(zhǎng)相同的定點(diǎn)數(shù)與浮點(diǎn)數(shù)來說,浮點(diǎn)數(shù)雖然擴(kuò)大了數(shù)的表示范圍,但這是以降低精度為代價(jià)的,也就是數(shù)軸上各點(diǎn)的排列更稀疏了。 圖 DITFFT的順序輸入倒序輸出形式 理工大學(xué)學(xué)士學(xué)位論文 15 定點(diǎn)數(shù)的相關(guān)概念 定點(diǎn)數(shù)的定義 定點(diǎn)數(shù)指的是在二進(jìn)制數(shù)中小數(shù)點(diǎn)的位置是固定的數(shù)。因此在大型數(shù)據(jù)處理系統(tǒng)的 FFT算法中,較多采用的是圖 法。從圖中很容易看出它是一種順序輸入,倒序輸出的方式。 圖 形成倒序的樹狀圖 (N23) 理工大學(xué)學(xué)士學(xué)位論文 14 表 順序和倒序二進(jìn)制數(shù)對(duì)照表 順序 倒敘 十進(jìn)制數(shù) I 二進(jìn)制數(shù) 二進(jìn)制數(shù) 十進(jìn)制數(shù) J 0 000 000 0 1 001 100 4 2 010 010 2 3 011 110 6 4 100 001 1 5 101 101
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1