此设计示例展示了使用有限脉冲响应 (FIR) 编译器 IP MegaCore 函数时如何从文件复位系数。FIR 编译器提供在运行时更改系数的灵活性。当 FIR 编译器使用一组系数处理数据时,您可以在不停止内核处理的情况下复位另一组系数。
为了优化芯片效率,系数不会以其自然顺序进行存储。此示例说明了使用预编译可执行的 coef_seq.exe 重新排序系数的步骤。此滤波器使用了四组系数:低通、高通、带通和带阻滤波器。前两个在 IP 工具平台中参数化;后两个必须在运行时复位,并且需要提前重新排序。提供的测试平台向您展示了如何设置控件来复位系数,以便满足计时要求。
下载本示例中使用的文件:
该设计的使用受英特尔® 设计示例许可协议中条款和条件的管理和约束。
zip 下载中的文件包括:
- fir91.v - FIR 编译器 wrapper 文件
- coef_reload_tb.v - 测试平台文件
- coef_reload_msim.tcl - 使用 ModelSim* 工具运行功能模拟的 Tcl 脚本
- coef_seq.exe - 重新排序系数的 Windows 可执行文件
表 1.FIR 编译器端口列表
端口名称 |
类型 |
描述 |
---|---|---|
clk |
输入 |
时钟信号 |
seset_n |
输入 |
同步有效低电平复位信号 |
sink_data[15:0] |
输入 |
采样输入数据 |
coef_set |
输入 |
选择用于计算的系数集 |
sink_valid |
输入 |
输入数据有效时置位 |
source_ready |
输入 |
如果能够接受数据,则被下游模块置位 |
sink_error[1:0] |
输入 |
指示宿端违反 Avalon®-ST 协议的错误信号 |
coef_set_in |
输入 |
选择要复位的系数集 |
coef_we |
输入 |
有效高写入支持信号 |
coef_in[18:0] |
输入 |
复位系数时输入系数值 |
source_data[37:0] |
输出 |
滤波器输出 |
sink_ready |
输出 |
能够接受数据时由 FIR 滤波器置位 |
source_valid |
输出 |
当有可输出的有效数据时由 FIR 滤波器置位 |
source_error[1:0] |
输出 |
指示源端违反 Avalon®-ST 协议的错误信号 |