您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > FIR-Compiler-V5.0
介绍XilinxLogiCORETMIPFIRCompilercore为用户提供了产生参数可配置的、高效的、高性能FIR滤波器的一种通用接口。FIR滤波器结构有MAC(乘累加)和DA(分布式运算)两种结构。性能支持Xilinx众多FPGA芯片。高性能FIR,多相抽取滤波器,多相内插滤波器,半带滤波器,半带抽取滤波器,半带内插滤波器,希尔伯特变换,多相滤波器组和内插滤波器实现。MAC和DA结构。支持多达256组滤波器系数,每组系数为2~2048个。输入数据精度最高为49-bit。滤波器系数精度最高为49-bit。支持最多64通道的一般FIR实现,支持最多1024个多相滤波器的滤波器组实现。支持内插和抽取因子最多64的内插和抽取滤波器实现,支持内插和抽取因子最大为1024的单通道滤波器实现。支持多个并行数据通路,共享控制逻辑。DA结构的滤波器支持串行和并行实现。MAC结构的滤波器通过单个或多个MAC引擎来实现特定实现。数据流形式的核接口和控制。支持滤波器系数重加载。IPLogiCOREFIRCompilerv5.0Feb.9,20122概述Xilinx的COREGenerator可以实现多种滤波器:单速率,半带,希尔伯特变换,内插滤波器,还有多速率滤波器,包括多相内插和多相抽取滤波器,半带内插和半带抽取滤波器等。滤波器系数的结构决定了FPGA的高效实现。足够的计算精度避免了数据的溢出。核中的单速率FIR滤波器的实现公式如下:10()()(),0,1,Nnykhnxknk1其中N为滤波器系数的个数。该公式的通用实现如图1所示。它是实现公式1的一个有用的思路,但实际在FPGA实现时有一定的差别。Z-1Z-1Z-1......x(n)y(n)h(0)h(1)h(N-1)Z-1h(2)当选择MAC实现结构时,会用到一个或多个时间共享的MAC功能单元以满足滤波器中的N个乘加运算。核会根据用户需要的数据吞吐量来决定最小数量的MAC单元。选择DA实现结构时,不需要乘法器,只需要查找表(LUT)、移位寄存器和均衡累加器。FeatureSupportMatrixFIR编译器有三种截然不同的结构:分布式运算(DA),SystolicMultiplyAccumulate,TransposeMultiplyAccumulate。他们支持的特性如下表所示。特性DistributedArithmeticSystolicMultiplyAccumulateTransposeMultiplyAccumulateV5/V6其他V5/V6其他系数个数2-10242-10242-10242-10242-1024系数宽度1-322-492-352-492-35数据宽度1-322-492-352-492-35通道数1-81-641-64××并行数据通路×1-161-161-161-16最大速率单通道多通道81102451210245121024N/A1024N/A非整数速率支持?×√√××系数重载OfflineOnline(glitch-free)√×√√√√√√√√系数集合数11-2561-2561-2561-256输出取整×√√√√FIRCompilercore支持的滤波器类型如下表所示。滤波器配置为DistributedArithmeticSystolicMultiply-AccumulateTransposeMultiply-Accumulate通用单速率FIR√√√IPLogiCOREFIRCompilerv5.0Feb.9,20123半带√√×希尔伯特变换√√×内插的FIR√√×多相抽取器√√√多相内插器√√√半带抽取器√√×半带内插器√√×多相滤波器组×√×需注意的约束选择SystolicMultiply-Accumulate结构,有以下约束:需要DSPslices的多列的配置时,系数不能采用对称结构;非整数速率的滤波器不能采用对称结构的系数。选择TransposeMultiply-Accumulate结构,有以下约束:不能采用对称结构的系数;不支持多通道。选择DistributedArithmetic结构时,多速率FIR中不能采用对称结构的系数。FIR核的端口定义端口名称方向描述SCLRInput同步清零CLKInput核时钟(上升沿有效),大于或等于采样率。CEInput时钟有效DIN[N-1:0]Input数据输入NDInputNewData,高有效FILT_SEL[F-1:0]Input滤波器选择;F=ceil(log2(filtersets)).选择多个系数集时才会出现此引脚COEF_LDInput为高时,表示新系数加载开始COEF_WEInput系数加载写有效。WE为高时,core锁存COEF_DIN的数IPLogiCOREFIRCompilerv5.0Feb.9,20124据。COEF_DIN[K-1:0]Input滤波器系数。COEF_FILT_SEL[F-1:0]Input滤波器系数选择,与FILT_SEL信号联合使用。DOUT[R-1:0]Output滤波器数据输出。RDYOutput滤波器输出ready标志,为高时,说明DOUT有新数据输出。RFDOutputReadyForData。表征FIR核准备好接收信号数据(DIN)。高有效。CHAN_IN[C-1:0]Output输入通道选择。表示当前的输入通道号。CHAN_OUT[C-1:0]Output输出通道选择。表示当前的输出通道号。DOUT_I[N-1:0]Output同相输出。仅用在希尔伯特变换中。DOUT_Q[R-1:0]Output正交输出。仅用在希尔伯特变换中DATA_VALIDOutput数据有效标志。和SCLR成对出现,仅用在MAC结构中。COREGenerator界面用户接口Tab1:IPSymbol表明了IP核的输入输出引脚。Tab2:频响频响标签如所示。打开COREGenerator时的默认显示标签,显示的为幅度响应。频率采用归一化显示,幅度采用dB表示。SettoDisplay:选择显示哪个系数集合(如果有多个的话)的滤波器频响。PassbandRange:设置通带频率参数,通带的最小值和最大值。IPLogiCOREFIRCompilerv5.0Feb.9,20125StopbandRange:设置阻带频率参数,阻带的最小值和最大值。通带频率的最大值和阻带频率的最小值之差就是过渡带的大小。Tab3:实现细节显示了FIRCORE中需要设置的各个参数。稍后细讲。滤波器设定界面用来定义滤波器最基本的设置和性能。ComponentName:用户定义的滤波器实例的名称。CoefficientSource:选择采用的滤波器系数的输入方式:滤波器系数变量方式或者.coe文件方式。CoefficientVector:直接在界面上输入滤波器系数,十进制表示,系数间以逗号隔开。CoefficientsFile:选择系数文件,扩展名为coe。ShowCoefficients:在弹出的界面中,显示滤波器系数。NumberofCoefficientSets:滤波器系数集的数量。NumberofCoefficients(perset):自动显示滤波器系数集中系数的个数。FilterType:支持六种滤波器结构:单速率FIR、内插的FIR,内插FIR,抽取FIR,多相滤波器块发射器,多相滤波器块接收器。RateChangeType:此选项仅用在内插和抽取滤波器中,整数和小数两种方式可选。InterpolationRateValue:此项用在所有的内插滤波器中和选择小数速率的抽取滤波器中。内插因子或小数速率中的P(P/Q)。DecimationRateValue:此项用在所有的抽取滤波器中和选择小数速率的内插滤波器中。抽取因子或小数速率中的Q(P/Q)。ZeroPackingFactor:此项仅用在内插的(interpolated)FIR中。表示在滤波器系数中间插入分别插入相应个数的0。假设设置的值为k,则插入k-1个0。NumberofChannels:滤波器所用到的通道数。HardwareOversamplingSpecificationformat:硬件过采样方式设定。选择哪种方式来实现硬件过采样。此项直接影响FIR核实现时的并行处理水平和所用资源大小。当选择“FrequencySpecification”时,需要设置数据输入采样频率和时钟频率,它们的比值决定了硬件过采样速率的大小。当选择“SamplePeriod”时,设置输入样值之间的时钟周期数。InputSamplingFrequency:单通道的采样频率。它的上限由时钟频率和滤波器参数共同决定。例如:内插速率和通道数。ClockFrequency:此项数值受限于采样频率、内插速率和通道数量。注意:此项只影响滤波器结构选择,设定好的时钟频率在最后实现时不一定能够达到。Input/outputSamplePeriod:选择多通道时,此项数值是时分复用的输入数据流之间的整时钟周期数。选择分数抽取滤波器时,这个参数就是输出样值间的整时钟周期数,这时要设置OutputSamplePeriod。执行选项界面执行选项界面是用来设置滤波器实现结构和滤波器系数结构的,并设置不同的数据通路和系数相关的参数。FilterArchitecture:三种滤波器架构:SystolicMultiplyAccumulate,TransposeMultiplyAccumulate和DistributeArithmetic。UseReloadableCoefficients:选择Reloadable,系数重载接口就会出现。CoefficientStructure:五种滤波器系数结构:非对称(Non-symmetric),对称的(Symmetric),负对称(NegativeSymmetric),半带(Half-band)和希尔伯特变换(HilbertTransform)。默认结构为Inferred,即从滤波器系数文件中推断出系数的结构。注意:滤波器系数最多为2048个。CoefficientType:有符号的和无符号的。当选择有符号系数时,会采用二进制补码。IPLogiCOREFIRCompilerv5.0Feb.9,20126Quantization:设定量化方法。三个选项:整数系数,仅量化和最大动态范围。整数系数:当系数都是整数表示时,选用此项。量化系数:采用round方式。最大动态范围:滤波器系数的最大值等于系数动态范围的最大值,与系数的宽度有关。CoefficientWidth:系数的精度。可以结合频响图,在满足用户需求的前提下,选择最小的位宽。BestPrecisionFractionLength:选择后,系数的小数部分宽度会自动设为最大精度。CoefficientFractionalBits:设定系数中小数部分的表示位宽。最大值为系数宽度减去所需的整数位宽度。NumberofPaths:数据通路数量。InputDataType:有符号和无符号。有符号时,选用二进制补码表示。InputDataWidth:输入数据精度。InputDataFractionalBits:描述同CoefficientFractionalBits。OutputRoundingMode:数据输出round方式。OutputWidth:输出数据精度。OutputFractionalBits:同CoefficientFractionalBits。AllowRoundingApproximation:RegisteredOutput:输出加缓存。详细实现选项界面该界面用来设置控制接口和其他实现选项。需要知道的是,控制引脚的增加会增加额外的系统资源,从而使模块不能达到最大时钟频率,所以说,只有必要时才用到这些引脚。OptimizationGoal:速度优
本文标题:FIR-Compiler-V5.0
链接地址:https://www.777doc.com/doc-7466459 .html