FPGA 实现线性相位 FIR 滤波器的注意事项

描述

   

点击上方蓝字关注我们

 

本文将回顾对称 FIR 滤波器的高效 FPGA 实现的注意事项。

本文将推导对称 FIR 滤波器的模块化流水线结构。我们将看到派生结构可以使用 Xilinx FPGA 的 DSP 片有效地实现。

对称 FIR 滤波器

让我们考虑一个八阶 FIR 滤波器。该滤波器的传递函数为

 

$$Y(z)= sum_{k=0}^{7} z^{-k} h_k X(z)$$

 

假设滤波器是对称的,并且我们有 $$h_k = h_{7-k}$$ 对于 $$k=0, 1, dots ,7$$。因此,传递函数可以改写为

 

$$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 实现为具有四级流水线的系统,如图 1 所示。此框图的每个阶段对应于公式 1 的四项之一。

 

FPGA

图 1. 点击放大。

 

由于我们插入了三个寄存器组来执行流水线操作,因此我们预计会有三个时钟周期的延迟。就 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

现在,我们应该将这四项中的每一项分配到图 1 中的适当阶段。我们有输出 sig7 的方程式,因此首先设计系统的阶段会更容易。如果我们将术语 $$z^{-3}(1+z^{-7})h_0X(z)$$ 实现为阶段 4,我们将必须级联十个延迟元件来实现 $$z^{- 10}$$。但是,如果我们将 $$z^{-3}(z^{-3}+z^{-4})h_3X(z)$$ 实现为阶段 4,我们将只需要七个延迟元件的级联。因此,我们将方程式 2 的一项实现为图 1 的阶段 4。这给出了图 2 中所示的电路。

 

FPGA

图 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)$$

 

现在,就像第 4 阶段一样,我们可以推导出图 1 的第 3 阶段并获得图 3 中的电路。

 

FPGA

图 3

 

现在,我们有

 

$$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 所示的终结构。

FPGA

图 4.点击放大。

 

请注意,对于级,包含一个零输入的加法器,以强调原理图的模块化和规则结构。此外,在 sig7 之后放置了一个额外的延迟元件。如您所见,虚线框内的电路在结构的每个阶段都重复出现。这种模块化结构是理想的,因为它便于扩展结构以用于任意数量的抽头。

Xilinx 在其高性能 FPGA 中将虚线框内的电路实现为 DSP slice。这些DSP Slice可以高效级联;这就是为什么可以使用多个切片来实现给定的 FIR 滤波器的原因。在下一节中,我们将回顾 DSP48 Slice 的结构。

赛灵思 DSP Slice

DSP Slice 是多种元素,实现图 4 的 FIR 滤波器只是众多可能应用中的一种。图 5 显示了 Virtex-4 器件中 DSP48 片的框图。

 

FPGA

图 5.  Virtex-4 器件中 DSP48 片的框图。图片由赛灵思提供。点击放大。

 

加法器/减法器的输出方程为

 

$$Adder Out= Big ( Z pm (X+Y+C_{in}) Big )$$

 

其中 X、Y 和 Z 表示相应多路复用器的输出值。多路复用器允许我们为加法器/减法器选择不同的输入。乘法是 DSP Slice 的典型应用。例如,我们可以配置 DSP48 slice 来实现以下等式:

 

$$Adder Out = C pm (A imes B + C_{in})$$

当使用乘法器功能时,X 和 Y 多路复用器的输出必须馈送到加法器,因为方框图中所示的乘法器生成两个部分结果,这些结果由加法器/减法器组合以产生终的乘法结果。有关详细信息,请参阅 Xilinx 的书 DSP:设计以获得结果的第 21 页。

slice 不同输入路径中的寄存器允许我们进行流水线设计。例如,我们可以直接将输入 A 应用于 slice 的数学部分,其路径中没有寄存器,或者我们可以在其路径中放置一个或两个寄存器。这是通过可以从寄存器之前或之后选择输入的多路复用器(参见图 5)实现的。

DSP 切片(图 5 中标记为“P”)的输出可以应用于同一切片的加法器/减法器以实现累加器。

如图 5 所示,DSP Slice 支持多种功能,包括乘法、乘法后累加、全流水线乘法和循环桶式移位。DSP48 Slice 的更版本包含一些修改,例如包括预加器块,这使得 Slice 更加通用。例如,预加器可用于实现对称 FIR 滤波器(如上所述)。请注意,DSP slice 旨在有效地实现上述功能。这就是为什么与使用 FPGA 通用结构的设计相比,基于 DSP 片的设计可以实现更低的功耗、更高的性能和更高效的硅片利用率。有关 Xilinx DSP slice 的更多详细信息,请参阅 上述书籍。

使用 DSP Slice 实现对称 FIR 滤波器

下面的图 6 显示了图 5 的 DSP slice 的简化框图。

 

FPGA

图 6

 

这个简化的框图强调了一个 slice 的输出可以作为输入路由到下一个 slice 的加法器/减法器。如果我们忽略图 6 中所示的输入寄存器,则图 6 的原理图与图 4 的虚线框内的电路相同。因此,通过级联这些 DSP slice,我们可以有效地实现图 4 的 FIR 滤波器。在这个在这种情况下,我们可以使用 FPGA 的通用结构切片来实现红色加法器(参见图 4)。

图 7 显示了使用 7 系列 DSP48 片的图 4 的实现。

 


FPGA

图 7. 八抽头对称 FIR 滤波器的基于 DSP48 的实现。图片由赛灵思提供。点击放大。

 

此处,带阴影的加法器实现了图 4 中的红色加法器,延迟线可以使用片内的寄存器实现。您可以在此处图 7 电路的 Xilinx VHDL 代码 (如果单击此链接,将立即开始)。

结论

我们推导出用于对称 FIR 滤波器的模块化流水线结构。我们还研究了 Xilinx DSP slice 的结构,它可用于实现多种功能,包括乘法、乘法后累加、全流水线乘法和循环桶式移位。7 系列 DSP48 Slice 更加通用,可以更高效地实施对称 FIR 滤波器。

 

 

FPGA

 

 

FPGAFPGA

扫取二维码获取

更多精彩

FPGA设计论坛

 

 

 

 

 

往期推荐

 
  • 至芯科技-FPGA就业培训来袭!你的选择开启你的高薪之路!5月30号西安中心开课、欢迎咨询!

  • FPGA 的 DCM时钟管理单元概述

  • 简谈CPU、MCU、FPGA、SoC这些芯片异同之处

  • 简谈Altera和Xilinx的FPGA 区别

 

 

 

欢迎关注至芯科技

至芯官网:www.zxopen.com

至芯科技技术论坛:www.fpgaw.com

至芯科技淘宝网址:

https://zxopen.taobao.com

至芯科技FPGA初级课程(B站) :

https://space.bilibili.com/521850676

至芯科技FPGA在线课程(腾讯课堂) :

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839

 

 

扫码加微信邀请您加入FPGA学习交流群

 

 

FPGAFPGAFPGA

 

欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

 

FPGA

点个

FPGA

在看

你最好看

 

 

 


原文标题:FPGA 实现线性相位 FIR 滤波器的注意事项

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分