互联线延迟——线负载模型及相关命令、寄生参数提取及spef文件解读、互联线延迟计算模型Elmore模型、RC Corner、减少关键网络寄生参数的方法
1.互联线延迟
1.1. 怎么获取互联线电容、电阻
我们都知道,互联线延迟跟寄生参数RC有关。下图是布局前后工具获取互联线电容、电阻的方法及相关命令。
1.1.1. 线负载模型(WLM,Wire load mode)
在布局前,工具通过线负载模型(WLM)估算互联线带来的电阻、电容和面积开销。
线负载模型根据扇出数量来估计网络的长度,具有不同面积的设计或模块可以选择不同的线负载模型来确定寄生效应,如下图所示,面积较小的模块走线更短,电阻和电容也更小。
下面是一个线负载模型“wlm_conservation”在lib库里的描述,根据该描述可以得到右侧二维图。
如果某互联线的扇出为8,则通过该线负载模型可进行如下计算:
· 互连线长度 = 4.1 + (8 - 5) * 0.5 = 5.6
· 电容值 = 5.6 * 1.1 = 6.16
· 电阻值 = 5.6 * 5 =28.0
· 面积开销 = 5.6 * 0.05 = 0.28
1.1.2. 线负载模型相关命令
(1) >> set auto_wire_load_model ture
//工具根据设计情况自动选择线负载模型。
(2) >> set auto_wire_load_model false
//关闭工具自动选择线负载模型,如果设计人员也不设置,则不使用任何线负载模型。
(3) >> set_wire_load_model
//设置线负载模型
//例:set_wire_load_model "wlm_conservation" -library "lib_stdcell",表示使用库文件“lib_stdcell”中定义的“wlm_conservation”线负载模型。
>> set_wire_load_mode {top/enclosed/segmented}
//设置不同设计层次选用不同线负载模型
>> set_wire_load_mode top
层次结构中所有模块的网络都集成顶层(top)的线负载模型,如下图所示,如果顶层B1的线负载模型是wlm_cons,子模块B2也集成B1选择wlm_cons,B2的子模块B3、B4也选择wlm_cons。
>> set_wire_load_mode enclosed
哪个模块能完全包含这条路径,这条路径就使用哪个模块的线负载模型,如下图所示,B2模块完全包含NETQ,NETQ选择wlm_light,如果B3中某条路径完全被其包含,该路径就选择wlm_aggr。
>> set_wire_load_mode segment
网络每段都从包含该段的模块中获取其线负载模型。如下图所示NETQ在B3部分的那段使用B3的线负载模型wlm_aggr,在B2部分的那段使用wlm_light,在B4部分的那段使用wlm_typ。
1.1.3. 提取寄生参数及spef文件解读
布局后,版图有了实际的连线,可通过工具提取寄生参数,innovus提取寄生参数的步骤如下:
• SetExtracRCMode(设置提取RC的模式,相关选项见第一部分)
• ExtractRC(提取寄生参数)
• rcOut –rc_corner xxx –spef filename.spef(将寄生参数信息以.spef格式输出)
下面是spef文件的一部分,即相关内容解释。
以上D_NET *5426相关内容对应的电路图大致如下
1.2. 互联线延迟计算模型——Elmore模型
Elmore延迟模型可以看作是找到每段的延迟,即R与下游电容的乘积,然后取各延迟之和。下图互联线延迟可以表示为:
Delay=R1*C1+(R1+R2)*C2+……+(R1+R2+……+Rn)*Cn =Rwire * ( Cwire / 2 + Cload)
可以看出Delay和RC乘积正相关。
人们实验发现互联线Delay正比于互联线长度L的平方(Delay~L2),这也是长互联线中间加buffer修时序的原因。
1.3. RC Corner
由于工艺波动的存在,导致互连线工艺的参数值与标准值之间会产生差异,使得互联线RC值有所差异,这些差异主要来自于每层金属导线的宽度W,厚度T,层间绝缘介质厚度H以及线间距S。一般foundry会提供以下几种Corner。Typical的W、T、H、S都是标准值,Cmax的W和T大于标准值、H和S小于标准值。
RC_Corner | 宽度W | 厚度T | 层间绝缘介质厚度H | 线间距S |
Cmax | + | + | - | - |
Cmin | - | - | + | + |
RCmax | - | - | - | + |
RCmin | + | + | + | - |
Typical | = | = | = | = |
• 一般Setup检查必须使用的PVT和RC Corner 组合如下:
低温、高压、fast工艺、RCmin
• 一般Hold检查必须使用的PVT和RC Corner 组合如下:
高温、低压、slow工艺、RCmax
• 一般功耗最大的情况如下:
高温、高压、fast工艺、RCmax
1.4. 减小关键网络寄生参数的方法
(1) 降低互联电阻
• 宽走线
• 高层金属布线:较高金属层通常电阻率较低。
(2) 增加走线间距
减少耦合电容和总电容,同时避免串扰。
(3) 关键网络相关信号使用同一层金属布线
在许多情况下,一组网络必须在时序上匹配。比如高速DDR接口的一个字节通道内的数据信号,因为需要保证一个字节通道内的所有信号都具有相同的寄生参数,所以这些信号都应在同一金属层中布线。