
ASIC设计中时钟偏移分析.docx
7页Analysis of Clock Skew in ASIC designCao Haitao, Zheng Jianhong(Institute for R&D of the 3th Generation Mobile Telecommunication Technology of Chongqing Chongyou Information Technology Co.Led, Chongqing 400065, P.R.China ) Abstract: Clock skew becomes more and more important to synchronization circuits in current ASIC design, and it is an increasing concern for high-speed circuit designers. Therefor, it has been a tough challenge to reduce defect of clock skew in designs. In this paper, firstly the generation principle of clock skew is analyzed. and then for solving its disadvantage we propose a approach that we insert diversified buffers in clock trees, in order to balance the clock network. Finally, we analyze how to fix the timing violation of our designs by using useful clock skew.Key words: ASIC design; clock skew; clock tree; setup violation; hold violation; CTS;ASIC设计中时钟偏移分析曹海涛,郑建宏(重庆重邮信科股份有限公司3G研究院,重庆400065)摘要:目前的ASIC设计中,吋钟偏移对同步数字电路的影响越来越大,它也越来越受到 高速电路设计者的关注,因此如何解决它给电路带来的不利影响成了设计中的重要挑战。
本文 分析了时钟偏移的产生机理,然后提出了怎样使用CTS在时钟树中插入不同驱动能力的缓冲器, 以平衡时钟网络,最后还分析了如何利用有用的时钟偏移来改善电路的时序关键词:ASIC;时钟偏移;时钟树;建立时间;保持时间;CTS:引言 在一个复杂的片上系统(SoC: System on Chip)中,吋钟线的扇出非常大,而且它 本身的电容与电阻也是非常可观,这时候可以把时钟线看作是分布式的RC线用时钟信号控 制的触发器,由于触发器离时蚀源距离不同,因而时蚀信号到达的时间不一样,这种效应称为 时钟偏移(clock skew)0 在高速专用集成电路(ASIC: Application Specific Integrated Circuits) 设计中,clock skew越來越受到设计者的关注,由于越来越小的门延迟,和每个周期用到更少 的逻辑门[1],所以时钟频率变得越来越高,这使得clock skew在ASIC设计中变得更加重要 一般而言,一个系统中流水线级数越多,clock skew导致功能错误的可能性就越大时钟信号 的目标Z—是对系统状态的更新进行同步,由于skew的存在,同步会受到影响,这可能导致竞 争现象以及错误的发生,因此如何解决它给电路带来的不利影响成了 ASIC设计中的重要挑战。
1 clock skew的产生机理分析在下面这个同步模型(图1)中,由两个组合模块CL (C1和C2)与两个触发器FF (FF1和FF2)构成,并且用七个吋序参数来表示:(1) 寄存器的最小和最大传递延时(trm.n和心Q2) 组合逻辑ci的最小和最大延时(S 和5心)⑶ 寄存器FF1与FF2 Z间互连线的传输延时/“⑷ 局部时钟时间,时钟从CLK pin到寄存器FF1,FF2的时间(心和%2)如下图所示:图1 clock skew模型电路最大传递延吋表示输入信号有变化吋,最慢的输出信号响应这种变化所需的吋间(最坏的 情况)这个延时确定了电路最大的允许速度一般所说的延时就是指最大传递延时最小传递 延时表示当输入有一个变化时,至少有一个输出开始变化所花费的时间这个时间通常比最大 传递延时小得多,更适合于研究时钟偏移(用它可以判断是否有竞争发生)简化讨论,现假定 锁存器的setup time等于0由于存在路径延时,在FF1和FF2处的局部时钟时间不同,此差异就是clock skew,设为》,5可以为正,也可以为负,这与布线方向以及时钟源的位置有关clock skew可能会影响电路的正常功能。
下面分析一下什么时候会出错:(1)在一个数据锁存到FF2之前,FF2的输入就发生了变化从FF1出来的数据在一个周期内不能传到下一个寄存器FF2假设为使电路正常工作,在“2之后的T时间内,第二个数据必须锁存到FF2内而第二个数据从FF1传递过來,实际到达时间为+ tr n^ + tn + inax,所以如果Z,2 +T<心+(”和+匚+ 口皿疋则可能出错,即可能出错条件为:—6 > T-rrmax-r„-rchmax 3为负),这说明吋钟到达R1的吋间比到达FF2的吋间延迟太多, 使得数据端信号在吋钟信号触发沿到来之前就发生了变化,这在ASIC设计中被称为setupviolation o(2) 一个数据在一个时钟周期内不能传到下一个寄存器FF2假设某个数据在-2时刻锁存到FF2,而下一个数据在FF1中,它最早到达FF2输入端的时间为弘+ /聞+匚+ 5・斷,如果02 >心+:罰+ /〃 + 口.罰,则可能出错,即岀错的条件 为》> 匚斷+匚+ 5,品,这说明时钟到达FF2的时问比到达FF1的时间延迟太多,使得数据端信号没能在时钟沿到來之后维持一段时间,这在AS1C设计中被称为hold violationoclock skew是不可避免的,关键问题是一个系统能够容忍多大的吋钟偏移。
从以上分析可以看出,可容许的clock skew是由系统要求和工艺参数(例如互连线和寄存器的延时)共同来决定的下面利用SYNOPSYS公司Astro中的CTS(clock tree synthesis)解决clock skew带来的不利彫响2 解决clock skew的方法Astro是在ASIC设计中流行的后端物理实现工具,它可以完成提取寄生参数、计算时延、 分析吋序、版图、布局和布线CTS是Astro中的吋钟树综合工具,在数字电路的设计中,它可 以在routing Z前插入时钟树CTS解决时钟偏移的一般方法是,通过分析时钟线路延迟,在时钟树中插入不同尺寸不同驱 动能力的CLOCK BUFFER以改变时钟信号到达触发器的延时,使时钟信号能在同一时间到达各个 触发器,让时钟偏移近似为零用这种方法可以使电路最大限度不受clock skew的影响,而正确 的工作图2为CTS对话框和做完CTO (Clock Tree Optimization)常见的吋钟树结构模型CLOCK图2 CTS对话框和生成的时蚀树模型我们述可以利用CTS分析出电路的clock skew report, report包括global skew, local skew和useful skewo例如下图为global skew的部分分析reporto图3 global clock skew分析report (部分)3分析利用useful skew改善电路的时序clock skew并非总是给电路带来负面影响,我们还可以利用它来改进电路的时序,使电路 工作在最优性能。
Astro V-2004.06以后的版本把useful skew加进了CTS的skew type选项里面(如 图2所示)在下图中,(I)的组合逻辑B延时过大,导致FF2产生了 0.15ns setup violation,而这时 我们可以利用useful skew在FF2处加上时钟延迟0.35ns,即在clock port到FF2的连线上插入 合适尺寸的clock buffer使电路满足时序(如(II)所示)⑴(0. 35ns)(II)图4利用useful skew可使某些电路满足时序在CTS中,我们可以利用astReportTiming命令去分析时序,如果timing report表明时序 中存在较小的setup violation或者hold violation,那么我们川以在运行useful skew CTS之前, 在Astro中设置以下命令,就能够改变useful skew CTS的优化行为,帮助电路修正这些时序 上的 violation o(1) define ataUsefulSkewOptimizeSetup 1 ,设置 1 为开,即表示 setup slack 将被优化; 反Z设置0为关。
2) define ataUsefulSkewSetupSlackTarget 0.250 示 useful skew CTS 将试图去完成 0.250s 的目标 setup slack, default 值为 0nso(3) define ataUsefulSkewOptimizeHold 1,设置 1 为开,即表示 hold slack 将被优化;反 之设置0为关4) define ataUsefulSkewHoldSlackTa咚cl 0.150表示 useful skew CTS 将试图去完成0.150ns 的目标 hold slack, default 值为 0ns4实验结果及分析下血通过实验比较一下利用useful skew CTS优化之前和优化之后的timing下图为优化 之前的 timing report:IF * • Start point : c32core/chipcore/zsp^top/zspUimefn/bank0.blk1-ram2/ran1/5prain2048xl6Jnner/CLK(Rising edge-triggered Flipflop clocked by zgclkcorel )End point : c32core/chipcore/zsD.top/zsp1_tctn/zsp500_tcm/ibank0.blkl_ran2.rddatai.30I* ( Rising edge-triggered flipflop clocked by
