用于 FPGA 的可编程 FIR 滤波器
此示例说明如何实现用于硬件的可编程 FIR 滤波器,并通过使用内存式接口加载滤波器系数。
来自 DSP HDL Toolbox™ 库的 Discrete FIR Filter、FIR Decimator 和 FIR Interpolator 模块支持内存式接口,该接口用于将系数加载到内部寄存器。
此示例实现一个包含两个 FIR 滤波器的滤波器组,其中每个滤波器具有不同响应。这两个滤波器具有相同的长度和系数对称性。这种系数模式允许模块以相同的方式让两个滤波器共享对称系数的乘法器。可以使用新系数对相同的滤波器硬件进行编程,以获得不同滤波器响应。
对可编程 FIR 滤波器进行建模
此示例实现两个 FIR 滤波器,一个具有低通响应,另一个具有高通响应。系数在“模型属性”>“回调”>“InitFcn 函数”中指定。

Programmable FIR(Memory Interface) 子系统包含 Discrete FIR Filter 模块,其 Coefficients source 参数设置为 Input port (Memory interface)。此配置启用一组内存式端口,您可以通过这些端口将系数写入滤波器。首先,Host Behavioral Model 子系统将低通系数加载到 FIR 滤波器。该模型延迟输入啁啾采样,直到第一个系数写入完成。然后,Host Behavioral Model 子系统加载高通系数。
当您向滤波器写入系数时,滤波器会忽略任何输入数据采样。此模型在系数更改时停止发送输入数据。您也可以使用输出有效信号来确定输出数据何时有效。

此模型中的 Discrete FIR Filter 模块配置为使用完全并行直接型收缩架构。当模块使用并行转置或串行架构时,该模块也支持使用内存式可编程系数。Coefficient prototype 参数设置为系数向量之一。此设置使模块能够基于对称性和零值系数的位置优化硬件资源。当您指定原型时,所有输入系数集必须在对称性和零值系数位置方面与原型匹配。有关如何使用原型优化滤波器资源的详细信息,请参阅Optimize Programmable FIR Filter Resources (DSP HDL Toolbox)。
Simulink 仿真结果
要查看输入和输出数据以及系数接口的信号,请打开示波器并运行示例模型。

使用逻辑分析仪
您也可以在逻辑分析仪中查看来自模型的信号。逻辑分析仪使您能够在一个窗中查看多个信号,并允许您查找信号中的跳变和测量信号之间的延迟。
从模型的工具条启动逻辑分析仪。

该模型已将一些感兴趣的信号(输入系数、写入地址、写入使能、写入完成、滤波器输入、滤波器输出和有效信号)添加到逻辑分析仪中以进行观测。

逻辑分析仪显示画面也可以按波形或按分隔线进行控制。要修改单个波形或分隔线,请选择波形或分隔线,然后点击波形选项卡。逻辑分析仪中一种有用的可视化模式是 Analog 格式。

有关详细信息,请参阅逻辑分析仪。
生成 HDL 代码和测试平台
您必须有 HDL Coder™ 许可证才能为此示例模型生成 HDL 代码。使用以下命令生成 HDL 代码。
systemname = [modelname '/Programmable FIR(Memory Interface)'];
makehdl(systemname);
使用以下命令生成测试平台,用于比较 HDL 仿真的结果与 Simulink 仿真行为。
makehdltb(systemname);
另请参阅
逻辑分析仪 | Discrete FIR Filter (DSP HDL Toolbox) | FIR Decimator (DSP HDL Toolbox) | FIR Interpolator (DSP HDL Toolbox)
主题
- Optimize Programmable FIR Filter Resources (DSP HDL Toolbox)