随着光刻和集成电路制造工艺的不断进步,以及芯片的特征尺寸从深亚微米到纳米的迅速采用,人们一方面因为芯片的功能极大提高而受益,另一方面,当逻辑门的沟道长度减小时,门的开关时间会减小,这意味着输出驱动器上升时间变短,或者说时钟频率可以更高。同时,所有与信号完整性SI(signal integrity)相关的问题都变得更加严重。
提起串扰,人们通常会首先想到PCB板级信号线相互作用和影响,事实也是如此,串扰往往和电磁干扰EMI联系在一起。信号完整性分析和研究包括宏观范围的物理互连(例如,IC封装、电路板、接插件、电缆等)如何影响信号和电源分布的质量,并采取新策略,例如,采用新的信号完整性设计技术,对设计用新的建模、仿真和测量工具进行验证。虽然芯片设计技术已经采用了 SiP并考虑了从芯片到封装的信号完整性,但是,实际上封装与芯片的分析是分别单独处理。在芯片的电学特性中,时序、串扰和功耗是三项相互相关的重要分析内容。因此,需要了解芯片在物理设施过程中的串扰产生和现象、产生的因素、对芯片引起的危害及其预防,即对串扰的分析和实际解决方案。
一、信号串扰与功能故障
1、串扰的产生
芯片上的串扰是由互连线之间的寄生耦合引起的噪声,这种耦合反映了物理世界非理想化的特性。随着芯片特征尺寸的细化,互连线的物理尺寸以及间距变小,从而导致互连线之间的耦合效应增大,串扰随之产生并增强。
串扰会导致信号延迟和毛刺两类问题,从而影响芯片的时序性能以及正常功能。在分析串扰时,我们将产生串扰信号源的网络称为侵害网络(aggressor net或attacker),受到串扰的网络称为受害网络(victom net)。当侵害网络上的信号在0 和1电平之间变换时,受害网络上会产生相应的串扰噪声,这种转换噪声能使受害网络的信号转换变慢、变快或出现非单调转换等现象,从而干扰或破坏信号。如果噪声使信号出现非单调转换,便将产生一个伪脉冲,叫做毛刺(glitch)。毛刺干扰有多种类型,主要分为(1)过冲,受害节点上的信号超过电源电压;(2)下冲,指受害节点上的信号低于接地电压。这些脉冲破坏了门电路所保存的状态,使门电路不起作用,或者起错误作用,从而引起带有门电路输入的触发器和锁存器出现功能故障,如下图所示。
2、噪声容限
CMOS电路单元可以承受一定程度的噪声,而不会导致单元输出故障,这种特性称为噪声抵抗能力,我们通过噪声容限来对其说明。根据电压转换特征VTC(Voltage transfer characteristic)曲线,当处于单位增益(unity gain)点时,信号变化率最大,这时,噪声容限有两种定义方法:单源噪声容限(SSNM,single-source noise margin)和多源噪声容限(MSNM,multiple-source noise margin)。在工程中的实际噪声会来自电路中中的任意一级或多级。
侵害网络的信号可以是强型(例如,上升时间短或转换率高,high slew rate),或者是弱型(例如,上升时间长或转换率低)。信号串扰可以是相加性,也可以是相减性的,侵害网络和受害网络之间的相对信号极性决定它们之间的耦合或串扰效应,即常说的米勒效应。
二、串扰信号分析
串扰会导致信号延迟和毛刺两类问题,从而影响芯片的时序性能以及正常功能。目前工业界用于串扰分析采用的工具包括Cadence公司的CeltIC或Synopsys公司的PT分析串扰脉冲和串扰延迟。
1、串扰分析
串扰分析的内容主要分成两个方面,即串扰脉冲的分析和串扰延迟的分析,分别体现为电压敏感值的计算以及延迟的计算。串扰的分析可以在芯片设计的各个阶段进行,它们都同时分析两种不同类型的噪声问题。
分析噪声时,需要考虑的因素有:时序窗(timing window)、噪声阈值设定、噪声库以及噪声模型的选择和耦合电容的过滤等。
(1)时间窗(TWF,timing window format)文档的应用是噪声分析中一个重要工具,它可以比较实时地反映芯片实际工作时的信号翻转情况,从而真实地分析噪声影响,避免过于悲观的噪声分析结果,从而降低设计的难度。
如图所示,图中的两条相互影响的信号线O1和O2是经过I1和I2两个门电路传输过来的信号,假设I1的信号转变窗是在2ns和6ns之间,而I2的信号转换窗在5ns和9ns之间,则两个信号只在5ns和6ns之间的时间域内相遇,故只需在该范围内分析噪声即可,如果的时间窗在2ns和5ns之间,而I2信号的时间窗在6ns和9ns之间,则这两个信号没有交错的时间,故可以忽略其相互之间的噪声影响。EDA工具一般假设没有时间窗,计算出噪声问题,过滤低噪声网络,然后读入时间窗,对高噪声网络进行分析,从而降低分析的复杂性和时间。
(2)在分析毛刺时,需要制定噪声阈值的大小,CeltIC的处理较为保守,一般为20% Vdd ,在Astro中一般默认为35% Vdd。也就是说在供电电压的多少百分比以内的噪声是安全的。
(3)噪声库和噪声模型的选择影响EDA工具进行噪声分析的精确性和时间,在初步评估阶段一般选择精确度较为粗糙的算法,从而完成噪声的快速评估,在最后的sign-off阶段则需要选用精确度较高的算法,从而精确地定义噪声问题所在。
对于延迟的计算,先要考虑由侵害网络与受害网络之间的耦合电容和受害网络对地电容产生的瞬态电压,根据下式决定受害网络的影响。
参数过滤也是减少计算复杂度的一种方法,主要的参数有:绝对耦合电容、相对耦合电容、单个峰值耦合噪声及累计峰值耦合噪声。当两条信号线之间的耦合电容小于一定值时,便忽略计算其噪声。当两条信号之间的耦合噪声小于一定的值,也认为是没有噪声影响,延迟计算主要有以下3种状况:
- 最大可能延时:假设所有侵害网络静止,用保持电阻计算。
- 最小延时:侵害网络与受害网络同向,用最快slew和最快vector计算。
- 最大延时:侵害网络与受害网络反向,用最慢slew和最慢vector计算。
2、串扰与延迟
耦合噪声也会改变关键路径延时,导致电路建立或保持时间的违例。当串扰使信号转换变慢或变快时叫做串扰延迟,通过增量延时分析可以捕捉到。
如上图所示,所示输入in2从高电平变为低电平,通过反相器后导线in2_x 电平由低变高。同时,与之相临近的互连线a1,a2电平下降,由于耦合电容的存在导致in2_x由低向高的翻转过程中出现短暂的电平下降过程,使得上升时间增加。当a1的下降沿作用到受害网络,该信号的转换变慢,延迟明显增大,会导致产生setup的时序违例。
3、电压降与串扰
电压降对于串扰的影响体现在两个方面:毛刺的传播和延迟的变化。根据噪声容限的定义,其中毛刺的传播会产生电路的误操作,而延迟的变化则会产生setup和hold的时序违例。很多噪声sign-off的工具,基本上都支持这种带IR Drop的噪声分析,其中IR Drop文件有一定的格式,它可以是EDA工具输出的文件,也可以根据格式自己编写。
4、串扰与低功耗
随着低功耗指标的深入,降低电压、多阈值单元、多电压区域等技术的应用,以及工艺的发展和演变,伴随低功耗而产生的一系列串扰问题也不可忽视。
单一通过降低电压实现的低功耗技术主要有自适应电压调变技术,芯片的工作电压能够在一定范围内调整。从上面的分析得出,降低电压则晶体管的噪声容限阈值变小,可能会导致串扰脉冲的传播以及由不同路径上串扰延迟的增加而产生的setup和hold的时序违例,这种情况下对于噪声的分析和优化相对比较简单,只要解决最坏情况下的噪声问题即能保证芯片的稳定工作。
当采用多阈值多电压的技术时,噪声分析难度在于每种不同类型的噪声库的建立,以及EDA工具对于工艺变化影响的考虑。所以在低功耗条件下,需要定义多种工艺条件进行分析。
三、信号串扰的预防与修复
解决串扰问题主要从预防串扰和修复串扰两个方面着手,方法有:提高受害网络驱动器的驱动强度、在受害网络中插入缓冲器、降低侵害网络驱动器的驱动强度、将受害网络从主要侵害网络处移开等。
1、串扰预防
1)保护受害网络
串扰产生在信号的转变过程中,而时钟信号的翻转概率最高,故合理的设计时钟网络可以有效地预防串扰的产生。时钟网络及其他高扇出网络包含许多级逻辑电路,时钟树网络中的每一个接收器都可能引起一个小的串扰增量,这些由时钟源至目的地的延迟之和(即总增量)足可以引起一个很大的定时扰乱。将时钟网络布线间隔增加1倍或2倍,再将时钟网络布线限制在拥挤程度不高的顶部金属层内,可以有效消除时钟网络的串扰延迟。屏蔽时钟网络布线是另一种方法,不过这种方法有一个缺点,那就是时钟等待时间会因接地电容增大而增加。虽然增加间隔、采用屏蔽及利用保留金属层这3种方法适用于时钟和其他高扇出网络,但它们都会占用额外的布线空间和资源。
2)增强受害网络对串扰的免疫力
在串扰噪声干扰具有极强破坏性的异步网络上,应尽量使用高驱动单元。在复位网络的结构中使用髙驱动单元可提髙潜在侵害网络的门限,从而降低受害网络的受害程度和数量。
在时钟树综合阶段使用高驱动单元,可降低串扰量,减少时钟树和复位树上的受害网络。减少时钟树的插入延迟也意味着沿启动时钟和捕获时钟路径上累加的递增串扰增最更少。
2、串扰修复
1)增强驱动器单元能力
通过对受害增强网络上的驱动器的单元驱动能力可以修复最大延迟扰乱。在不产生新扰乱的情况下修复受害网络,我们可以根据串扰增量的大小来选择新驱动器强度,由此确定单元扩容的程度。
2)在受害网络上插入缓冲器
插入缓冲单元是处理信号完整性时一项有效的修复技术,它可以解决因功能性故障、延迟和竞争条件(race condition)等现象造成的电容串扰噪声脉冲、过压与电压过低等问题。加入缓冲器的数量必须尽可能地少,因为插入大量的缓冲器可能造成电路布局上的额外拥挤或混乱,必须重新计算电路的寄生效应及时序信息,从而延长设计的周期时间。此外,若加入过多缓冲器,反而会增加受害网络的数量。
3)插入延迟单元
通过延迟单元插入可以修复最小延迟扰乱。该方法十分有效,实现起来也很简单。在失效路径上,将总的负slack除以延迟单元延迟值的保护间隔估计值,取四舍五入的结果作为插入单元的数量,便是在路径的两端点应该增加的延迟单元数量。
4)调整布线
通过分析可以知道,合理地利用互斥的网络,不仅可以减少串扰,还可以减小延迟,从而提高芯片的功能。
为了自动执行网络排斥修复,需要将网络隔离文件装入布线器中,启用定时驱动的间隔,并执行搜索和修复。也可以通过手工实现网络排斥来消除少量的扰乱。当受害网络处于拥挤区域时,需检查信号环境并实施可能难以自动完成的定制修复。
网络排斥通常会减小失效路径上串扰增量值,但是很多情况下,这种减小的幅度还不足以修复扰乱。为了提高导线排斥一次通过的成功率,可以利用最小比率变量来确定哪条扰乱路径包含在一组必定要通过网络排斥来修复的路径中。可将这一组路径传递给一个定制程序,以便为布线器生成串扰制约条件。
3、虚拟串扰与靴值分析
我们这里介绍的虚拟串扰是噪声分析中采用的一种简捷方案。在一个具有百万门的SoC设计中,总的网络(net)数目大约也是一百万条。为了分析一个受害网络受周围若干条侵害网络的作用,总的噪声分析数量是很庞大的。过高或过低地处理侵害网络的作用都不是科学的方法。在CeltIC噪声分析中,人们采用了统计学计算法,将多条小信号侵害网络编辑成组,并用一条虚拟侵害网络作为代表,这样就极大地减小了动态计算工作量。
靴值(bootstrap,也称鞋值)分析是低噪声电子学中常用的一种分析方法,靴值噪声是作用于地线上的地冲或作用于电源上的上冲噪声干扰信号。
以上图中锁存器中的NMOS为例,考虑其输入端并将它作为受害网络进行分析,当它的数据输入端d 端口缺少buffer相连时,尽管时钟信号clk为0,靴值地冲噪声足够大时也会引起锁存器的错误导通。对于PMOS,类似的靴值上冲噪声足够大时也会引起它的错误导通。
四、噪声数据库
噪声模型与噪声库是完成信号完整性分析的基础。不同的EDA工具提供商,在建立噪声模型和噪声库时,存在一定的差异。在0. 18um及以上工艺,噪声问题并不严重,用户一般用厂家提供的时序库. lib以及晶体管的SPICE模型,定义电压及电压波动值,通过make_cdb仿真建立cdB噪声库,分析噪声问题。在0. 18um及以下工艺,很多厂家都提供了相应EDA工具所使用的噪声模型和与其相对应的库。
1、噪声模型
噪声模型是建立噪声库时所用的模型,模型决定了噪声分析的准确性。噪声模型分为标准单元噪声模型以及互连线的噪声模型 。
单元噪声模型是以标准单元为基础,其建立的思想是以最简单的方法模拟晶体管的工作特性。晶体管的传统模型有BSIM3和BSIM4模型以及工业界通用的SPICE模型,单元噪声模型的准确性一般与SPICE模型比较衡量。
用户可以自定义噪声(UDN,user-defined noise)模型,它是在数模混合设计中,针对于模拟的器件提出的一种模型。它只有逻辑单元层次(cell-level view)上的(模型)视窗,没有晶体管级的视窗。它包含输人输出管脚的电容、输入噪声容限和非线型驱动输出传输曲线。
2、噪声数据库
目前工业界的噪声数据库主要有两个,一是Cadence公司在2000年推出并应用广泛的•cdB库,另一个是Synopsys公司在2006年推出基于CCSM的外延. lib库。
3、互连线噪声模型
做噪声分析也要做互连线的RC提取,尤其要关注互连线的耦合电容所产生的耦合噪声电压信号的大小。
基于噪声数据库的信号完整性分析还有许多内容,这里仅简单介绍,有兴趣可以查找资料深入了解。