有限脉冲响应滤波器优化的HDL代码生成
的dsp。HDLFIRFilter
系统对象™模型为HDL代码生成优化的有限脉冲响应滤波器体系结构。该对象每次接受一个输入样本,并提供可编程系数的选项。它提供了一个硬件友好的接口与输入和输出控制信号。为了提供对生成的HDL代码的精确周期模拟,对象模型体系结构延迟包括管道注册和资源共享。
该对象提供三种过滤器结构。直接形式的systolic架构提供了一个完全并行的实现,可以有效地利用Intel®和Xilinx®DSP块。直接形式转置结构是一种完全并行实现,适用于FPGA和ASIC应用。部分串行收缩结构提供了一个可配置的串行实现,使FPGA DSP块的有效利用。对于将乘法器、流水线寄存器和预加法器匹配到FPGA供应商的DSP配置的过滤器实现,在生成HDL代码时指定目标设备。
这三种结构都通过共享对称或反对称滤波器的乘法器来优化硬件资源。并行实现还去除了零值系数的乘数,如半带滤波器和希尔伯特变换。
有效输入数据和相应的有效输出数据之间的延迟取决于过滤器结构、序列化选项、系数的数量以及系数值是否提供优化机会。
对于具有多通道或基于帧的输入的FIR滤波器,使用dsp。FIRFilter
系统对象,而不是这个系统对象。
用hdl优化的FIR滤波器过滤输入数据:
创建dsp。HDLFIRFilter
对象,并设置其属性。
使用参数调用对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?.
创建一个hdl优化的离散FIR滤波器firFilt
= dsp。HDLFIRFilterfirFilt
,具有默认属性。
firFilt = dsp.HDLFIRFilter (num)
属性创建过滤器分子
属性设置为全国矿工工会
.
使用一个或多个名称-值对设置属性。将每个属性名用单引号括起来。firFilt
= dsp。HDLFIRFilter (___,名称,值
)
例如:
分子= firpm (10, [0, 0.1, 0.5, 1], [1 1 0,0]);冷杉= dsp。HDLFIRFilter(分子,“FilterStructure”,“直接形式转置”);...[dataOut, validOut] =冷杉(dataIn validIn);
[
返回dataOut
,validOut
,准备好的
) = firFilt (dataIn
,validIn
)准备好的
设置为真正的
当对象准备好在下一次调用中接受新的输入数据时。
对象返回准备好的
参数仅在设置FilterStructure
财产的部分串行收缩压
.例如:
firFilt = dsp。HDLFIRFilter (分子,...“FilterStructure”,的部分串行收缩压,...“SerializationOption”,“有效输入样本之间的最小循环次数”,...“NumberOfCycles”, 8)...为k=1:length(dataIn) [dataOut,validOut,ready] = firFilt(dataIn(k),validIn(k));
要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj
,使用下面的语法:
发行版(obj)
重置行为
默认情况下,dsp。HDLFIRFilter
对象只将生成的HDL全局重置连接到控制路径寄存器。这两个重置属性,ResetInputPort和HDLGlobalReset,将重置信号连接到数据路径寄存器。由于重置信号上的额外路由和加载,重置数据路径寄存器会降低合成性能。
的ResetInputPort
属性使重置
对象的参数。复位信号实现数据路径寄存器的本地同步复位。为了优化FPGA资源的使用,该选项不将复位信号连接到针对FPGA的DSP块的寄存器。
的HDLGlobalReset
属性将生成的HDL全局复位信号连接到数据路径寄存器。这个属性不会改变对象的参数或修改MATLAB中的模拟行为。生成的HDL全局重置可以是同步的,也可以是异步的,这取决于您的HDL代码生成设置。根据您的设备,使用全局重置可能会将寄存器移出DSP块并增加资源使用。
当你同时设置ResetInputPort
和HDLGlobalReset
属性真正的
,全局和局部复位信号清除控制和数据路径寄存器。
该系统对象实现了上面描述的算法离散FIR滤波器HDL优化块引用页面。