FIR with FPGA[1].全并行FIR实现

该博客介绍了如何在FPGA上实现全并行的FIR滤波器。作者首先提到了在Matlab环境中完成的FIR滤波器仿真,然后在FPGA中采用直接型结构,不进行截位处理,利用全并行结构来处理数据。文中详细说明了模块组成,包括16位数据输入和start信号,并指出系统没有跨时钟域问题。源代码的展示证实了FIR滤波器成功滤除了高频分量,且在testbench中进行了验证。
摘要由CSDN通过智能技术生成

FIR with FPGA[0]中,使用Matlab环境对FIR进行了仿真,确定了输入数据和滤波器系数的量化bit和字长。下面将在FPGA中对FIR做实现。

FPGA中采用直接型


按照原理图进行RTL的构造,中间计算过程不作截位处理。

由于FPGA的时钟频率往往远远高于数据输入速率,MAC可以采用时分复用,以减轻资源消耗;设计者也可以利用系数的对称性减少乘法器的使用。但本例并不作此类优化。相关代码优化将在后续文章中展开。本文采用全并行结构,即多个乘法器同时工作。

本例设计中,数据输入速率等于FPGA工作频率。整个系统只有一个主时钟,不存在跨时钟域。


1. 模块组成

系统组成比较简单,如之前大图所示。输入16位数据,和start的指示信号。输入信号由testbench产生。系统所产生的输出,也由testbench导出到txt文件中。并由matlab读取后,验证误差值。


2. 源代码

通过modelsim仿真后,观察波形可知,FIR成功的滤除了高频分量。



FIR代码如下:

module FIR(
		input clk,
		input rst_n,
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值