资源描述
同步电路设计中CLOCK SKEW的分析 作 者:康军 黄克勤 张嗣忠 摘 要:Clock shew是数字集成电路设计中一个重要的因素。本文比较了在同步电路设计中0clock shew和非0clock shew时钟分布对电路性能的影响,分析了通过调整时钟树中CLOCK SKEW来改善电路性能的方法,从而说明非0clock shew时钟分布是如何提高同步电路运行的最大时钟频率的。 关键词:clock shew;同步电路;时钟树;时钟信号 1 引言 在当前的数字集成电路设计中,同步电路占了很大部分。所谓同步电路,也就是电路中的数据锁存是由一个或多个分布在全电路中的时钟信号来控制的。同步电路中包含三种主要结构:组合电路、时序电路和时钟分布网络。组合电路用来实现各种逻辑计算;时序电路作为存储单元,用来存储由时序电路计算得到的逻辑值;时钟分布网络的作用是向整个电路中的时序逻辑提供正确的时钟信号,以达到使整个电路正确运行的目的。同步电路中这三种结构之间的关系可用图1来表示。 可以看出,时钟网络在同步系统中的作用非常重要,正确的时钟网络可以避免在同步电路中出现竞争冒险及逻辑错误。只有保证到达各个时序单元(包括寄存器、锁存器)的时钟信号的时序是正确的,才能保证时序单元在每个时钟周期锁存得到正确的逻辑值,从而保证整个电路功能的正确。 当前比较流行的时钟分布网络是一种树形结构(以下简称时钟树,见图2)。 2 CLOCK SKEW问题的提出 由于时钟信号要提供给整个电路的时序单元,从而导致时钟线非常长,并构成分布式RC网络。它的延时与时钟线的长度及被时钟线驱动的时序单元的负载电容、个数有关,由于时钟线长度及负载不同,会导致时钟信号到达相邻两个时序单元的时间不同,于是产生所谓的CLOCK SKEW。 图3所示是为一条局部路径,R1、R2为两个寄存器,C1和C2来自同一个时钟源,时钟信号沿时钟树到达寄存器R1和R2的延迟时间分别为TC1和TC2,用Tskew表示它们之间的CLOCK SKEW,则有Tskew=TC1-TC2。当C1比C2后到时,Tskew为正,当C1比C2先到时,Tskew为负。 在时钟树中应如何合理安排CLOCK SKEW,才能使电路工作在最优性能状态呢? 以下我们以边沿触发的触发器作为时序单元,来讨论CLOCK SKEW的问题。为方便讨论,先介绍几个和触发器有关的概念。 (1)Setup Time(Ts):触发器建立时间。即要求数据端信号在时钟信号触发沿到来之前提前到达的最小时间,以保证时钟信号到来时数据端信号能被正确锁存。 (2)Hold Time(Th):保持时间。即要求在时钟信号触发沿到来之后,数据端信号仍然维持的最小时间,以保证数据能被正确锁存。 (3)Dcq:时钟端到触发器输出端Q的延时。它表示在时钟触发沿来到之后输入端数据被锁存并通过触发器的时间(假设输入端数据在这之前已经稳定)。3 对同步电路中CLOCK SKEW的分析 下面我们仍以图3中的电路为例。假设图中组合逻辑电路部分的延时为Dp,时钟周期为Tcp。通过以下推导,可以得出Tskew要满足两个条件: (1)第K个时钟周期的时钟信号到达R1的时间为KTcp+TC1,第K+1个时钟周期的时钟信号到达R2的时间为(K+1)Tcp+Tc2。第K个时钟周期数据信号经R1锁存后到达R2数据端的时间为KTcp+Tc1+Dcq+Dp。考虑到建立时间(Ts)的要求,这个时间应比第K+1个时钟周期的时钟信号到达R2的时间提前Ts,所以有下式:(2)考虑到保持时间(Th)的要求,第K个时钟周期数据信号经R1锁存后到达R2数据端的时间应比第K个时钟信号到达R2的时间晚Th,有下式:要使电路正常运行,相邻两个触发器之间的CLOCK SKEW必须满足以上式(2)、式(4)两式。当式(2)不满足时,称发生了setup violation,参见图4;当式(4)不满足时,称发生了hold violation,参见图5。 从以上两式可以看出,当发生了setup violation时可以通过延长时钟周期(Tcp),即降低系统频率来解决;而当发生了hold violation时,电路一定无法正确工作,即使增加时钟周期也无法改善。因此hold violation是一定要避免的。 式(2)、(4)两式决定了在给定系统时钟频率的情况下,相邻两个触发器(或锁存器)之间CLOCK SKEW应满足的范围。通过合理插入时钟树来使得时钟信号几乎同时到达所有触发器,从而相邻触发器之间的CLOCK SKEW为0(或接近0)。 4 对CLOCK SKEW的优化方法 图6所示为两条相邻路径。现利用它来说明如何通过优化CLOCK SKEW来改善电路性能。 图中各个触发器的Dcq(时钟到输出端延时)都为2ns,R1和R2之间的组合逻辑1和连线延时共为6ns,R2和R3之间的组合逻辑2和连线延时共为10ns。因为后者大于前者,所以R2到R3之间的路径为关键路径。如果C1,C2,C3同时到达各个触发器(在时钟树中的延时都为5ns),即CLOCK SKEW为0,则时钟可以达到的最高频率是由关键路径决定,为1/(10+2)=83MHz。 通过调整这三个时钟信号到达各个触发器的CLOCK SKEW,我们可以提高这一最高频率。具体方法为设法减小时钟信号到达R2触发器的延时,使之等于3.5ns,即时钟到达R2的时间比到达R3的时间少1.5ns(C2先于C3到达触发器)。这样就给了R2和R3之间的信号传输以更多的时间。则此时最高频率可达到1/(10+2-1.5)=95MHz,系统的频率性能提高了14%。 注意:调整后的CLOCK SKEW必须要满足上面的式(2)、(4)。 同样是图6,如果假设R1和R2之间的组合逻辑1和连线延时共为10ns;R2和R3之间的组合逻辑2和连线延时共为6ns。则当CLOCK SKEW为0时,时钟频率最高为83MHz。但当增加时钟信号到达R2触发器的延时,使之等于6.5ns后,最高时钟频率仍旧可以提高至95MHz。 由以上分析可知,合理的安排关键路径中相邻触发器的CLOCK SKEW,可以大幅度提高整个电路的最高工作频率,从而优化电路的性能。 基于当前数字集成电路设计中插入时钟树的的形式,可以通过在时钟树中选用不同尺寸的CLOCK BUFFER以改变时钟信号到达触发器的延时,从而改变CLOCK SKEW的方法来优化电路的时序,使电路工作在最优性能。下表列出了某种特定工艺下不同尺寸的CLOCK BUFFER对应的延时情况。 通过选用较小尺寸的CLOCK BUFFER,一方面可以增加时钟的延时来改变CLOCK SKEW,还可以减小功耗。5 结论 插入时钟树时设法使时钟信号同时到达芯片上所有触发器(或CLOCK SKEW基本等于0),虽然可以保证整个电路正确工作,但却不一定使电路工作在最优性能下。针对具体的路径延时,特别是关键路径的延时,合理地调整时钟信号到达各个触发器(或锁存器)的时序,也就是合理调整CLOCK SKEW,可以大幅度提高电路的工作频率。 本文只对同步电路中只有一个时钟源的情况下,CLOCK SKEW的问题进行了分析,这种分析同样适用于当前SOC设计中多时钟域的情况,只要针对每个时钟信号分别运行以上分析方法进行CLOCK SKEW的优化即可。 参考文献 1 lvan S.Kortev,Eby G.Friedman,Timing Optimization Through Clock Skew Scheduling,M.KLUWER ACADEMIC PUBLISHERS2 Jan M.Rabaey,Digital Integrated Circuits A Design Perspective,M.PRENTICE HALL Interational,Inc.3 Dimitrios Velenis,Kevin T.Tang,Ivan S.Kourtev,Victor Adler,Franklin Baez,Demonstration of Speed Enhancements On An Industrial Circuit Through Application of Non-zero Clock Skew scheduling.C.Electronics,Circuits and Systems,2001,ICECS 2001.The 8th International Conference on Volume:2,2001.4 Himanshu Bhatnagar,Advanced Asic Chip Synthesis:Using Synopsys Design Compiler And Primetime,M.KLUWER ACADEMIC PUBLISHERS
展开阅读全文