新聞中心

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

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

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

  1 引言

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

  廣泛應(yīng)用在數(shù)字接收領(lǐng)域,是數(shù)字下變頻器的核心部分。目前,的實(shí)現(xiàn)方法有3種:?jiǎn)纹ㄓ脭?shù)字濾波器集成電路、DSP和可編程邏輯器件。使用單片通用數(shù)字濾波器很方便,但字長(zhǎng)和階數(shù)的規(guī)格較少,不能完全滿足實(shí)際需要。使用DSP雖然簡(jiǎn)單,但程序要順序執(zhí)行,執(zhí)行速度必然慢。現(xiàn)場(chǎng)可編程門(mén)陣列()有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適用于數(shù)字信號(hào)處理,但長(zhǎng)期以來(lái),用實(shí)現(xiàn)比較復(fù)雜,其原因主要是中缺乏實(shí)現(xiàn)乘法運(yùn)算的有效結(jié)構(gòu)?,F(xiàn)在,FPGA集成了乘法器,使FPGA在數(shù)字信號(hào)處理方面有了長(zhǎng)足的進(jìn)步。本文介紹用Xilinx公司的XC2V1000型FPGA實(shí)現(xiàn)FIR抽取濾波器的設(shè)計(jì)方法。

  2 XC2V1000簡(jiǎn)介

  Virtex-Ⅱ系列是Xilinx公司近幾年研發(fā)的具有高性能、高速度和低功耗特點(diǎn)的新一代FPGA,一經(jīng)問(wèn)世就備受界內(nèi)人士的青睞。該系列FPGA基于IP核和專(zhuān)用模塊設(shè)計(jì),能夠?yàn)殡娦拧o(wú)線電、網(wǎng)絡(luò)、視頻和數(shù)字信號(hào)處理領(lǐng)域的應(yīng)用提供完整的解決方案。XC2V1000是Virtex-Ⅱ家族的一員,具有如下主要特點(diǎn):

  ●100萬(wàn)個(gè)系統(tǒng)門(mén);

  ●40×32個(gè)可配置邏輯單元(5120個(gè)slice);

  ●40個(gè)18×18 bits乘法器,1個(gè)工作時(shí)鐘內(nèi)即可完成乘法運(yùn)算;

  ●720Kbits RAM,可靈活配置(單口、雙口、有使能或無(wú)使能等);

  ●8個(gè)DCM(Digital Clock Manager)模塊;

  ●328個(gè)用戶I/O。

  此外,Xilinx公司還提供了功能強(qiáng)大的開(kāi)發(fā)平臺(tái)(ISE),開(kāi)發(fā)者可通過(guò)該平臺(tái)完成全部設(shè)計(jì)。

  3 抽取濾波器的工作原理

  抽取濾波器的工作原理是在濾波過(guò)程中實(shí)現(xiàn)抽取。對(duì)于抽取率為N的抽取濾波器而言,不是每進(jìn)入1個(gè)新數(shù)據(jù)就完成1次濾波運(yùn)算,然后再抽取,而是當(dāng)進(jìn)來(lái)N個(gè)數(shù)據(jù)時(shí)濾波器才完成1次濾波運(yùn)算,輸出1次濾波結(jié)果。抽取濾波器的結(jié)果和先濾波后抽取的結(jié)果是一致的,只是對(duì)于同樣的數(shù)據(jù),進(jìn)行濾波運(yùn)算的次數(shù)大大減少。在數(shù)字系統(tǒng)中采用抽取濾波器的最大優(yōu)點(diǎn)是增加了每次濾波的可處理時(shí)間,從而達(dá)到實(shí)現(xiàn)高速輸入數(shù)據(jù)的目的。下面以抽取率為2的具有線性相位的3階FIR抽取濾波器為例介紹抽取濾波器的實(shí)現(xiàn)過(guò)程。

  

 

  線性相位的FIR濾波器的系數(shù)具有某種對(duì)稱的性質(zhì)[1],3階Ⅱ類(lèi)FIR線性相位濾波器在數(shù)學(xué)上可以表示為

  

 

  其中,h(0)=h(3),h(1)=h(2)。其結(jié)構(gòu)如圖1所示。由圖1可見(jiàn),具有4個(gè)系數(shù)的3階Ⅱ類(lèi)FIR線性相位濾波器只需2次加法、2次乘法和2次累加就可以完成1次濾波運(yùn)算。如果IPGA工作時(shí)鐘為80MHz,輸入x(n)的數(shù)據(jù)率也為80MHz,那么經(jīng)2倍抽取后輸出y(n)為40MHz。也就是說(shuō),抽取濾波器每完成1次濾波運(yùn)算,需要2個(gè)工作時(shí)鐘。如果加法器、乘法器和累加器在單個(gè)時(shí)鐘內(nèi)就能完成1次功能運(yùn)算,那么只需1個(gè)加法器、1個(gè)乘法器和1個(gè)累加器采用流水線操作在2個(gè)工作時(shí)鐘內(nèi)就可以完成2次加法、2次乘法和2次累加運(yùn)算,就可以完成一次抽取濾波。

  4 具體實(shí)現(xiàn)

  4.1 結(jié)構(gòu)設(shè)計(jì)

  基于上述抽取濾波器的工作原理,筆者用XC2V1000實(shí)現(xiàn)了這個(gè)抽取率為2、具有線性相位的3階FIR抽取濾波器,利用原理圖和VHDL硬件描述語(yǔ)言共同完成源文件設(shè)計(jì)。圖2是抽取濾波器的頂層原理圖。其中,clock是工作時(shí)鐘,reset是復(fù)位信號(hào),enable是輸入數(shù)據(jù)有效信號(hào),data_in(17:0)是輸入數(shù)據(jù),data_out(17:0)是輸出數(shù)據(jù),valid是輸出數(shù)據(jù)有效信號(hào)。addei18是加法器模塊,mult18是乘法器模塊,acc36是累加器模塊,signal_36-18是數(shù)據(jù)截位器模塊,fir_controller是控制器模塊??刂破鞫〞r(shí)向加法器、乘法器和累加器發(fā)送數(shù)據(jù)或控制信號(hào),實(shí)現(xiàn)流水線操作。

  

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


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


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


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


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

上一頁(yè) 1 2 下一頁(yè)

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

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉