Verilog:FIR编译器的系数重新装入设计实例

这一设计实例演示了怎样使用Altera®有限冲击响应(FIR)编译器IP MegaCore®功能,重新装入来自文件的系数。FIR编译器能够灵活的在运行时修改系数。虽然FIR编译器采用一组系数来处理数据,您还是可以重新装入另一组,而且不需要停止内核的处理工作。

为提高硬件效率,系数并没有按其自然顺序来存储。这一实例使用经过预编译的可执行文件coef_seq.exe,解释了对系数重新排序的步骤。滤波器使用了四组系数:低通、高通、带通和带阻滤波器。前两组在IP工具台中进行了参数赋值;后两组必须在运行时重新装入,先要进行重新排序。所提供的测试台向您展示了怎样进行设置,控制重新装入系数,以满足时序要求。

下载这一实例中所使用的文件:

这一设计的使用在Altera硬件参考设计许可协议控制下,请遵循这些条款和条件。

zip下载中的文件包括:

  • fir91.v——FIR编译器打包器文件
  • coef_reload_tb.v——测试台文件
  • coef_reload_msim.tcl——Tcl脚本,用于使用ModelSim®工具运行功能仿真。
  • coef_seq.exe——Windows可执行文件,对系数重新排序。

图1. FIR编译器端口列表

表1列出了FIR编译器端口,并对每一个进行了说明。

 

表1. FIR编译器端口列表

端口名称

类型

说明

clk

输入

时钟信号

reset_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协议违规。

表2. FIR编译器参数

FIR参数

数值

滤波器速率

单倍

输入通道编号

1

输入比特宽度

16

输出比特宽度

38 (全分辨率)

系数比特宽度

16

系数组编号

2

每一组中的系数编号

37

器件系列

Stratix® IV

结构

DA:全并行滤波器

流水线级

1

数据存储

逻辑单元

系数存储

M512

系数重新装入箱

已检查

使用一个时钟箱

已检查

相关链接

设计实例免责声明

这些设计实例只限于用在Altera公司器件上,版权属于Altera。为方便使用,这些设计基于“as-is(原样提供)”的形式提供;因此,任何形式的授权、代理或者担保(无论是明确的,隐含的还是法定的),包括不受限制的使用、商业授权、无侵犯或者适用某一特殊用途等,Altera公司都不予以承诺。Altera公司明确表示不推荐,不建议以及不要求这些设计实例和其他任何非Altera产品一起使用。