噪声环境中如何减少或滤除偶发错误测量值?
扫描二维码
随时随地手机看文章
智能移动平均数
延迟线(DL)电路是一个广为人知的概念,是一个可将电信号延迟一段时间的逻辑元件。从DDR SDRAM(双倍数据率同步动态随机存取存储器)到DLL(延迟锁相环),延迟线的应用范围十分广泛。
在DL延迟线模块内,为生成一个确定性移相信号,我们需要设定逻辑元件的延时,并调整延时设置,以补偿制程、电压和温度(PVT)对测量值的影响。
图1: 延迟线示例
图1给出一个预定数量的延迟单元构成的延迟线电路和通过配置字实现的反馈通道(Dfb)的示例,通过延迟配置字,可以在Din引脚输入信号和Dout引脚输出信号之间设定所需延时。每个延迟单元在Din和Dl两个引脚之间生成固定的通道延时。
我们可以通过多种方式计算符合理想延迟要求的配置字,计算已知时钟延长一个周期所需延迟单元的数量就是其中一种方法。确定一个延迟单元的延时不难。
图2所示是这种计算方法的原理;ClkIN是已知时钟信号,输出是延长一个周期的ClkIN信号。这个模块的输出(延迟单元的数量)用于确定延迟线的配置,如图1所示。
图2: 延迟配置字计算示例
如果噪声或干扰在ClkIN上引起尖峰,测量精确度将会受到错误数据的影响。众所周知,错误的设置可能导致延迟线电路暂时性功能紊乱。
假设在一段时间内,参考周期比标称值小很多或大很多,输入延长线的新计算值将会与以前的数值有很大差异。图1所示的DL将会生成一个错误信号,被随机抖动信号吸收。
图3中的示例描述了当参考时钟ClkIN有一个大的峰对峰抖动脉冲时所发生的情况,这时延迟单元数量的计算值不同于标称值。
图3: ClkIN上的尖峰信号和错误延迟计算示例
对于这种问题,我们可以使用一个数字错误补偿电路, 通过智能方式计算这些数据的移动平均数。查看图3示例中延迟计算值,错误数据(delay=15和delay=12)可以忽略丢弃, 因为这些计算值远远小于平均数,同时可以使用新的采样的平均数delay=30更新上一个平均数。
移动平均数的原理(图4)是采集N个最新的测量值,然后计算这些数值的平均数。只有新数据值与上一次N个采样的实际平均数差别不是很大时,新数据才会加进缓冲电路(Sx)。
图4: 智能移动平均数电路
图4所示的有限状态机(FSM)可以精确地管理这项任务,检查每个新校准值,并将其与此时的平均数最大值和最小值进行对比。当新数值在设定范围外时,新数据将被滤除,不加进移动平均数内。
显然这个电路是取模运算,但是保留已存储采样数量(Sx) 的二次幂才是使运算逻辑最小化的最佳设置,这样可以最大限度减少加法器元件数量,节省通用除法器。新输入数据向右移两位,执行除四运算,零成本。
用于保存采样的缓冲器(Sx)的容量是M-2,这里M 代表输入数据总线位宽。该电路是由三个有进位功能的全加器组成,运算结果被有限状态机用于检查新输入数据。
有限状态机就是为该电路带来一些智能的逻辑电路。图5所示是有限状态机的流程图。
图5: 智能移动平均数FSM
在启动时,因为比较点没有平均值可用,所以第一个数据保存在Sx缓冲器内,代表初始瞬态值。当缓冲器写满数据时,开始计算平均值。当时钟频率高时,数据通道可能受到应力,为避免这个问题,可以加进一个小的计数器延迟。
图5所示的AVERAGE代表稳态。这里有限状态机在等待一个新的数据点,该数据点将与下一个状态上的平均值CHECK DATA对比。从硬件角度看,比较任务量不大,而且对滤除错误采样很有效。
数据比较过程与我们要测量的数据有关。当数据受到PVT影响时,例如,本文讨论的延迟线,因为主要是温度变化影响数据,所以数值变化比较小。在这种情况下,我们预计新输入数据与前一个平均数和最新四个数据的平均值差别不大。对于这种特殊情况,可以采用下面方式完成数据比较过程:
● 只比较最高有效位
● 如果这部分与平均值相差不太大,新数据将被保存,同时平均值也会相应地更新
● 如果这部分与平均值相差太大,新数据将被丢弃,平均值保持不变
图6给出一个比较表的示例。新输入数据的可能取值范围分成四部分,只有最高有效位用于数据比较,某些情况还需要检查第三位。当新数据的最高有效位是“00”时,前四个采样平均值的最高有效位在“ 00 ”和“01”之间是可以接受的。否则,新输入数据将被丢弃。同样,当输入数据是“01”、“10、”、“11”时,新输入数据将被丢弃。
图6: 数据比较方法
结论
本文讨论一个能够滤除逻辑电路输入数据受到各种干扰的数字电路, 例如,滤除本文讨论的延迟线输入信号受到的干扰。这个智能移动平均数电路有助于降低干扰影响,不只是计算平均值,还能滤除可能严重影响移动平均数的错误采样,错误采样滤除规则取决于输入数据的预计变化速率。
在本文中我们看到,如果影响数据的因素是温度,我们预计采样变化率很小,在这种情况下,比较逻辑简单,元件数量少。计数平均数所需的元件数量还取决于错误数据的发生率;如果只是偶发错误,平均数逻辑单元数量就会少些(例如,图4);如果偶发错误发生率高,则必须提高缓冲器容量,使用8个或16个元件。