此示例显示如何为硬件实现可编程FIR筛选器。您可以使用主机接口将系数加载到内部寄存器中来将过滤器编程到所需的响应。
在此示例中,我们将在芯片上实现一组过滤器,每个滤波器都具有不同的响应。如果所有过滤器都有直接形成FIR结构,并且长度相同,则我们可以使用主机接口将每个响应的系数加载到寄存器文件时。
该设计在可以使用加载的系数处理输入样本之前增加了几个周期的延迟。然而,它具有以下优点:可以用新系数编程相同的滤波器硬件以获得不同的滤波器响应。这可以节省芯片区域,否则每个过滤器将在芯片上单独实现。
考虑两个FIR滤波器,一个带有低通响应的滤波器,另一个具有高通响应。通过使用模型属性>回调> initfcn函数来指定系数。
这通过寄存器的可编程FIR块加载来自的低通系数主机行为模型,首先处理输入的啁啾样本。然后块加载高通系数并再次处理相同的啁啾样本。
这Coeffs_Registers.块将系数加载到内部寄存器中时with_enable.
信号很高。镜像寄存器从系数寄存器更新时write_done.
信号很高。影子寄存器能够通过滤波器实体同时加载和处理数据。块在处理最后几个输入样本的同时加载第二组系数。
此模型配置为使用完全并行架构,用于离散终端滤波器块。您还可以从中选择串行架构HDL块属性菜单。
要将测试(DUT)与参考滤波器进行比较,请打开范围并运行示例模型。
您还可以查看逻辑分析仪中的信号。逻辑分析仪使您可以在一个窗口中查看多个信号。它还可以轻松发现信号中的转换。
从模型的工具栏启动逻辑分析器。
感兴趣的输入系数,写入地址,写入启用,写入,过滤,过滤,滤除,引用和错误已添加到逻辑分析仪进行观察。
逻辑分析仪显示器也可以控制每波或每分频率。要修改单个波或分频器,请选择“波”或“分频器”,然后单击“波”选项卡。逻辑分析仪中的可视化模式是模拟格式。
有关逻辑分析仪的更多信息,请参阅逻辑分析仪文档。
您必须拥有HDL Coder™许可证为此示例模型生成HDL代码。使用此命令生成HDL代码。
systemname = [modelname'/可编程FIR通过寄存器'];makehdl(systemname);
使用此命令生成测试台,该测试台与模拟模拟行为的HDL仿真结果进行比较。金宝appmakehdltb(systemname);
下图显示了运行生成的.Do文件脚本进行测试台的Modelim HDL模拟器。将ModelIM结果与以前绘制的Simulink结果进行比较。金宝app