新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于XC2V1000型FPGA的FIR抽取濾波器的設(shè)計(jì)

基于XC2V1000型FPGA的FIR抽取濾波器的設(shè)計(jì)

作者: 時間:2015-01-06 來源:網(wǎng)絡(luò) 收藏

  4.1.1控制器(fir_controller)

本文引用地址:http://butianyuan.cn/article/267749.htm

  控制器是的核心模塊,有2種功能:接收輸入數(shù)據(jù),向其他模塊發(fā)送數(shù)據(jù)和控制信號。它根據(jù)加法器、乘法器和累加器的時序特性,規(guī)律地向加法器發(fā)送抽頭數(shù)據(jù),向乘法器發(fā)送系數(shù),向累加器發(fā)送控制信號,讓加法器、乘法器和累加器每個時鐘都完成指定的任務(wù),從而實(shí)現(xiàn)流水線操作??刂破饔肶HDL語言描述,用寄存器存放抽頭和系數(shù)。

  4.1.2加法器(adder18)

  加法器的輸入和輸出都是18bits,用VHDL語言描述實(shí)現(xiàn)。它有2個工作時鐘的延遲,在輸入數(shù)據(jù)準(zhǔn)備好的情況下,第一個時鐘得出相加結(jié)果,第二個時鐘把相加結(jié)果鎖存輸出。

  4.1.3乘法器(multl8)

  乘法器是18bits輸入和36bits輸出,用庫元件MULT18X18S和36bits鎖存器實(shí)現(xiàn)。MULT18Xl8S是XC2V1000自帶的18×18bits乘法器,單個時鐘就可完成乘法運(yùn)算;36bits鎖存器工作于時鐘的上升沿,用VHDL語言描述。乘法器(mult18)也有2個工作時鐘的延時,在輸入數(shù)據(jù)準(zhǔn)備好的情況下,第一個時鐘得出相乘結(jié)果,第二個時鐘把相乘結(jié)果鎖存輸出。加法器和乘法器采用鎖存輸出的結(jié)構(gòu),雖然增加了1個工作時鐘的延遲,但有利于穩(wěn)定的工作,提高可靠性。

  4.1.4累加器(acc36)

  36bits累加器用于累加乘法器的輸出,得出濾波結(jié)果。它有1個控制端口clr,當(dāng)clr為高電平時,輸出前一輪累加結(jié)果,并初始化開始新一輪累加;當(dāng)clr為低電平時.進(jìn)行累加運(yùn)算。累加器用VHDL語言描述。

  4.1.5數(shù)據(jù)截位器(signal_36-18)

  數(shù)據(jù)截位器用VHDL語言描述,用于把累加器的36位輸出進(jìn)行取舍處理,一般截掉數(shù)據(jù)低位部分,保留數(shù)據(jù)高位。為了對進(jìn)行功能仿真,這里截掉數(shù)據(jù)高18位,保留數(shù)據(jù)低18位。

  4.2 工作過程及功能仿真

  加法器、乘法器和累加器在控制器的作用下每個時鐘都要完成指定的任務(wù),從而形成流水線操作,實(shí)現(xiàn)抽取濾波。

  下面以抽取濾波器完成1次抽取濾波的全過程為例,說明抽取濾波器的工作過程。假設(shè)時鐘1、時鐘2、時鐘3和時鐘4控制器已接收了數(shù)據(jù)x(n-3)、x(n-2)、x(n-1)和x(n),那么,

  時鐘5:控制器向加法器發(fā)送數(shù)據(jù)x(n)和x(n-3);

  時鐘6:加法器進(jìn)行。x(n)+x(n-3)運(yùn)算;控制器向加法器發(fā)送數(shù)據(jù)x(n-1)和x(n-2);

  時鐘7:加法器進(jìn)行x(n-1)+x(n-2)運(yùn)算,輸出x (n)+x(n-3)運(yùn)算結(jié)果。控制器向乘法器發(fā)送系數(shù)h(0);

  時鐘8:加法器輸出x(n-1)+x(n-2)運(yùn)算結(jié)果,乘法器進(jìn)行h(0)[x(n)+x(n-3)]運(yùn)算,控制器向乘法器發(fā)送系數(shù)h(1) ;

  時鐘9:乘法器進(jìn)行h(1)[x(n-1)+x(n-2)]運(yùn)算,輸出h(0)[x(n)+x(n-3)1運(yùn)算結(jié)果??刂破飨蚶奂悠靼l(fā)送控制信號(clr為高電平);

  時鐘10:乘法器輸出h(1)[x(n-1)+x(n-2)]運(yùn)算結(jié)果。累加器初始化開始累加操作??刂破飨蚶奂悠靼l(fā)送控制信號(clr為低電平);

  時鐘11:累加器進(jìn)行累加運(yùn)算h(0)[x(n)+x(n-3)]+h(1)[x(n-1)+x(n-2)]??刂破飨蚶奂悠靼l(fā)送控制信號(clr為高電平),控制器輸出濾波數(shù)據(jù)有效信號(valid為高電平);

  時鐘12:累加器輸出h(0)[x(n)+x(n-3)]+h(1)[x(n-1)+x(n-2)]累加結(jié)果,并初始化開始新一輪累加操作。控制器輸出濾波數(shù)據(jù)無效信號(valid為低電平);

  以上就是抽取濾波器完成1次抽取濾波的全過程??梢?從數(shù)據(jù)x(n)輸入到濾波結(jié)果y(n)輸出需要8個工作時鐘。如果控制器不停地向加法器、乘法器和加法器發(fā)送抽頭、系數(shù)和控制信號,就會形成流水線操作,那么每2個時鐘,抽取濾波器就會輸出1個濾波結(jié)果。圖3是抽取濾波器的仿真波形圖,其中在控制器中設(shè)置系數(shù)h(0)=1和h(1)=2。

  

 

  4.3注意事項(xiàng)

  2個n位二進(jìn)制數(shù)相加,其和至少需要n+l位二進(jìn)制數(shù)才能正確表示。本設(shè)計(jì)中的加法器輸入輸出都是18位,為了防止加法器溢出,應(yīng)確保18位輸入數(shù)據(jù)x(n)的最高2位相同(都是符號位)。

  為了實(shí)現(xiàn)抽取濾波器的多級串聯(lián)結(jié)構(gòu),應(yīng)統(tǒng)一輸入數(shù)據(jù)有效信號enable和輸出數(shù)據(jù)有效信號valid的時序要求。本設(shè)計(jì)規(guī)定控制器在累加器輸出濾波結(jié)果數(shù)后下1個時鐘送出濾波結(jié)果有效信號,時寬為1個工作時鐘周期。

  5 設(shè)計(jì)特點(diǎn)

  采用此設(shè)計(jì)結(jié)構(gòu)實(shí)現(xiàn)抽取濾波器具有以下3個特點(diǎn):

  (1)節(jié)省片內(nèi)資源和提高資源使用效率

  Xilinx公司為了方便用戶設(shè)計(jì)濾波器,在IP核中集成了通用數(shù)字濾波器的設(shè)計(jì),但利用IP核生成的數(shù)字濾波器往往不能針對實(shí)際情況合理地利用片內(nèi)資源,造成資源浪費(fèi)。本設(shè)計(jì)中采用了流水線結(jié)構(gòu),所有功能模塊都滿負(fù)荷工作,沒有空閑等待時鐘,從而節(jié)省了片內(nèi)資源,提高了資源使用率。

  (2)可以實(shí)現(xiàn)抽取濾波器多級結(jié)構(gòu)

  針對抽取濾波器的輸出特性,可以采取相同的設(shè)計(jì)方法再設(shè)計(jì)一級抽取濾波器,對前一級輸出的數(shù)據(jù)再次抽取濾波,從而實(shí)現(xiàn)多級抽取濾波器結(jié)構(gòu)。

  (3)設(shè)計(jì)靈活且擴(kuò)展性強(qiáng)

  用寄存器存放抽頭和系數(shù)適用于濾波器階數(shù)較少的情況,如果需要用上百階的抽取濾波,最好用片內(nèi):RAM存放抽頭和系數(shù),這時只要稍加改動控制器的邏輯設(shè)計(jì)既可實(shí)現(xiàn)。在此基礎(chǔ)上,還可實(shí)現(xiàn)可編程抽取濾波器。

  6 結(jié)束語

  本文以實(shí)現(xiàn)抽取率為2的具有線性相位的3階FIR抽取濾波器為例,介紹了一種用XC2V1000型實(shí)現(xiàn)FIR抽取濾波器的設(shè)計(jì)方法。用該方法設(shè)計(jì)出的抽取濾波器靈活性強(qiáng)、資源利用率高,能廣泛應(yīng)用于數(shù)字接收領(lǐng)域。

濾波器相關(guān)文章:濾波器原理


fpga相關(guān)文章:fpga是什么


濾波器相關(guān)文章:濾波器原理


電源濾波器相關(guān)文章:電源濾波器原理


數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理

上一頁 1 2 下一頁

關(guān)鍵詞: FPGA 抽取濾波器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉