主要内容

FPGA可编程FIR滤波器

此示例显示如何为硬件实现可编程FIR筛选器。您可以使用主机接口将系数加载到内部寄存器中来将过滤器编程到所需的响应。

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

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

模型可编程FIR滤波器

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

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

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

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

金宝appSimulink®模拟结果

要将测试(DUT)与参考滤波器进行比较,请打开范围并运行示例模型。

使用逻辑分析仪

您还可以在逻辑分析仪中查看信号。逻辑分析仪允许您在一个窗口中查看多个信号。它还可以很容易地发现信号中的转换。

从模型的工具栏启动逻辑分析器。

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

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

有关逻辑分析仪的更多信息,请参阅逻辑分析仪文档

生成HDL代码和测试台

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

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

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

ModelSim™ 模拟结果

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