当前位置:首页 > 工业控制 > 工业控制
[导读]定点滤波器通过频响仿真后,上板仍可能出现直流偏置或偶发大幅异常。FPGA实现既要控制有限字长产生的数值误差,也要保证级联运算各条路径处理同一个样本,二者不能互相替代。

定点滤波器通过频响仿真后,上板仍可能出现直流偏置或偶发大幅异常。FPGA实现既要控制有限字长产生的数值误差,也要保证级联运算各条路径处理同一个样本,二者不能互相替代。

数值问题首先发生在中间结果的收缩位置。两个有符号定点数相乘,完整乘积需要按操作数位宽确定足够的结果位数,小数位数也随之相加。多项累加时,再把结果强行截回原有字宽,可能丢失本来应保留的整数范围。对于系数已知的滤波器,可用输入幅度上界与系数绝对值之和估算最坏累加范围;不能仅凭随机输入很少溢出,就把统计表现当成全输入范围的安全证明。

低位截断还可能产生偏置。对于补码数直接丢弃低位,等效量化方向通常偏向负无穷,并非正负误差总能抵消。最近舍入可减小量化误差幅度,而恰好落在中点时的处理规则又影响长期统计偏差。采用中点取偶有利于避免固定朝一个方向处理平局,但不保证任意相关输入都严格无偏。实现时应把保留位、保护位以及被丢弃位的非零信息一起纳入判断,并用正负半量化步附近的输入验证符号处理。

舍入进位本身也可能把最大正数推到表示范围之外,因此饱和判断应基于足够宽的舍入结果,而非只检查舍入前数值。回绕会把大正数变成负数,在反馈结构中可能触发完全不同的动态行为;饱和虽能限制幅度,却引入非线性,也不能用来掩盖长期过载。更合理的方案是先证明中间位宽,再选择输出量化规则,并记录溢出次数,判断实际输入是否仍满足设计边界。参考模型应在与硬件相同的位置执行缩位,并明确中点和饱和规则。若只在整条浮点运算结束后量化一次,就无法复现多级截断的累计影响,比较误差也不能定位到实际损失位置。

精度正确后,还要检查运算的时间含义。以具有专用乘加与级联通路的器件为例,输入寄存器、乘法寄存器和结果寄存器可分别配置,级联数据与本级新乘积因此未必天然同拍。FPGA描述中的算式完全相同,不代表原语各端口的流水级数一致。如果上一段部分和属于前一个样本,本级乘积属于当前样本,最终输出依旧可能平滑变化,却已不是预定滤波公式。

对齐不能只数数据寄存器。操作模式、加减选择、时钟使能与有效标志,也必须对应同一笔数据。当某一级停顿而另一条支路继续前进,原本静态匹配的延迟会立即失效。可用样本编号建立逐级对照表,标出每个时钟边沿上各端口的样本归属,再决定各支路是否需要补寄存器。若采用可停顿流水线,应为所有相关状态定义一致的推进条件,不能单独延迟有效标志就认为对齐已经成立。

专用级联能够减少通用布线开销,但可用位宽、寄存器结构和列内连接方向都有器件边界。过长级联或跨列连接可能要求重新分段,增加延迟后又会影响并行支路的匹配。验证时,脉冲输入可以暴露抽头位置,交替符号和边界幅度可以暴露量化问题,随机停顿则可检查推进一致性。三类测试对应不同错误来源;只用正弦稳态比较幅度,容易把样本错位误认成普通相位差。

可靠的定点通路必须同时具有数值契约与节拍契约。量化位置、过载行为和样本归属都经过证明,专用乘加资源才能提供预期的精度与吞吐。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭