>
解决时钟偏斜的常用方法
时钟偏斜是不可避免的,关键问题是一个系统能够容忍多大的时钟偏斜。通常,可允许的时钟偏斜是由系统要求和工艺参数(例如时钟缓冲器与寄存器的延时)来决定的。设计思路不同,得到的时钟偏斜也不一样。用标准单元方法设计的电路通常要比全定制电路的时钟偏斜大一些。一般而言,一个系统中的流水线级越多,则由于时钟偏斜导致功能错误的可能性越大。
在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.