主要内容

FIR抽取HDL优化

有限脉冲响应(FIR)抽取滤波器优化的HDL代码生成

  • 库:
  • DSP系统工具箱HDL支持/滤波金宝app

  • FIR抽取滤波器HDL优化块

描述

FIR抽取HDL优化块实现了一个多相FIR抽取滤波器,该滤波器为HDL代码生成进行了优化。该块提供了一个硬件友好的接口与输入和输出控制信号。为了提供对生成的HDL代码的精确周期模拟,块模型体系结构延迟,包括管道注册和资源共享。

该块接受标量或向量输入。当您使用向量输入时,抽取因子必须是向量大小的整数倍。该块使用单一速率实现。输出是标量,有效信号表示抽取后的样本是有效的。波形显示了一个由四个样本组成的输入向量和一个8的抽取因子。输出样本每隔一秒有效。

该块提供两种过滤结构。直接形式的收缩体系结构提供了一个完全并行的实现,使英特尔的有效利用®和Xilinx®DSP块。直接形式转置架构是一种完全并行实现,适用于FPGA和ASIC应用。对于将乘法器、流水线寄存器和预加法器匹配到FPGA供应商的DSP配置的过滤器实现,在生成HDL代码时指定目标设备。

该块为输入向量中的每个样本实现一个过滤器。然后该块通过在时间上交错子滤波器系数在多相子滤波器之间共享这个滤波器。

对于输入尺寸大于抽取因子的FIR抽取滤波器或串行HDL实现(仅标量输入),使用冷杉大量毁灭Block而不是这个Block。

港口

输入

全部展开

输入数据必须是实值或复数标量或向量。当您使用向量输入时,抽取因子必须是向量大小的整数倍。向量大小必须小于或等于64。

当输入数据类型为整数类型或定点类型时,块将使用定点算法进行内部计算。

模拟支持数据类型,但不支持HD金宝appL代码生成。

数据类型:不动点|||int8|int16|int32|uint8|uint16|uint32
复数的支持:金宝app是的

有效的1,块从数据输入端口。

数据类型:布尔

重置1,该块将停止当前的计算并清除过滤器的内部状态。复位信号是同步的,清除数据路径和控制路径状态。有关更多重置注意事项,请参见提示

依赖关系

要启用该端口,请在控制端口选项卡中,选择使能复位输入端口参数。

数据类型:布尔

输出

全部展开

过滤后的输出数据,作为实值或复数标量返回。当输入数据类型是浮点类型时,输出数据继承输入数据的数据类型。当输入数据类型为整数类型或定点类型时,输出的参数数据类型TAB指定输出数据类型。

输出有效的信号表明在抽取后哪些样本是有效的。

数据类型:不动点||
复数的支持:金宝app是的

块集有效的1上返回的每个有效数据数据输出端口。

数据类型:布尔

参数

全部展开

主要

离散FIR滤波器系数,指定为实值或复值向量。您可以将向量指定为工作区变量或对筛选器设计函数的调用。当输入数据类型是浮点类型时,块将系数强制转换为与输入相同的数据类型。当输入数据类型为整数类型或定点类型时,可以为上的系数设置数据类型数据类型选项卡。

例子:Firpm (30,[0 0.1 0.2 0.5]*2,[1 1 0 0])

数据类型:||int8|int16|int32|uint8|uint16|uint32
复数的支持:金宝app是的

将HDL过滤器体系结构指定为以下结构之一:

  • 直接形成收缩-该架构提供了一个完全并行的滤波器实现,使英特尔和Xilinx DSP块的有效利用。

  • 直接形式转置—该架构是完全并行实现,适用于FPGA和ASIC应用。

这两种实现都通过在输入向量中的每个样本的一个过滤器实现上交错子过滤器系数来共享资源。

该块实现一个多相分解过滤器使用离散FIR滤波器HDL优化块。有关架构的详细信息,请参见完全平行收缩结构完全平行转置建筑部分的离散FIR滤波器HDL优化块引用页面。

指定大于2的整数抽取因子。当您使用向量输入时,抽取因子必须是向量大小的整数倍。

数据类型

属性指定的数据类型的舍入模式输出参数。当输入数据类型为浮点数时,块忽略此参数。有关详细信息,请参见舍入模式

属性指定的数据类型将输出类型转换为数据类型的溢出处理输出参数。当输入数据类型为浮点数时,块忽略此参数。有关详细信息,请参见溢出处理

该块将过滤系数强制转换为此数据类型。量化四舍五入到最接近的可表示值,并在溢出时达到饱和。当输入数据类型为浮点数时,块忽略此参数。

该参数推荐的数据类型为继承:与输入相同的字长

如果出现上述任何一种情况,该块将返回警告或错误。

  • 系数数据类型没有足够的小数长度来准确地表示系数。

  • 系数数据类型是无符号的,系数包括负值。

可以通过修改模型配置参数禁用或控制这些数据类型消息的严重性诊断>类型转换>检测精度损失参数。

该块将过滤器的输出强制转换为此数据类型。量化使用的设置舍入模式溢出模式参数。当输入数据类型为浮点数时,块忽略此参数。

该块在每次筛选器点击中增加字长以达到全精度,并将最终输出强制转换为指定的类型。最大最终内部数据类型(WF)取决于输入数据类型(WI),系数数据类型(WC),以及系数的个数(l),是由

WFWI+WC+装天花板(log2 (l))

由于系数值限制了潜在的增长,通常实际的全精度内部字长小于WF

控制端口

选择此参数启用重置输入端口。复位信号实现数据路径寄存器的本地同步复位。

有关更多重置注意事项,请参见提示

选择此参数将生成的HDL全局复位信号连接到数据路径寄存器。此参数不会改变模块的外观或修改Simulink中的模拟行为金宝app®.当您清除此参数时,生成的HDL全局重置只清除控制路径寄存器。生成的HDL全局重置可以是同步的,也可以是异步的,这取决于HDL代码生成>全局设置>重置类型参数在模型配置参数。

有关更多重置注意事项,请参见提示

提示

重置行为

  • 默认情况下,FIR Decimation HDL Optimized块只将生成的HDL全局复位连接到控制路径寄存器。这两个重置参数,使能复位输入端口使用HDL全局复位,将复位信号连接到数据路径寄存器。由于附加的路由和加载复位信号,复位数据路径寄存器会降低综合性能。

  • 使能复位输入端口参数使重置港口在街区。复位信号实现数据路径寄存器的本地同步复位。为了优化FPGA资源的使用,该选项不将复位信号连接到针对FPGA的DSP块的寄存器。

  • 使用HDL全局复位参数将生成的HDL全局复位信号连接到数据路径寄存器。此参数不会改变模块的外观或修改Simulink中的模拟行为。金宝app生成的HDL全局重置可以是同步的,也可以是异步的,这取决于HDL代码生成>全局设置>重置类型参数在模型配置参数。根据您的设备,使用全局重置可能会将寄存器移出DSP块并增加资源使用。

  • 当你选择使能复位输入端口使用HDL全局复位参数一起,全局和局部复位信号清除控制和数据路径寄存器。

对生成的测试台的重置考虑

  • fpga在循环中初始化提供全局复位,但不自动提供局部复位。使用默认的复位参数,如果您在不复位单板的情况下多次运行FIL模型,未复位的数据路径寄存器可能会导致fpga -in- loop (FIL)不匹配。选择使用HDL全局复位要自动重置数据路径寄存器,或选择使能复位输入端口并在模型中断言本地复位,因此复位信号成为Simulink FIL测试台的一部分。金宝app

  • 生成的HDL测试台提供全局复位,但不自动提供局部复位。使用默认重置参数和默认寄存器重置配置参数,生成的HDL代码包括数据路径寄存器的初始仿真值。然而,如果你担心X在您的设计中,可以设置HDL代码生成>全局设置>编码风格>无重置寄存器初始化参数不初始化.在这种情况下,使用默认的块重置参数,未被重置的数据路径寄存器可能导致X在HDL仿真开始时,在数据路径上传播。选择使用HDL全局复位要自动重置数据路径寄存器,或选择使能复位输入端口并断言模型中的本地复位,因此复位信号成为生成的HDL测试台的一部分。

算法

全部展开

该块实现了一个多相滤波器组,其中滤波器系数被分解为大量毁灭的因素subfilters。如果过滤器长度不能被整除大量毁灭的因素参数值,然后块零填充系数。

图中显示了标量输入的多相滤波器组和大量毁灭的因素参数设置为4。四组分解系数在时间上交错在一个单一的子滤波器上。

下一个图显示了四个值的输入向量和的多相滤波器组大量毁灭的因素参数设置为8。四个子滤波器中的每一个都有两组按时间交错排列的系数。

每个子过滤器是用离散FIR滤波器HDL优化块。在输出端的加法器是流水线的,以适应更高的合成频率。有关架构的详细信息,请参见完全平行收缩结构完全平行转置建筑,复杂的乘数部分的离散FIR滤波器HDL优化块引用页面。

请注意

输出FIR抽取HDL优化块的输出不匹配冷杉大量毁灭块sample-for-sample。这种差异主要是由于在子过滤器中应用样本的阶段不同。匹配冷杉大量毁灭块,应用大量毁灭的因素- 1的0次方FIR抽取HDL优化在数据流的开始处阻塞。

冷杉大量毁灭Block在全精度计算中也使用略有不同的数据类型。如果值溢出内部数据类型,不同的数据类型也会在输出值中引入差异。

扩展功能

介绍了R2020b