主要内容

FPGA可编程FIR滤波器

这个例子展示了如何实现一个可编程FIR滤波器的硬件。通过使用主机接口将系数加载到内部寄存器中,可以对过滤器进行编程,使其达到所需的响应。

在这个例子中,我们将在芯片上实现一组过滤器,每个过滤器都有不同的响应。如果所有的过滤器都有一个直接形式的FIR结构,并且长度相同,那么我们可以使用一个主机接口在需要时加载每个响应到寄存器文件的系数。

这种设计增加了几个周期的延迟,然后才能使用加载的系数处理输入样本。然而,它的优点是相同的滤波器硬件可以用新的系数进行编程,以获得不同的滤波器响应。这节省了芯片面积,否则每个滤波器将在芯片上单独实现。

模型可编程FIR滤波器

考虑两个FIR滤波器,一个具有低通响应,另一个具有高通响应。这些系数是通过使用模型属性>回调> iITFCN函数来指定的。

这个可编程FIR通孔寄存器块从中加载低通系数主机行为模型,并首先处理输入啁啾样本。然后块加载高通系数并再次处理相同的啁啾样本。

这个系数寄存器写入启用信号很高。当write_done信号是高。影子寄存器使过滤器实体能够同时加载和处理数据。这些块在处理最后几个输入样本的同时加载第二组系数。

该模型配置为使用离散FIR滤波器块的完全并行架构。您还可以从中选择串行体系结构高密度脂蛋白块属性菜单

金宝appSimulink®模拟结果

要将Design Under Test (DUT)与参考筛选器进行比较,请打开Scope并运行示例模型。

使用逻辑分析仪

您还可以在逻辑分析器中查看信号。逻辑分析器使您能够在一个窗口中查看多个信号。它还可以轻松地发现信号中的转换。

从模型的工具条启动逻辑分析仪。

感兴趣的信号——输入系数、写入地址、写入启用、写入完成、滤入、滤出、引用输出和错误——已添加到逻辑分析仪中进行观察。

逻辑分析仪的显示也可以基于每波或每分频器进行控制。要修改单个波或分频器,请选择一个波或分频器,然后单击“波”选项卡。逻辑分析仪中一种有用的可视化模式是模拟格式。

有关逻辑分析仪的进一步信息,请参阅逻辑分析仪文档

生成HDL代码和测试台

你必须有一个HDL编码器™ 生成此示例模型的HDL代码的许可证。使用此命令生成HDL代码。

systemname=[modelname]“/可编程FIR通过寄存器”]; makehdl(系统名);

使用此命令生成一个测试台,将HDL模拟的结果与Simulink模拟行为进行比较。金宝appmakehdltb (systemname);

ModelSim™ 模拟结果

下图显示运行测试台生成的.do文件脚本后的ModelSim HDL模拟器。将ModelSim结果与之前绘制的Simulink结果进行比较。金宝app