主要内容

可编程FIR滤波器的FPGA

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

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

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

可编程FIR滤波器

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

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

coeffs_registers块将系数加载到内部寄存器中write_enable信号是高。阴影寄存器从系数寄存器更新write_done.信号是高。影子寄存器能够通过滤波器实体同时加载和处理数据。块在处理最后几个输入样本的同时加载第二组系数。

该模型配置为对离散FIR滤波器块使用完全并行架构。您还可以从HDL块属性菜单。

万博1manbetx仿真软件®仿真结果

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

使用逻辑分析仪

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

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

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

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

有关逻辑分析仪的更多信息,请参阅逻辑分析仪(DSP系统工具箱)文档。

生成HDL代码和测试平台

您必须拥有一个HDL Coder™许可证才能为这个示例模型生成HDL代码。使用此命令生成HDL代码。

systemname = [modelname'/可编程FIR通过寄存器'];makehdl (systemname);

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

ModelSim™仿真结果

下图显示了运行为测试平台生成的.do文件脚本后的ModelSim HDL模拟器。将ModelSim结果与前面绘制的Simulink结果进行比较。万博1manbetx