當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件

  1 并行流水結(jié)構(gòu)FIR的原理

  在用FPGA或?qū)S眉呻娐穼?shí)現(xiàn)數(shù)字信號(hào)處理算法時(shí),計(jì)算速度和芯片面積是兩個(gè)相互制約的主要問(wèn)題。實(shí)際應(yīng)用FIR濾波器時(shí),要獲得良好的濾波效果,濾波器的階數(shù)可能會(huì)顯著增加,有時(shí)可能會(huì)多達(dá)幾百階。因此,有必要在性能和實(shí)現(xiàn)復(fù)雜性之間做出選擇,也就是選擇不同的濾波器實(shí)現(xiàn)結(jié)構(gòu)。這里運(yùn)用

  在關(guān)鍵路徑插入寄存器的流水線結(jié)構(gòu)是提高系統(tǒng)吞吐率的一項(xiàng)強(qiáng)大的實(shí)現(xiàn)技術(shù),并且不需要大量重復(fù)設(shè)置硬件。流水線的類型主要分為兩種:算術(shù)流水線和指令流水線。對(duì)FPGA設(shè)計(jì),邏輯功能是面向特定應(yīng)用的,因此,采用需要較少額外控制邏輯的算術(shù)流水結(jié)構(gòu)。 流水線結(jié)構(gòu)就意味著將數(shù)字處理算法分割成時(shí)間上前后相連的多個(gè)處理片段.并且在段與段之間加信號(hào)寄存器來(lái)緩沖。這些段和段之間的緩沖就構(gòu)成了流水線。系統(tǒng)原來(lái)的運(yùn)算量被分割成k個(gè)部分,分別由流水線的k個(gè)段來(lái)外理。一旦前面的任務(wù)通過(guò)了流水線的第一段,新的任務(wù)就可以進(jìn)入流水線。設(shè)系統(tǒng)不加流水時(shí)的延時(shí)是D,則加上流水后,每隔D/k個(gè)時(shí)間單位就可以啟動(dòng)新的任務(wù)。要實(shí)現(xiàn)流水線的性能提升應(yīng)滿足3個(gè)條件:

  ①運(yùn)算量均勻分成延時(shí)一致的k個(gè)部分;

  ②輸人數(shù)據(jù)有大量重復(fù)的運(yùn)算;

  ③重復(fù)的運(yùn)算前后沒(méi)有相關(guān)性。

  并行結(jié)構(gòu)就是以重復(fù)相同的結(jié)構(gòu),對(duì)同時(shí)滿足并行運(yùn)算條件的并行算法在硬件上進(jìn)行實(shí)現(xiàn)的結(jié)構(gòu)。并行結(jié)構(gòu)運(yùn)用起來(lái)的主要難點(diǎn)如下:一,并行結(jié)構(gòu)占用更多的面積。二,相互并行的各計(jì)算部分在相互交換數(shù)據(jù)時(shí),需要額外的控制和互聯(lián)結(jié)構(gòu)。但是,在芯片工藝尺寸不斷減小的今天,并行結(jié)構(gòu)成為設(shè)計(jì)高速、低延時(shí)數(shù)據(jù)處理系統(tǒng)的首選。控制和互聯(lián)結(jié)構(gòu)的復(fù)雜性取決于算法和對(duì)算法的劃分方法。FIR濾波器本身就適合并行處理,但是對(duì)于占用時(shí)間和芯片面積都很大的乘法器來(lái)說(shuō),用全并行來(lái)實(shí)現(xiàn)FIR濾波器是不經(jīng)濟(jì)的。

  FIR濾波器以其設(shè)計(jì)簡(jiǎn)單、穩(wěn)定性好、方便實(shí)現(xiàn)、線性相位等優(yōu)點(diǎn)往往成為首選,甚至是唯一的選擇。FIR濾波器用差分方程表示為:


FIR濾波器直接型結(jié)構(gòu)如圖1。

2 實(shí)現(xiàn)方法

  現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)具有體系結(jié)構(gòu)和邏輯單元配置靈活、集成度高以及設(shè)計(jì)開(kāi)發(fā)周期短等優(yōu)點(diǎn),因此,選用FPGA來(lái)驗(yàn)證并實(shí)現(xiàn)本濾波器結(jié)構(gòu)。VHDL是一種硬件描述語(yǔ)言,主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,與FPGA相結(jié)合后,表現(xiàn)出更加強(qiáng)大與靈活的數(shù)字系統(tǒng)設(shè)計(jì)能力。用VHDL完成數(shù)字系統(tǒng)的功能描述,用FPGA來(lái)實(shí)現(xiàn)是一種實(shí)用方便的軟、硬件結(jié)合方式。從硬件描述語(yǔ)言到FPGA配置數(shù)據(jù)文件是由綜合工具以及布局、布線工具來(lái)完成的。數(shù)字系統(tǒng)的功能最終能否實(shí)現(xiàn)以及性能如何,取決于數(shù)字系統(tǒng)的算法結(jié)構(gòu),也取決于綜合工具、布局和布線工具,還有器件性能。但是,如果數(shù)字系統(tǒng)的算法設(shè)計(jì)不好,就會(huì)有更多的設(shè)計(jì)反復(fù)。這里對(duì)FIR濾波器提出一種處理時(shí)間和所用芯片面積可以互換的結(jié)構(gòu),在最初的設(shè)計(jì)時(shí),就能對(duì)其處理能力有所估計(jì),減少了設(shè)計(jì)的反復(fù)。

  對(duì)于FIR濾波器,Xilinx提供了兩個(gè)軟核,一個(gè)是基于分布式運(yùn)算的,另一個(gè)是基于單路的乘加運(yùn)算。對(duì)于大階數(shù)、高采樣率的濾波器,這兩種濾波器結(jié)構(gòu)都不太適合。

  為了提高FIR濾波器的吞吐量,可用并行加流水線的結(jié)構(gòu)來(lái)實(shí)現(xiàn)FIR濾波器,如圖2所示。流水結(jié)構(gòu)用于提高吞吐量率,并行結(jié)構(gòu)可以減小處理延時(shí)。利用流水和并行結(jié)構(gòu)調(diào)整濾波器性能使其滿足實(shí)際應(yīng)用要求。這里實(shí)現(xiàn)三級(jí)流水和二路并行的FIR濾波器。三級(jí)流水分別對(duì)應(yīng)取數(shù)、乘法和累加。主要由雙口RAM、乘法器、累加器、控制邏輯和流水線間的寄存器組成,還有數(shù)據(jù)寫(xiě)入模塊(圖中未畫(huà))。

  用兩塊RAM分別存放FIR系數(shù)和數(shù)據(jù)的前N個(gè)樣值點(diǎn),這兩個(gè)RAM要求有一個(gè)寫(xiě)數(shù)據(jù)和一個(gè)讀數(shù)據(jù)的雙端口RAM。數(shù)據(jù)寫(xiě)入模塊負(fù)責(zé)把所要濾波的數(shù)據(jù)輪換地寫(xiě)入兩個(gè)雙口RAM;FIR的系數(shù)也按偶數(shù)下標(biāo)和奇數(shù)下標(biāo)分別寫(xiě)入兩個(gè)系數(shù)RAM,實(shí)現(xiàn)時(shí)是預(yù)先配置的。在實(shí)現(xiàn)濾波時(shí),如圖1所示對(duì)數(shù)據(jù)移位是不現(xiàn)實(shí)的。因此,用交聯(lián)網(wǎng)絡(luò)結(jié)合控制模塊實(shí)現(xiàn)第一級(jí)流水--取數(shù),完成給下一級(jí)流水線正確送數(shù)的目的。第二級(jí)流水是兩個(gè)并行的乘法器,完成乘法運(yùn)算。第三級(jí)流水是一個(gè)累加器;在控制邏輯的控制下,對(duì)乘法器輸出結(jié)果進(jìn)行正確的累加運(yùn)算。

  完成結(jié)構(gòu)設(shè)計(jì)后要進(jìn)行時(shí)序設(shè)計(jì)。數(shù)據(jù)寫(xiě)入模塊的時(shí)鐘是根據(jù)數(shù)據(jù)源產(chǎn)生數(shù)據(jù)的速率而定的。而流水線的工作時(shí)鐘頻率要求大于數(shù)據(jù)產(chǎn)生時(shí)鐘頻率的N/2倍,N是濾濾器階數(shù),2是并行度。也就是要求流水線在數(shù)據(jù)產(chǎn)生的一個(gè)周期內(nèi)能完成一次FIR濾波器輸出的計(jì)算。其中的控制邏輯是流水線正常運(yùn)行的關(guān)鍵。數(shù)據(jù)流水線上的各種時(shí)序要求都要由其產(chǎn)生,包括讀數(shù)據(jù)地址、讀系數(shù)的地址、交聯(lián)網(wǎng)絡(luò)的控制和流水線結(jié)構(gòu)的輸出。其VHDL的端口描述如下:

  系數(shù)地址由計(jì)數(shù)器產(chǎn)生,計(jì)數(shù)器周期是濾波器的階數(shù)除以并行度,由first_data_address的第0位的邊沿觸發(fā),以重新從0開(kāi)始計(jì)數(shù)。數(shù)據(jù)RAM的地址加上計(jì)數(shù)器的值。兩個(gè)RAM地址因當(dāng)前輸入濾波數(shù)據(jù)的存放位置,可能相同也可能相差1。交聯(lián)網(wǎng)絡(luò)的控制信號(hào)是計(jì)數(shù)器的最低位。累加器輸出的使能信號(hào)是在計(jì)數(shù)到濾波器的階數(shù)時(shí)產(chǎn)生的,而后經(jīng)過(guò)延時(shí)給到累加器。累加器清零信號(hào)在這里產(chǎn)生要比累加器中用其他方法方便得多。

  交聯(lián)網(wǎng)絡(luò)也是設(shè)計(jì)的重點(diǎn)。對(duì)于并行處理結(jié)構(gòu),各單元之間數(shù)據(jù)的共享和通信是限制并行度的主要原因。在并行度為2的結(jié)構(gòu)中,只要輪流交換系數(shù)就可以了。但是對(duì)更高的并行度,這一通信網(wǎng)絡(luò)的延時(shí)是相當(dāng)大的,這也是把它單獨(dú)列為濾波器的流水線的一級(jí)的主要原因。

  還要注意的是:有符號(hào)數(shù)常用補(bǔ)碼表示。在對(duì)有符號(hào)數(shù)進(jìn)行擴(kuò)展時(shí),要擴(kuò)展最高位。對(duì)乘法器的輸出一般要進(jìn)行擴(kuò)展,以避免累加器溢出。

  對(duì)于乘加運(yùn)算,有一種分布式計(jì)算方法,也就是把乘法進(jìn)一步分解為部分和(二進(jìn)制系數(shù)的每一位和輸入數(shù)據(jù)相與的結(jié)果)。當(dāng)乘加運(yùn)算的一個(gè)乘數(shù)是已知常數(shù)時(shí),分布式乘加運(yùn)算會(huì)很節(jié)省資源。因?yàn)橄禂?shù)固定,與運(yùn)算的結(jié)果是在運(yùn)算前可知的,這樣零位與數(shù)據(jù)相與的結(jié)

果是不參與加運(yùn)算的,從而實(shí)現(xiàn)無(wú)乘法器的濾波器。這里不選用這種方法,原因有二:其一,分布式運(yùn)算將使濾波器難以重配:其二,基于FPGA的硬件乘法器較綜合得來(lái)的乘法器性能更佳。

  3 仿真及測(cè)試

  用VHDL語(yǔ)言描述全部電路模塊后,輸入系數(shù)1、2、3、4、5和數(shù)據(jù)-l、-2、3、4等進(jìn)行測(cè)試.用Mod-elsim進(jìn)行仿真,其結(jié)果如圖3所示。

  可以看出,模塊能正確進(jìn)行計(jì)算,從數(shù)據(jù)輸入到數(shù)據(jù)輸出約延時(shí)2個(gè)數(shù)據(jù)時(shí)鐘.這主要是前面的數(shù)據(jù)輸入模塊的延時(shí)。乘加部分采用數(shù)據(jù)時(shí)鐘的N/2倍,其延時(shí)與濾波器的階數(shù)成比例,但不會(huì)超過(guò)一個(gè)數(shù)據(jù)時(shí)鐘周期。

  然后,對(duì)VHDL描述就Xilinx的Spartan-3進(jìn)行綜合和測(cè)試。可以得出表1所示的測(cè)試結(jié)果,其中第一行為并行流水結(jié)構(gòu)所設(shè)計(jì)的濾波器,第二行是采用Xilinx提供的軟核設(shè)計(jì)的濾波器。

  可以看出,除了增加一個(gè)乘法器外,邏輯塊和觸發(fā)器都增加了一倍多。用這種結(jié)構(gòu)設(shè)計(jì)的濾波器面積增加了一倍,速度性能也提高了一倍。以上兩種濾波器可以應(yīng)用在語(yǔ)音信號(hào)處理中--讓語(yǔ)音信號(hào)通過(guò)低通濾波器以獲取語(yǔ)音的低頻分量。相對(duì)而言,并行流水結(jié)構(gòu)能實(shí)現(xiàn)比Xilinx軟核更高階數(shù)的濾波器。在聽(tīng)覺(jué)上,經(jīng)過(guò)兩種濾波器(相同階數(shù))的語(yǔ)音信號(hào)沒(méi)有太大差別。

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

  本文在運(yùn)算層次上,依據(jù)流水和并行運(yùn)算結(jié)構(gòu)實(shí)現(xiàn)直接型FIR濾波器。如果在設(shè)計(jì)濾波器時(shí),結(jié)合級(jí)聯(lián)型和直接型兩種濾波器結(jié)構(gòu),那么也能實(shí)現(xiàn)同樣的并行和流水的效果。實(shí)際上,還可在更低層次的乘法運(yùn)算時(shí),對(duì)部分和也用并行和流水結(jié)構(gòu)來(lái)實(shí)現(xiàn)。這些結(jié)構(gòu)的選擇都依據(jù)性能要求和實(shí)現(xiàn)的復(fù)雜性來(lái)具體確定。

  作為實(shí)現(xiàn)現(xiàn)代高性能處理器的方法,并行和流水結(jié)構(gòu)各有特點(diǎn)。并行是以面積換速度。流水是以延時(shí)換速度,采用這兩種結(jié)構(gòu),就能在面積、速度、延時(shí)之間靈活互換。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(liá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)越多用戶希望企業(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ā)表演講稱,數(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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