由于实际生产过程中的工艺偏差,时钟模块输出的实际频率和设计频率相差比较大,因此在测试阶段,需要对输出频率不在目标范围内的时钟模块进行修调。基于二分法相对遍历法具有快速收敛的特点,设计自动修调电路并分析了异步脉冲同步带来的修调误差。自动修调电路通过 ATE(Automatic Test Equipment)提供的慢速脉冲对时钟模块输出的时钟计数,用二分法自动改变 trim 值,从而达到快速修调的目的,节省了测试时间。

 
中图分类号: TN492
 
文献标识码: A
 
DOI:10.16157/j.issn.0258-7998.182211
 
中文引用格式: 孟博,颜河,管金凤 . 时钟模块自动修调电路设计[J]. 电子技术应用,2019,45(5):14-16,22.
 
英文引用格式: Meng Bo,Yan He,Guan Jinfeng. Design of auto trim circuit for clock generation module[J].
 
Application of Electronic Technique,2019,45(5):14-16,22.
 
Design of auto trim circuit for clock generation module
Meng Bo1,2,Yan He1,2,Guan Jinfeng1,2
 
1.State Grid Key Laboratory of Power Industrial Chip Design and Analysis Technology, Beijing Smart-Chip Microelectronics Technology Co.,Ltd.,Beijing 100192,China; 2.Beijing Engineering Research Center of High-reliability IC with Power Industrial Grade, Beijing Smart-Chip Microelectronics Technology Co.,Ltd.,Beijing 100192,China
 
Abstract: Due to the influence of the process, actual frequency of clock generator module always has some deviations from target, it is necessary to trim the clock module whose frequency is not as it was expected. Compared with traversing method, dichotomy has higher convergence rate. Auto trim circuit was designed based on dichotomy,
and measurement error caused by synchronous of referenced pulse was analyzed. Auto trim circuit counted output of clock generator module during high level of referenced slow pulse which was generated by automatic test equipment, and trim value was changed using dichotomy, achieving the purpose of saving measure time.
 
Key words : auto trim;dichotomy;measure time
 
0 引言
集成电路的生产过程中,制造工艺会有一定的偏差,造成生产出的时钟模块的输出不符合要求[1]。因此需要通过改变 trim 值调节时钟模块的相关参数,将其输出频率修调至目标频率范围,从而提高芯片良率[2-3]。
 
进行修调时,当输出频率在目标频率范围之内时,认为修调成功,不再改变 trim 值,否则继续修改 trim 值直到修调成功或者达到最大修调次数。改变 trim 值的方法通常有两种。一种是遍历法,一种是二分法。假设 trim 值是 N bit。使用遍历法时,trim 值每次改变 1,最大修调次数是 2N;使用二分法时,trim 值每次改变 2n,n 为小于 N 的整数,最大修调次数是 N。
 
遍历法控制简单,当遍历了所有的 trim 值时,能找到最优的 trim 值,但测试时间较长。相比遍历法,二分法中每次 trim 值的改变都会排除当前可取 trim 值范围内一半的 trim 值,整个过程中只取几个特殊的 trim 值,因此测试时间短,但存在可能找不到最优 trim 值的问题。当只要求把时钟频率修调到目标范围内且不需要寻找到最优 trim 值时,使用二分法可以节省较多的测试时间,降低测试成本,且 N 值越大,节省的时间越多。
 
本文利用二分法设计时钟模块的自动修调电路,可以对时钟模块进行快速修调,降低测试成本。
 
1 二分法原理
二分法常用于求函数零点的近似值,原理是:取函数 f(x)零点所在区间[a,b]的中点,比较区间中点处的值 f((a+b)/2)和 0 的大小,根据比较结果用(a+b)/2 代替 a 或者 b,重复上述步骤,使区间的两个端点逐步逼近零点,进而就可求得零点近似值。该方法的使用条件是:函数 f(x)在区间[a,b]上连续且 f(a)·f(b)<0。
 
将二分法应用到时钟模块的修调中,假设时钟模块可取的 trim 值范围是[trim_l,trim_h],时钟频率和 trim 值的关系是 f(trim),目标频率范围是[fl,fh]。根据二分法的使用条件,可知,当[f(trim_l)-fh]·[f(trim_h)-f1]<0 时,可以使用二分法来求满足条件的 trim 值。
 
另外,由于 trim 值是离散的,当 trim 的 step 大于目标频率的变化范围时,可能不存在使时钟模块的输出处于目标频率范围内的 trim 值,如图 1 所示。
 
 
图 1 中 trim step 大于目标频率的变化范围,导致每个 trim 值都无法对应到目标频率范围内,找不到满足要求的 trim 值。因此设定的目标频率变化范围应该大于 trim step 并且在芯片正常工作要求的范围之内。
 
2 自动修调电路设计
自动修调电路主要由脉冲同步器 Syn、计数器 Counter、比较器 Compare、修改 trim 值模块 Adjust 组成。修调电路的构造以及和外部 ATE、时钟模块 OSC 的连接关系如图 2 所示,pulse 是 ATE 提供的慢速脉冲,clk 是需要修调的时钟,trim_value[N-1:0]是 OSC 模块的 trim 值。
 
 
修调电路的工作原理如图 3 所示,图中 c1 是在 ATE 提供的脉冲高电平期间对 clk 进行计数的计数值;c2 是脉冲个数计数器。为了简化电路设计,不采用比较 clk 实际频率和目标频率范围的方法判断是否修调成功,而是将目标频率范围[fl,fh]转化成计数器 c1 的目标取值范围[Llimit,Hlimit],如果计数结束时 c1 的值在[Llimit,Hlimit]之间,则认为修调成功。本文假设 OSC 输出时钟频率随着 trim 值的增加大致呈增加趋势。
 
 
trim 的初始值设为中间值 2N-1,c1 和 c2 的初始值设为 0。
 
修调电路接收 ATE 提供的慢速脉冲 pulse 和 OSC 的输出时钟 clk。在 pulse 的高电平期间对 clk 计数,高电平结束后,将计数值 c1 与设定的计数值上下限比较。比较结果有三种情况:(1)c1 大于 Llimit 并且小于 Hlimit,说明 OSC 输出频率处于目标频率范围,修调成功;(2)c1 大于上限 Hlimit,说明 OSC 输出频率高于目标频率范围,将 trim 值向降低 OSC 输出频率的方向调整;(3)c1 小于 Llimit,说明 OSC 输出频率低于目标频率范围,将 trim 值向增高 OSC 输出频率的方向调整。比较结果为(2)和(3)两种情况时,调整 trim 值之后重复上述步骤。如果输入 N 次慢速脉冲后仍然没有修调成功,那么认为不能通过改变 trim 值将时钟模块的输出频率修调到目标范围,修调失败。

3 慢速脉冲同步和测量误差

ATE 输出的 pulse 和 OSC 输出的 clk 是异步关系,所以需要将 pulse 同步到 clk 时钟域之后使用。同步电路用两级级联的寄存器实现,如图 4 所示。
 
 
假设 pulse 宽度等于(m+n)T,其中 m 为任意正整数,n 为小于 1 的任意实数,T 为 clk 的周期。同步后的 pulse_syn 相对同步前的 pulse 脉冲宽度会有所改变,最大误差是 pulse_syn 的脉宽比 pulse 的脉宽近似多一个 clk 周期或者少一个 clk 周期,因此 clk 的计数结果 cnt1 与 m+n 的最大差值的约等于±1。
 
以 m=2 为例对同步前后的脉冲宽度进行分析,如图 5 所示。
 
 
当 n=0 时,pulse 可能会被 2 或者 3 个 clk 上升沿采集到。被两个上升沿采到时,不会发生亚稳态,同步前后的脉冲宽度不变,如图 5(a)所示;被三个上升沿采到时,脉冲的前后沿都会发生亚稳态,亚稳态稳定结果的随机性使得同步前后的脉冲宽度不同[5],如图 5(b)~图 5(e)所示。
 
从图 5 中可以看出当同步前的脉冲宽度等于 2 倍 clk 周期时,同步后的脉冲宽度可能是 1、2、3 个 clk 周期,同步造成的脉宽误差最大是 1 个 clk 周期。当 n≠0 时,pulse 可能被 2 个或者 3 个或者 4 个 clk 上升沿采集到,分析方法同 n=0,同步后脉宽最大误差约等于 1 个 clk 周期。
 
下面分析因为脉宽变化导致的 clk 频率测量误差。
 
同步之前的脉冲宽度为:
 
 
由式(5)可知,ATE 提供的脉冲宽度越宽,频率测量误差越小。
 
增加脉冲宽度可以减小测试误差,但同时也会增加测试时间,因此需要在测试误差和测试时间之间进行平衡。
 
另外,为了保证 trim 值的每次改变都能有效地体现出来,不被脉冲同步所造成的误差掩盖,在脉冲宽度不变的情况下,trim 值最低位的改变应使计数器 c1 的值至少改变 2。为了满足该要求,设脉冲宽度最少应该是 b s。假设 OSC 的 trim step 是 a Hz,那么:
 
 
式中单位是秒。
 
通过上述分析,可知慢速脉冲的宽度应该由测量误差和 trim step 共同决定。
 
4 仿真结果
根据二分法原理设计时钟模块自动修调电路,被修调的时钟模块的频率和 trim 值是单调增加的关系,trim 位宽为 5,trim step 大约是 fstep=1.5%×2 MHz。目标频率是 ftarget=2 MHz,接收的频率范围是 ftarget±2%,即 1.96 MHz~2.04 MHz,要求测量误差小于±1%。由式(1)、式(5)得到的最小脉冲宽度为 100/(1.96×106)≈51.02 μs;由式(6)得到的最小脉冲宽度为 2/fstep=2/(2×106×0.015)≈66.7 μs。因此最小脉冲宽度为 66.7 μs。为了减少测量误差且测试时间在承受范围内,此处选择 500 μs 的脉冲宽度。计数器 c1 的上下限分别对应于 2.04 MHz 和 1.96 MHz,它们的值分别是 1 020 和 980。仿真结果如图 6 所示,为了方便观察,将 c1 的值转化模拟波形显示。图 6(a)中在输入第 3 次脉冲后 success 信号变高,表示自动修调成功。修改时钟模型后再次进行仿真,如图 6(b)所示,在最大修调次数,即输入第 5 次脉冲后 fail 信号变高,表示时钟模块的输出偏离目标范围太多,无法通过修调使其输出频率满足要求。
 
 
从仿真结果可以看出,对于 trim 位宽为 5 的时钟模块,设计的自动修调电路能够在不多于 5 次输入脉冲后给出修调结果。
 
5 结论
对集成电路的时钟模块进行测试时,需要寻找处于目标频率范围的 trim 值。为了减少测试时间,设计自动修调电路,修调电路使用二分法改变 trim 值,二分法相对遍历法具有更快的收敛速度,trim 值的变化范围越大,二分法在测试时间上的优势越明显。ATE 提供的最小脉冲宽度应该由允许的测量误差和 trim step 共同决定。
 
参考文献
[1] 葛南,陈东坡 .ATE 测试中的 Bandgap Trim 技术研究[J]. 微电子学与计算机,2015,32(4):70-78.
 
[2] 葛南 .DC_DC Buck 芯片 ATE 测试中的 Trim 技术研究[D]. 上海:上海交通大学,2015.
 
[3] 李侠 . 离线式开关电源控制芯片功率器件及部分子电路设计[D]. 成都:电子科技大学,2011.
 
[4] 李文昌,王继安,李威,等 . 修调技术在高精度集成电路中的实现[J]. 微处理机,2006(1):1-2.
 
[5] 吴厚航 . 深入浅出玩转 FPGA [M]. 北京:北京航空航天大学出版社,2010.
 
作者信息:
 
孟  博 1,2,颜  河 1,2,管金凤 1,2
 
(1. 北京智芯微电子科技有限公司 国家电网公司重点实验室 电力芯片设计分析实验室,北京 100192;
 
2. 北京智芯微电子科技有限公司 北京市电力高可靠性集成电路设计工程技术研究中心,北京 100192)