基于模型设计的FPGA开发与实现:滤波器设计与实现(四)Matlab中滤波器HDL代码生成优化

本文探讨了基于模型设计的FPGA滤波器开发,尤其是针对FIR滤波器在EP3C25 FPGA上的优化。通过改变滤波器结构、定点化处理及优化乘法器和加法器,以提高系统吞吐量和最大工作频率。介绍了使用MATLAB的滤波器设计工具进行结构转换、定点化配置,并通过实例展示了代码生成与性能测试的过程。
摘要由CSDN通过智能技术生成

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为例说明的,下面是源程序。

%提升滤波器性能之转换为直接传输型

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值