最近用到系数可以重新配置的fir滤波器,调用xilinx提供的ip core,使用了use reloadable coefficient功能,但有以下几点疑问,哪位有用过的大虾能否指点迷津下 1、使用use coefficients reloadable之后,仍需导入.coe文件,这个文件的作用是什么,此时滤波器系数不是由coe_din输入了吗? 2、number of coefficient sets的作用是什么,与导入的.coe系数个数有关系。 3、_reload_order.txt中的系数顺序是说coe_din输入系数的顺序还是coefficients file文件的顺序,还是两者都需要按这个顺序?
关于xilinx fir use reloadable coefficient的用法
最新推荐文章于 2024-10-15 12:43:56 发布
首先,我要告诉你的是Xilinx是如何给出的输出位宽。
OutputWidth=coefwidth+inputwidth+ceil(log2(Tap)) (*)
比如,这里coefwidth=12, inputwidth=12, Tap是滤波器的阶数,ceil是向上取整。如果阶数为48,最接近48的2^n为64,那么,(*)式最后一项即为6,那么输出位宽即为30。
如何截位?首先,应该求出输出的最大值,
Max(output)=Max(input)*sum(abs(coef)) (a)
这样保证不溢出,求得输出的最大值,化为二进制当然是补码了,即可确定输出最大位宽,系数和输入都是有符号二进制补码表示,那么高两位都是符号位,从次高位向下截取
(a)式所确定的位宽,但这时所得位宽仍较大,实际上由于ad量化噪声引起的部分还可以去除,使得最终位宽仍可进一步减小。但目标是大信号不溢出,小信号不损失。