主要内容

FPGA的可编程FIR过滤器

This example shows how to implement a programmable FIR filter for hardware. You can program the filter to a desired response by loading the coefficients into internal registers using the host interface.

在此示例中,我们将在芯片上实施一组过滤器,每个过滤器都有不同的响应。如果所有过滤器都具有直接形式的FIR结构和相同的长度,则可以在需要时使用主机接口为每个响应的每个响应加载系数。

该设计增加了几个周期的延迟,然后可以使用加载系数处理输入样品。但是,它具有一个优点,即可以使用新系数对相同的过滤器硬件进行编程以获得不同的滤镜响应。这样可以节省芯片区域,否则每个过滤器将在芯片上分别实现。

模型可编程FIR过滤器

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

可编程FIR通过寄存器块从Host Behavioral Model并首先处理输入chirp样品。然后,该块将加载高通系数,并再次处理相同的CHIRP样品。

coeffs_registers当块将系数加载到内部寄存器中write_enable信号高。阴影寄存器将从系数寄存器更新write_done信号高。阴影寄存器可以通过过滤器实体同时加载和处理数据。块与处理最后几个输入样本同时加载第二组系数。

该模型配置为使用完全并行体系结构对离散的FIR滤波器块。您也可以从HDL Block Properties菜单。

万博1manbetx模拟结果

To compare the Design Under Test (DUT) with the reference filter, open the Scope and run the example model.

使用逻辑分析仪

您还可以在逻辑分析仪中查看信号。逻辑分析仪使您可以在一个窗口中查看多个信号。它还使在信号中发现过渡变得容易。

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

感兴趣的信号 - 输入系数,写地址,写入启用,完成,过滤,过滤,参考和错误已添加到逻辑分析仪中以进行观察。

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

For further information on the Logic Analyzer, refer to the逻辑分析仪文档。

生成HDL代码和测试工作台

您必须具有HDL Coder™许可证来为此示例模型生成HDL代码。使用此命令生成HDL代码。

SystemName = [modelName'/通过寄存器可编程的fir'];makehdl(systemName);

Use this command to generate a test bench that compares the results of an HDL simulation against the Simulink simulation behavior. makehdltb(systemname);

模拟结果

下图显示了在运行用于测试工作台的生成的.DO文件脚本后,ModelsIm®HDL模拟器。将模型结果与以前绘制的simulink结果进行比较。万博1manbetx