基于Astro工具的ASIC时序分析
引言
随着系统时钟频率的提高,时钟偏斜和干扰开始成为IC工程师重点考虑的问题。增大时序电路的时钟频率,减小时序电路的容差能提升未来的系统性能。低偏斜时钟缓冲器和锁相环时钟驱动器将帮助设计人员设计出速度、偏斜和抗噪性能等指标满足要求的电路系统,但必须将时钟电路设计为一个时钟系统,考虑时钟分步网络的各个方面,包括驱动器、传输线路和信号布线等。
时钟偏斜
时钟偏斜定义为在时钟分布系统中到达各个时钟末端(即器件内部触发器的时钟输入端)的时钟相位不一致的现象。如果时钟偏斜超过所允许的最大值,电路的同步可能会发生失效。
偏斜主要由两个因素造成:一是时钟源驱动器件的偏差,例如同一个PLL输出的不同时钟信号之间的偏斜;另一个是时钟分配网络的偏斜 。由于时钟信号驱动系统中的大量元件为了达到同步必须同时接收到时钟信号,因此它们之间的任何时间差异都将直接影响系统性能。小的偏斜可以忽略,但大到一定程度就会严重影响设计的时序,因此需要在设计中尽量减小其影响。
输出偏斜也叫做引脚到引脚的偏斜,它是指同一器件上同一跃迁的任何两个输出延时之间的差值。电子工程设计发展联合协会(JEDEC)将输出偏斜定义为单一器件输出之间的偏斜,该器件的所有驱动输入应连接在一起,输出部分在同一方向切换,并驱动相同的负载。目前,高性能时钟缓冲器中的常见输出偏斜约为200ps。器件到器件的偏斜也称为封装偏斜,被定义为在相同环境下工作的两个或多个独立器件的任何指定输出之间的传送延时之差。其中,相同的环境指的是相同的输入信号、电源电压、环境温度、封装、负载等。目前的高性能缓冲器中典型的元件到元件偏斜约为500ps。
时序分析
为了保证同步系统的正常运行,所有的时序单元必须在给定的时钟周期内正常工作。如果时序单元的总和超出了可用时间限制,系统就会发生故障。进行时序分析能够确定可能会占用时钟周期的所有因素并评估这些因素所带来的影响,令设计者了解其设计的电路能够以多快的速度运行,以及当前系统还有多大的宽裕度等。
使用同步系统基本元件的简化设计电路如图1所示。寄存器FF1在时钟的每个上升沿驱动,输出Q1并将其作为组合逻辑电路C2的输入信号。寄存器FF2使用与FF1相同的时钟进行控制。来自于组合逻辑电路C2的数据必须先于时钟到达,即需要一定的建立时间;而且必须要持续足够的时间以便使寄存器FF2能够获得正确的输出,即需要一定的保持时间。
解决时钟偏斜的常用方法
时钟偏斜是不可避免的,关键问题是一个系统能够容忍多大的时钟偏斜。通常,可允许的时钟偏斜是由系统要求和工艺参数(例如时钟缓冲器与寄存器的延时)来决定的。设计思路不同,得到的时钟偏斜也不一样。用标准单元方法设计的电路通常要比全定制电路的时钟偏斜大一些。一般而言,一个系统中的流水线级越多,则由于时钟偏斜导致功能错误的可能性越大。
在ASIC设计中,解决时钟偏斜的方法很多。比如:按与数据流相反的方向来分布时钟走线;控制时钟的非交迭时间来消除时钟偏斜;通过分析时钟分布网络来保证时钟偏斜在合理的范围内等。
上面3种方法中最好的是通过分析时钟网络来保证合理的时钟偏斜。设计人员可以通过调整一些参数来控制时钟分布网络,以达到较好的效果。可调整的参数包括时钟网络的互连材料、时钟分布网络的形状、时钟驱动和所用的缓冲配置、时钟线上的负载(扇出)、时钟的上升和下降时间等。总之,时钟分布网络的目的就是使与时钟信号相连的功能子模块的互连线大致等长。
Astro工具的使用
Synopsys公司的Astro是在ASIC设计中流行的后端物理实现工具,是深亚微米芯片设计进行设计优化、布局、布线、计算时延的设计环境。Astro可以满足5千万门、GHz时钟频率、采用0.10um及以下工艺SOC设计的工程和技术需求,其基本流程如下:
1. 读入网表,用晶圆厂提供的标准单元库、Pad库以及宏模块库进行映射;
2. 预布局,规定芯片的大致面积、引脚位置以及宏单元位置等粗略的布局信息;
3. 读入时序约束文件,设置好时序建立的菜单,为后面进行时序驱动的布局布线做准备;
4. 详细布局,力求使布线阶段能顺利满足布线布通率100%的要求和时序要求;
5. 时钟树综合,为了降低时钟树偏斜而产生由许多驱动单元组成的时钟树;
6. 布线,先对电源线和时钟信号布线,然后对信号线布线,目标是最大程度地满足时序;
7. 为满足设计规则从而能成功制造出芯片而做的修补工作,如填充一些dummy单元等。
上面7个步骤是Astro设计的基本流程,下面针对设计中的时序偏斜对第5部分时钟树综合进行重点分析。
时钟树综合是时序优化处理中最重要的一步。时钟树综合的目的是为了减小时钟偏斜和传输延迟,通常是将最重要的时钟放到最后来综合,这是因为前面综合的时钟可能会因后面插入的缓冲器而受到影响。这些缓冲器在芯片内部应均匀分布,力求使时钟偏斜和传输延迟保持在设计范围之内。
时钟树综合解决时钟偏斜的一般方法是:通过分析时钟线路延迟,在时钟树中插入不同尺寸不同驱动能力的缓冲器以改变时钟信号到达触发器的延时,使时钟信号能在同一时间到达各个触发器,让时钟偏斜近似为零。用这种方法可以使电路尽可能不受时钟偏斜的影响,而正确工作。时钟树综合对话框和做完时钟树优化后常见的时钟树结构模型如图2所示。
在进行完时钟树综合与优化之后,可得到电路的时钟树偏斜报告,报告包括全局偏斜(global skew),局部偏斜(local skew)和有用偏斜(useful skew)。此时的时序应为正,否则还要进行继续优化。
结语
对于复杂的同步系统而言,创建时序拓扑并进行时序分析是保证ASIC设计成功的基本因素。解决时钟偏斜的方法很多,主要目的是将时钟偏斜的影响降到最低。其实时钟偏斜并非总是给电路带来负面影响,我们还可以利用它来改进电路的时序,使电路工作在最优性能。
参考文献
1 Steve Furber. ARM SoC 体系结构[M] . 田泽译. 北京:北京 航空航天大学出版社,2003.
2 Synopsys.Synopsys Astro user guide, Clock Tree Synthesis and Clock Tree
3 Optimizations, V-2004.06
4 潘松,黄继业. EDA 技术实用教程,北京,科学出版社,2002
5 D. Harris, M. Horowitz, and D. Liu, “Timing analysis including clock skew,” IEEE Trans. Comput.-Aided Design, vol. 18, no. 11, Nov. 1999.
6 E. G. Friedman, Clock Distribution Networks in VLSI Circuits and Systems.New York: IEEE, 1995.
评论