當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]摘要 采用改進(jìn)并行分布式算法設(shè)計(jì)了一種16抽頭FIR數(shù)字低通濾波器,首先用Matlab工具箱中的FDATool設(shè)計(jì)濾波器系數(shù),然后使用硬件描述語(yǔ)言Verilog HDL和原理圖,實(shí)現(xiàn)了子模塊和系統(tǒng)模塊設(shè)計(jì),在Matlab與QuartusII中對(duì)

摘要 采用改進(jìn)并行分布式算法設(shè)計(jì)了一種16抽頭FIR數(shù)字低通濾波器,首先用Matlab工具箱中的FDATool設(shè)計(jì)濾波器系數(shù),然后使用硬件描述語(yǔ)言Verilog HDL和原理圖,實(shí)現(xiàn)了子模塊和系統(tǒng)模塊設(shè)計(jì),在Matlab與QuartusII中對(duì)系統(tǒng)模塊進(jìn)行聯(lián)合仿真。仿真結(jié)果表明,設(shè)計(jì)系統(tǒng)性能穩(wěn)定,濾波效果良好,且實(shí)用性較強(qiáng)。

數(shù)字濾波器分為有限沖激響應(yīng)(FIR)和無(wú)限沖激響應(yīng)(IIR)兩種。其中,FIR數(shù)字濾波器在實(shí)現(xiàn)任意幅頻特性的同時(shí)能夠保證嚴(yán)格的線性相位特性。由于其單位沖激響應(yīng)是有限的,沒(méi)有輸出到輸入的反饋,因此系統(tǒng)是穩(wěn)定系統(tǒng)。FIR數(shù)字濾波器在通信、圖像處理、模式識(shí)別等領(lǐng)域有著廣泛應(yīng)用。

在實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)合,相比于DSP芯片或?qū)S眯酒捎每删幊绦酒?strong>FPGA實(shí)現(xiàn)FIR數(shù)字濾波器具有高速、高精度、高靈活性的優(yōu)點(diǎn)。數(shù)字濾波器的設(shè)計(jì)方法有多種,常用的有窗函數(shù)法、頻率抽樣法和最佳一致逼近法,但這些設(shè)計(jì)方法在設(shè)計(jì)濾波器尤其是高階濾波器時(shí)工作量較大。而利用Matlab信號(hào)處理工具箱進(jìn)行數(shù)字濾波器的設(shè)計(jì),能夠減少工作量,提高設(shè)計(jì)效率。文中首先使用Matlab設(shè)計(jì)濾波器系數(shù),然后利用FPGA實(shí)現(xiàn)系統(tǒng)。

在FPGA中,進(jìn)行傳統(tǒng)乘法運(yùn)算占用大量的硬件資源,分布式算法利用ROM查找表將固定系數(shù)的乘累加運(yùn)算轉(zhuǎn)換成查表操作,避免了乘法運(yùn)算,查表后的數(shù)據(jù)執(zhí)行的都是簡(jiǎn)單的加法運(yùn)算,可以較大程度地提高運(yùn)算速度。分布式算法分為全串行分布式算法和全并行分布式算法,全串行分布式算法資源消耗少但運(yùn)算速度慢,全并行分布式算法資源消耗少但運(yùn)算速度快。兼顧運(yùn)算速度與資源消耗,本文采用改進(jìn)并行分布式算法進(jìn)行FIR數(shù)字濾波器設(shè)計(jì)。

1 FIR數(shù)字濾波器基本理論

對(duì)于FIR數(shù)字濾波器系統(tǒng),其沖激響應(yīng)是有限長(zhǎng)的,系統(tǒng)函數(shù)可記為

式中,x(n)是采樣輸入序列;h(i)是濾波器系數(shù);N是濾波器抽頭數(shù);y(n)是濾波器輸出序列。

2 分布式算法

分布式算法(Distributed Arithmetic,DA)是一項(xiàng)重要的FPGA技術(shù),廣泛地應(yīng)用在卷積、相關(guān)、DFF計(jì)算和RNS反演映射等乘積和中。有關(guān)DA算法的討論可以追溯到1973年Croisier發(fā)表的論文,而DA算法的推廣工作則由Peled和Liu完成。雖然DA算法較早被提出,但是一直到可編程門(mén)陣列的查找表結(jié)構(gòu)出現(xiàn),這種算法才重新受到重視,成為一種重要的FIR數(shù)字濾波器設(shè)計(jì)方法。

DA算法是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法,其與傳統(tǒng)實(shí)現(xiàn)乘加運(yùn)算算法的不同之處在于執(zhí)行部分積運(yùn)算的先后順序不同。DA算法在完成乘加功能時(shí)是通過(guò)將各輸入數(shù)據(jù)每一位產(chǎn)生的部分積預(yù)先進(jìn)行相加形成相應(yīng)部分積,然后再對(duì)相應(yīng)部分積進(jìn)行加權(quán)累加形成最終結(jié)果;而傳統(tǒng)算法是等到所有乘積產(chǎn)生之后再進(jìn)行相加來(lái)完成乘加運(yùn)算。與傳統(tǒng)算法相比,DA算法可以大幅減少硬件電路規(guī)模,易實(shí)現(xiàn)流水線處理,提高了電路的執(zhí)行速度。DA算法原理如下。

對(duì)于有符號(hào)系統(tǒng),采用補(bǔ)碼實(shí)現(xiàn),輸入序列x(n)表示為

式中,y(n)是輸出序列;x(n)是輸入序列;h(i)是濾波器系數(shù);B是x(n)二進(jìn)制補(bǔ)碼的位數(shù);xb(n)是x(n)的第6位,N是濾波器抽頭數(shù)。

本文采用改進(jìn)并行DA算法進(jìn)行FIR數(shù)字濾波器設(shè)計(jì),通過(guò)引入倍頻模塊減少LUT的個(gè)數(shù)來(lái)節(jié)省資源消耗,同時(shí)保證運(yùn)算速度。該算法僅使用一個(gè)LUT并結(jié)合流水線寄存器的使用來(lái)提高系統(tǒng)運(yùn)算速度。算法原理是讓輸入數(shù)據(jù)每一個(gè)相同位同時(shí)尋址,將尋址內(nèi)容進(jìn)行相應(yīng)的移位累加操作得到最終輸出,算法如圖1所示。

3 濾波器系數(shù)設(shè)計(jì)與量化

文中濾波器系數(shù)通過(guò)Matlab工具箱中的FDATool進(jìn)行設(shè)計(jì),濾波器設(shè)計(jì)指標(biāo)如下。濾波器類(lèi)型:低通;設(shè)計(jì)方法:FIR Kaiser窗,Beta= 0.5;階數(shù):15階;采樣頻率:10 MHz;截止頻率:1.5 MHz;輸入數(shù)據(jù)寬度:12位;濾波器系數(shù)寬度:12位。

由于FPGA只能進(jìn)行定點(diǎn)數(shù)運(yùn)算,需要將浮點(diǎn)濾波器系數(shù)量化為定點(diǎn)數(shù)。將h(n)擴(kuò)大210倍,然后表示為12位二進(jìn)制補(bǔ)碼。濾波器系數(shù)與量化補(bǔ)碼如表1所示。

4 FPGA實(shí)現(xiàn)

用FPGA設(shè)計(jì)FIR數(shù)字濾波器時(shí),利用濾波器系數(shù)的對(duì)稱(chēng)性,將16抽頭設(shè)計(jì)轉(zhuǎn)化為8抽頭設(shè)計(jì)。首先將輸入數(shù)據(jù)存入移位寄存器中,通過(guò)延時(shí)進(jìn)行預(yù)相加,然后以預(yù)相加結(jié)果數(shù)據(jù)的相同位的值為地址進(jìn)行查表操作。根據(jù)分布式算法公式,依次進(jìn)行移位累加操作,但對(duì)數(shù)據(jù)最高位進(jìn)行移位相減操作才能得到正確的濾波輸出。整個(gè)系統(tǒng)由時(shí)鐘控制模塊,數(shù)據(jù)輸入模塊,查找表模塊,移位累加模塊以及截位模塊組成。

4.1 時(shí)鐘控制模塊

采用的FPGA芯片是Altera公司的CycloneII系列EP2C5T144C6,其時(shí)鐘晶振是50 MHz。為提高系統(tǒng)運(yùn)算速度,由于輸入數(shù)據(jù)是12位,數(shù)據(jù)輸入模塊一次輸出8位地址,因此需要設(shè)計(jì)一個(gè)采樣信號(hào)12倍頻模塊,即得到120 MHz信號(hào)。時(shí)鐘控制模塊主要包括采樣信號(hào)12倍頻模塊和采樣信號(hào)模塊。其中,采樣信號(hào)倍頻模塊利用QuartusII中PLL實(shí)現(xiàn),采樣信號(hào)模塊利用倍頻模塊通過(guò)硬件描述語(yǔ)言Verilog HDL編程分頻實(shí)現(xiàn)。

4.2 數(shù)據(jù)輸入模塊

該模塊的功能是將輸入數(shù)據(jù)轉(zhuǎn)化為8位查找表的地址,包括移位寄存、預(yù)相加和并串轉(zhuǎn)換。首先將數(shù)據(jù)存入移位寄存器中,通過(guò)延時(shí)進(jìn)行預(yù)相加,最后對(duì)預(yù)相加結(jié)果進(jìn)行并串轉(zhuǎn)換。

4.3 查找表模塊

查找表模塊可以利用QuartusII中的lpm_rom實(shí)現(xiàn),但需要手工計(jì)算每個(gè)地址對(duì)應(yīng)的數(shù)據(jù)輸出,由于輸入8位地址數(shù)據(jù),使用lpm_rom實(shí)現(xiàn)查找表的計(jì)算量過(guò)大,所以該模塊通過(guò)硬件描述語(yǔ)言Verilog HDL編程實(shí)現(xiàn)。模塊還可繼續(xù)拆分為4輸入或2輸入查找表。

4.4 移位累加模塊

系統(tǒng)核心模塊,主要對(duì)查找表模塊輸出數(shù)據(jù)進(jìn)行移位累加操作,由于輸入12位數(shù)據(jù),因此要進(jìn)行12次移位操作,前11次移位進(jìn)行加法操作,第12次移位進(jìn)行減法操作。為使累加結(jié)果不溢出,要進(jìn)行冗余設(shè)計(jì)。

若輸入數(shù)據(jù)與濾波器系數(shù)均為B位,對(duì)于有符號(hào)系統(tǒng),移位累加器長(zhǎng)度M=2B+log2N-1,其中N為濾波器抽頭數(shù)。該移位累加模塊輸出數(shù)據(jù)寬度為27位。

4.5 截位模塊

移位累加模塊輸出27位數(shù)據(jù),由于其對(duì)應(yīng)的10進(jìn)制數(shù)值較大,不便于分析,因此對(duì)移位累加模塊的輸出數(shù)據(jù)進(jìn)行截位。截位模塊的功能是通過(guò)移位截取27位輸入數(shù)據(jù)的高15位。

5 Matlab與QuartusII聯(lián)合仿真

FIR數(shù)字濾波器輸入與輸出均是數(shù)字信號(hào),通過(guò)Matlab編程模擬A/D轉(zhuǎn)換得到濾波器輸入數(shù)據(jù),然后將輸入數(shù)據(jù)送到濾波器輸入端口并進(jìn)行仿真得到輸出波形,最后再通過(guò)Matlab編程模擬D/A轉(zhuǎn)換將輸出數(shù)字信號(hào)以模擬信號(hào)波形形式展現(xiàn)。具體步驟如下:首先利用Matlab編寫(xiě)得到*.mif文件的M程序,輸入0.5 MHz和2.5 MHz正弦相加信號(hào),幅度均為15。然后用QuartusII中l(wèi)pm_rom模塊得到濾波器輸入數(shù)據(jù),再用QuartusII對(duì)系統(tǒng)模塊進(jìn)行仿真,將仿真波形*.vwf文件另存為*.tbl文件,系統(tǒng)模塊仿真波形如圖3所示,最后用Matlab讀取該文件中的數(shù)據(jù),得到采樣信號(hào)時(shí)域波形與頻譜。

6 結(jié)束語(yǔ)

采用改進(jìn)并行DA算法設(shè)計(jì)了一個(gè)16抽頭FIR數(shù)字低通濾波器,與全并行DA算法相比,減少了LUT的個(gè)數(shù),同時(shí)引入倍頻模塊兼顧了運(yùn)算速度。仿真結(jié)果表明,設(shè)計(jì)系統(tǒng)性能穩(wěn)定、濾波效果良好、實(shí)用性較強(qiáng)。同時(shí),利用改進(jìn)并行DA算法設(shè)計(jì)的FIR數(shù)字低通濾波器,其系統(tǒng)速度得到大幅提高,由于省去乘法器的使用,減少了LUT的個(gè)數(shù),邏輯單元的消耗量也大幅降低。該模塊可以作為其他設(shè)計(jì)的子模塊,也可用于設(shè)計(jì)更高階數(shù)的濾波器。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉