MBD-FPGA 开发与实现
http://blog.sina.com.cn/McCrocodile
先来看看前面章节设计的滤波器对于实际应用是个多糟糕的设计!!!
上面一节中我们使用分离两个信号的滤波器高达60阶,如果我们要放大EP3C25中,基本上是不可接受的,如果我们还有其他逻辑。EP3C25只有132个9bit的嵌入式乘法器。
屏幕剪辑的捕获时间: 2011/9/10 21:33
下面看下上一节生成代码的编译报告。可以从看出资源占用情况和可以工作的最大频率fMax=3.28MHz,在很多应用中这个可以认为是一个失败的设计。原因和滤波器的阶数、滤波器的结构等多个方面的有关系,如何针对FPGA优化设计,提高吞吐量等问题时本节主要讨论的内容。
屏幕剪辑的捕获时间: 2011/9/11 8:41
屏幕剪辑的捕获时间: 2011/9/11 8:41
Fmax最大时钟速率很多情况下是最重要的问题。
1、滤波器的结构:info(Hf2)
上图所示为滤波器时直接型的FIR,下图为直接型FIR的结构,连串的加法器是最坏路径,也是Fmax比较小的罪魁祸首。
这个问题需要在设计滤波器的时候选择合适的滤波器结构。下面看看直接传输型FIR滤波器的结构。可以看出最坏路径是一个常数乘法器和一个加法器。这时候引入新的问题:输入的信号有太多的扇出,着同样可能会造成FMax比较小,不过这个问题很好解决,在滤波器的输入端口采用2~4级寄存器,并在HDL综合器中选择自动复制寄存器,就可以解决问题。这儿不做深入讨论主要是说明解决问题的途径,后面滤波器结构将分别对FIR和IIR滤波器做专门讨论。实现的过程在这节结尾有两个例子,以供学习。
上面的结果可以看得出,滤波器的结构所带来的性能差异。FIR滤波器结构的问题后面会在单速滤波器的FIR结构中详细介绍了。下面是以直接传输型的FIR为例说明的,下面是源程序。
%提升滤波器性能之转换为直接传输型