點擊上方藍(lán)字關(guān)注我們
本文將回顧對稱 FIR濾波器的高效 FPGA 實現(xiàn)的注意事項。
本文將推導(dǎo)對稱 FIR 濾波器的模塊化流水線結(jié)構(gòu)。我們將看到派生結(jié)構(gòu)可以使用XilinxFPGA 的 DSP 片有效地實現(xiàn)。
對稱 FIR 濾波器
讓我們考慮一個八階 FIR 濾波器。該濾波器的傳遞函數(shù)為
$$Y(z)= sum_{k=0}^{7} z^{-k} h_k X(z)$$
假設(shè)濾波器是對稱的,并且我們有 $$h_k = h_{7-k}$$ 對于 $$k=0, 1, dots ,7$$。因此,傳遞函數(shù)可以改寫為
$$Y(z)= (1+z^{-7})h_0X(z)+(z^{-1}+z^{-6})h_1X(z)+(z^{-2}+ z^{-5})h_2X(z)+ (z^{-3}+z^{-4})h_3X(z)$$
公式 1
我們可以將公式 1 實現(xiàn)為具有四級流水線的系統(tǒng),如圖 1 所示。此框圖的每個階段對應(yīng)于公式 1 的四項之一。
圖 1. 點擊放大。
由于我們插入了三個寄存器組來執(zhí)行流水線操作,因此我們預(yù)計會有三個時鐘周期的延遲。就 z 變換而言,圖 1 的輸出將是 $$z^{-3}$$ 乘以 $$Y(z)$$(如公式 1 所示)。換句話說,我們有 $$sig7=z^{-3}Y(z)$$。因此,我們有
$$egin{align}
sig7 &= z^{-3}(1+z^{-7})h_0X(z)
+z^{-3}(z^{-1}+z^{-6 })h_1X(z)
&+z^{-3}(z^{-2}+z^{-5})h_2X(z) + z^{-3}(z^{-3}+ z^{-4})h_3X(z)
end{對齊}$$
公式 2
現(xiàn)在,我們應(yīng)該將這四項中的每一項分配到圖 1 中的適當(dāng)階段。我們有輸出 sig7 的方程式,因此首先設(shè)計系統(tǒng)的階段會更容易。如果我們將術(shù)語 $$z^{-3}(1+z^{-7})h_0X(z)$$ 實現(xiàn)為階段 4,我們將必須級聯(lián)十個延遲元件來實現(xiàn) $$z^{- 10}$$。但是,如果我們將 $$z^{-3}(z^{-3}+z^{-4})h_3X(z)$$ 實現(xiàn)為階段 4,我們將只需要七個延遲元件的級聯(lián)。因此,我們將方程式 2 的一項實現(xiàn)為圖 1 的階段 4。這給出了圖 2 中所示的電路。
圖 2
因此,我們得到
$$sig6 = z^{-3}(1+z^{-7})h_0X(z)
+z^{-3}(z^{-1}+z^{-6})h_1X(z) +z^{-3}(z^{-2}+z^{-5})h_2X(z)$$
這使
$$sig5 = z^{-2}(1+z^{-7})h_0X(z)
+z^{-2}(z^{-1}+z^{-6})h_1X(z) +z^{-2}(z^{-2}+z^{-5})h_2X(z)$$
現(xiàn)在,就像第 4 階段一樣,我們可以推導(dǎo)出圖 1 的第 3 階段并獲得圖 3 中的電路。
圖 3
現(xiàn)在,我們有
$$sig3 = z^{-1}(1+z^{-7})h_0X(z)
+z^{-1}(z^{-1}+z^{-6})h_1X(z) $$
可以改寫為
$$sig3 = z^{-1}sig1
+z^{-1}(z^{-1}+z^{-6})h_1X(z)$$
在哪里
$$sig1 = (1+z^{-7})h_0X(z)$$
使用這兩個方程,我們可以找到圖 4 所示的終結(jié)構(gòu)。
圖 4.點擊放大。
請注意,對于級,包含一個零輸入的加法器,以強(qiáng)調(diào)原理圖的模塊化和規(guī)則結(jié)構(gòu)。此外,在 sig7 之后放置了一個額外的延遲元件。如您所見,虛線框內(nèi)的電路在結(jié)構(gòu)的每個階段都重復(fù)出現(xiàn)。這種模塊化結(jié)構(gòu)是理想的,因為它便于擴(kuò)展結(jié)構(gòu)以用于任意數(shù)量的抽頭。
Xilinx 在其高性能 FPGA 中將虛線框內(nèi)的電路實現(xiàn)為 DSP slice。這些DSP Slice可以高效級聯(lián);這就是為什么可以使用多個切片來實現(xiàn)給定的 FIR 濾波器的原因。在下一節(jié)中,我們將回顧 DSP48 Slice 的結(jié)構(gòu)。
賽靈思 DSP Slice
DSP Slice 是多種元素,實現(xiàn)圖 4 的 FIR 濾波器只是眾多可能應(yīng)用中的一種。圖 5 顯示了 Virtex-4 器件中 DSP48 片的框圖。
圖 5. Virtex-4 器件中 DSP48 片的框圖。圖片由賽靈思提供。點擊放大。
加法器/減法器的輸出方程為
$$Adder Out= Big ( Z pm (X+Y+C_{in}) Big )$$
其中 X、Y 和 Z 表示相應(yīng)多路復(fù)用器的輸出值。多路復(fù)用器允許我們?yōu)榧臃ㄆ?減法器選擇不同的輸入。乘法是 DSP Slice 的典型應(yīng)用。例如,我們可以配置 DSP48 slice 來實現(xiàn)以下等式:
$$Adder Out = C pm (A imes B + C_{in})$$
當(dāng)使用乘法器功能時,X 和 Y 多路復(fù)用器的輸出必須饋送到加法器,因為方框圖中所示的乘法器生成兩個部分結(jié)果,這些結(jié)果由加法器/減法器組合以產(chǎn)生終的乘法結(jié)果。有關(guān)詳細(xì)信息,請參閱 Xilinx 的書 DSP:設(shè)計以獲得結(jié)果的第 21 頁。
slice 不同輸入路徑中的寄存器允許我們進(jìn)行流水線設(shè)計。例如,我們可以直接將輸入 A 應(yīng)用于 slice 的數(shù)學(xué)部分,其路徑中沒有寄存器,或者我們可以在其路徑中放置一個或兩個寄存器。這是通過可以從寄存器之前或之后選擇輸入的多路復(fù)用器(參見圖 5)實現(xiàn)的。
DSP 切片(圖 5 中標(biāo)記為“P”)的輸出可以應(yīng)用于同一切片的加法器/減法器以實現(xiàn)累加器。
如圖 5 所示,DSP Slice 支持多種功能,包括乘法、乘法后累加、全流水線乘法和循環(huán)桶式移位。DSP48 Slice 的更版本包含一些修改,例如包括預(yù)加器塊,這使得 Slice 更加通用。例如,預(yù)加器可用于實現(xiàn)對稱 FIR 濾波器(如上所述)。請注意,DSP slice 旨在有效地實現(xiàn)上述功能。這就是為什么與使用 FPGA 通用結(jié)構(gòu)的設(shè)計相比,基于 DSP 片的設(shè)計可以實現(xiàn)更低的功耗、更高的性能和更高效的硅片利用率。有關(guān) Xilinx DSP slice 的更多詳細(xì)信息,請參閱上述書籍。
使用 DSP Slice 實現(xiàn)對稱 FIR 濾波器
下面的圖 6 顯示了圖 5 的 DSP slice 的簡化框圖。
圖 6
這個簡化的框圖強(qiáng)調(diào)了一個 slice 的輸出可以作為輸入路由到下一個 slice 的加法器/減法器。如果我們忽略圖 6 中所示的輸入寄存器,則圖 6 的原理圖與圖 4 的虛線框內(nèi)的電路相同。因此,通過級聯(lián)這些 DSP slice,我們可以有效地實現(xiàn)圖 4 的 FIR 濾波器。在這個在這種情況下,我們可以使用 FPGA 的通用結(jié)構(gòu)切片來實現(xiàn)紅色加法器(參見圖 4)。
圖 7 顯示了使用 7 系列 DSP48 片的圖 4 的實現(xiàn)。
圖 7. 八抽頭對稱 FIR 濾波器的基于 DSP48 的實現(xiàn)。圖片由賽靈思提供。點擊放大。
此處,帶陰影的加法器實現(xiàn)了圖 4 中的紅色加法器,延遲線可以使用片內(nèi)的寄存器實現(xiàn)。您可以在此處圖 7 電路的 Xilinx VHDL 代碼(如果單擊此鏈接,將立即開始)。
結(jié)論
我們推導(dǎo)出用于對稱 FIR 濾波器的模塊化流水線結(jié)構(gòu)。我們還研究了 Xilinx DSP slice 的結(jié)構(gòu),它可用于實現(xiàn)多種功能,包括乘法、乘法后累加、全流水線乘法和循環(huán)桶式移位。7 系列 DSP48 Slice 更加通用,可以更高效地實施對稱 FIR 濾波器。
掃取二維碼獲取
更多精彩
FPGA設(shè)計論壇
往期推薦
-
至芯科技-FPGA就業(yè)培訓(xùn)來襲!你的選擇開啟你的高薪之路!5月30號西安中心開課、歡迎咨詢!
-
FPGA 的 DCM時鐘管理單元概述
-
簡談Altera和Xilinx的FPGA 區(qū)別
歡迎關(guān)注至芯科技
至芯官網(wǎng):www.zxopen.com
至芯科技技術(shù)論壇:www.fpgaw.com
至芯科技淘寶網(wǎng)址:
https://zxopen.taobao.com
至芯科技FPGA初級課程(B站):
https://space.bilibili.com/521850676
至芯科技FPGA在線課程(騰訊課堂):
https://zxopenbj.ke.qq.com/
至芯科技-FPGA 交流群(QQ):282124839
掃碼加微信邀請您加入FPGA學(xué)習(xí)交流群
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點個
在看
你最好看
原文標(biāo)題:FPGA 實現(xiàn)線性相位 FIR 濾波器的注意事項
文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21738瀏覽量
603464
原文標(biāo)題:FPGA 實現(xiàn)線性相位 FIR 濾波器的注意事項
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論