Scenario

scenario:${library_name}_${case}_${mode}   Mode+PVT+RC_Corner

library_name(corner_list): ssgnp_0p675v_m40c_cwt ssgnp_0p675v_125c_rcwt ssgnp_0p675v_125c_cb ssgnp_0p675v_m40c_cw ffgnp_0p825v_125c_rcw ffgnp_0p825v_m40c_rcb tt_0p75v_25c tt_0p75v_85c

case: function/scan/max_min  

mode:timing

 

关于PVT:

WCS(慢工艺、低电压、高温):ssgnp_0p675v_125c_rcwt (ssgnp_0p675v_m40c_cwt ssgnp_0p675v_m40c_cw ssgnp_0p675v_125c_cb)

BCF(快工艺、高电压、低温):ffgnp_0p825v_m40c_rcb (ffgnp_0p825v_125c_rcw)

Typical(典型工艺、标准电压、标准温度):tt_0p75v_25c (tt_0p75v_85c)

WCL(低温下的最差情况:慢工艺、低电压、低温)

  

关于RC Corner

互联线直接影响cell delay、energy consumption、power distribution、noise等等。

互联线的电阻和电容大小的计算直接影响sta的结果。

为提高interconnect net的准确性,需要使用不同的model进行参数提取。

C Croner  RC Corner(考虑到耦合电容对delay的影响)

C Corner:

在早期工艺,一般cellR值都远大于netR值,与C相乘的时候netR就可以忽略不计,所以对于一条net来讲,它的C是我们要重点关注的,可以说这时候电容占主导地位。C最大的时候,net delay最大,C最小的时候,net delay最小。由此衍生出两个corner:cbest(Cmin) cworst(Cmax)。

随着工艺的进步,cellR值不再“远大于”netR值,尤其对比较长的net,它的电阻已经到了不可忽略的地步,因此再单单选用C的极大极小来代表net delay的极大极小变得不再那么可取,所以需要综合考虑netRC情况。衍生出两个cornerRCbest RCworst。

并不是说在先进工艺下cbest cworst corner就没用了,实际上,只有当导线比较长的时候,delay的极值才会发生在rcbestrcworstcorner上,对于短导线、driver电阻很大的时候,cbestcworst才能反映delay的极值。所以实际为了稳妥起见,这四个corner都会进行signoff

(在路径延时计算中Cworst/Cbest corners被用作短线延迟计算,RCworst/RCbest corners 被用作长线延迟计算;tipical被用作平均长度的线上delay计算;)

C corner和RC corner的主要区别:不仅考虑金属线宽变化和线高变化的影响,还需要考虑线与线之间的间距和上下金属层厚度的影响,即考虑耦合电容的影响。

RC Corner

  • 一般C Corner主要考虑两种: Cbest和Cworst

  • Cbest (Cmin): 电容最小,电阻最大,对于short nets来说,有最小的delay,可以用于min-path-analysis。

  • Cworst (Cmax): 电容最大,电阻最小,对于short nets来说,有最大的delay,可以用于max-path-analysis。

  • 在90nm之后,net delay占比增加,耦合电容对delay的影响不能忽略。在Cbest和Cworst的基础上增加了RCbest和RCworst Corner。

  • RCbest(xtalk corner): (对地电容+耦合电容)*电阻最小,耦合电容最小,电阻最小,对于long nets来说,有最小的delay,可以用于min-path-analysis。

  • RCworst(delay corner): (对地电容+耦合电容)*电阻最大,耦合电容最大,电阻最大,对于long nets来说,有最大的delay,可以用于max-path-analysis。

Setup RC Corner: Cworst_T和RCworst_T

Hold RC Corner: Cbest、RCbest、Cworst和RCworst

注:"_T"代表tight corner,一般只用于setup timing分析。

function_hold_ffgnp0p825v125c_rcworstCCw125c

function_hold_ffgnp0p825vn40c_rcbestCCbn40c

function_hold_ssgnp0p675v125c_cbestCCb125c

function_hold_ssgnp0p675vn40c_cworstCCwn40c

function_hold_tt0p75v25c_typical25c

function_hold_tt0p75v85c_typical85c

function_setup_ssgnp0p675v125c_rcworstCCwT125c

function_setup_ssgnp0p675vn40c_cworstCCwTn40c

 

#corners only for setup timing check

if {[string match "ssgnp_0p675v_m40c_cwt" $library_name]} {
set_false_path -hold -through [get_pins * -hier]
}
if {[string match "ssgnp_0p675v_125c_rcwt" $library_name]} {
set_false_path -hold -through [get_pins * -hier]
}

#corners only for hold timing check
if {[string match "tt_0p75v_25c" $library_name]} {
set_false_path -setup -through [get_pins * -hier]
}
if {[string match "tt_0p75v_85c" $library_name]} {
set_false_path -setup -through [get_pins * -hier]
}
if {[string match "ffgnp_0p825v_125c_rcw" $library_name]} {
set_false_path -setup -through [get_pins * -hier]
}
if {[string match "ffgnp_0p825v_m40c_rcb" $library_name]} {
set_false_path -setup -through [get_pins * -hier]
}
if {[string match "ssgnp_0p675v_m40c_cw" $library_name]} {
set_false_path -setup -through [get_pins * -hier]
}
if {[string match "ssgnp_0p675v_125c_cb" $library_name]} {
set_false_path -setup -through [get_pins * -hier]
}

 

posted @ 2022-11-01 15:21  bost  阅读(775)  评论(0)    收藏  举报