后仿----转载
1.后仿是否必要
随着芯⽚规模的增⼤,关于IC设计流程中的后仿是否必要,有多种声⾳。
认为不必要的理由是:布局布线后的⽹表,已经可以通过STA保证时序,后仿只不过是确认⼀遍电路的时序。⽽且随着电路规模不断增⼤,仿真⼯具的仿真速度的提升仍不明显,后仿必然是⼀个很耗时的步骤,时间代价⼤⽽收益不明显。
认为有必要的理由是,从公司以往多个项⽬的经验来看,后仿中也发现了⼀些问题。⽽对于有些设计,STA并不能完全覆盖所有的路径。后仿的⼯作是对后端实现最后的check。
本⽂认为,以公司现阶段的研发⼒量,后仿还是必须的。
2.前后仿的区别
前仿:RTL的仿真
后仿:门级仿真。⼜分为综合后仿真和布局布线后仿真
a.关注点不同;
前仿:关注RTL在功能上是否正确(符合设计)
后仿:关注电路在各种⼯作条件下,插⼊了延时后,功能是否依然正确。
b.仿真对象不同;
前仿:仿真的对象是RTL
后仿:仿真的对象是门级⽹表+sdf⽂件(可能包括⼀些IP的sdf)
综合后仿真⽤的是综合后的⽹表+PreSTA产⽣的sdf(⽆net延时,cell延时不准确,时钟树不准确)
布局布线后仿真⽤的是PR后的⽹表+PostSTA产⽣的sdf
c.外部激励与响应检查;
所⽤的激励和响应检查应⼀致
后仿可能让时钟漂移以模拟极端的情况
3.后仿的各种组合情况
如果考虑OSC漂移以及三种Corner,可以组合以下六种情况
Fast OSC + Fast SDF
Slow OSC + Fast SDF
Fast OSC + Typ SDF
Slow OSC + Typ SDF
Fast OSC + Slow SDF
Slow OSC + Slow SDF
说明:对于普通的设计,实际只需考虑3中sdf即可。对于osc偏移可能带来的影响(如,flash编程),则后仿需要考虑更多Osc偏移带来的影响(时序不满⾜)
4. 认识sdf⽂件
sdf = 标准延时⽂件
请参考附录1中对于sdf⽂件的注释
5. Sdf反标
反标:vcs将sdf⽂件中的延时信息添加到门级⽹表中对应的地⽅
6.后仿违背的类型
a.时序器件
Setup/hold违背(podge D -> podge CK , negedge D -> podge CK)
Recovary/Removal违背(podge CDN -> podge CK ,podge SDN -> podge CK)Width违背(CK,CDN,SDN)
b.IP时序违背
IP接⼝时序不符合datasheet
7.针对违背采取的措施
a.同步处理第⼀级寄存器的违背
i.⽅法⼀
1,建⽴⽂件Sync.v,格式如下:
initial begin
force Top.uXX.uYY.ifier = 1'b0;
…………
end
2,在SimTop中的include此⽂件;
解决了寄存器输出为x的情况,但仿真会报很多warning
ii.⽅法⼆
1,建⽴⽂件Sync.v,格式如下
instance {
Top.uXX.uYY.uZZ_reg,
……大数据岗位
} {noTiming}
英语名句
2,在runsim⽂件中加⼊ +optconfigfile+./Sync.v
b.其他尿蛋白是怎么回事
i.时序约束是否存在问题
ii.时钟树是否合理
iii.电路设计是否有潜在风险
辛劳的拼音iv.接⼝设计是否遵循datasheet
8.后仿脚本
1,+neg_tchk
寄存器可能出现负的tup limit和hold limit。
如果sdf中存在负的tup limit或hold limit,则使⽤特定的规则检查
实际仿真结果:
仿真加 +neg_tchk
仿真调⽤的sdf如下图所⽰:
a,正的tup + 负的hold
Podge D 发⽣在时钟沿前(-2.6ns , -1.8ns)会出现tuphold违背
b,负的tup + 正的hold
Negedge D发⽣在时钟沿后( 1.7ns , 2.9ns )会出现tuphold违背
2,+sdfverbo
反标过程中打印详细的信息
9.后仿注意的问题
1,对于⼀些IP的仿真模型,定义了⼀些延时量,但⼀般不针对某个corner。因此最好定义各个corner下的延时量。10. 后仿遗留问题
1,反标负延时?狐狸的秘密
vcs⼿册中说⽤-negdelay可以允许sdf中的cell和net使⽤负延时。
实际仿真时,修改了某个cell的延时为负,仿真不加-negdelay,仿真提⽰:
Warning-[SDFCOM_NDI] Negative Delay Ignored
/home/chengp/project/zi2201/trunk/Digital/FrontEnd/sta/sdf/zi2201.20100726_v0.26_post_sdf, 34671 module: inv0d0, "instance: zi2201eTest.U_zi2201e_digital.U3827"
SDF Warning: Negative delay is ignored and replaced by 0.
Warning-[SDFCOM_NIOD] Negative IOPATH Delay encountered
/home/chengp/project/zi2201/trunk/Digital/FrontEnd/sta/sdf/zi2201.20100726_v0.26_post_sdf,
34671
SDF Warning: Negative IOPATH Delay I to ZN is replaced by 0.
This negative value cannot be handled with switch -negdelay. Plea check SDF files.
2,+overlap作⽤
3,sdf中的mindelays ,maxdelays
pt在使⽤bc_wc测例做sta分析时,⽣成的sdf可能mindelays和maxdelays可能不⼀样。如:(IOPATH I ZN (0.540::0.642) (0.302::0.362))。反标sdf 时,vcs脚本中加+mindelays则反标的是0.540和0.302,加+maxdelays则反标的是0.642和0.362。
附录1 sdf⽂件
(DELAYFILE
(SDFVERSION "OVI 2.1")
(DESIGN "zi2201_digital_virage") // top name
(DATE "Mon Jul 26 11:06:27 2010")
(VENDOR "tsl18fs020_max") // ⽣成sdf所使⽤的库
(PROGRAM "Synopsys PrimeTime")
(VERSION "B-2008.06-SP2")
(DIVIDER /)
// OPERATING CONDITION "tsl18fs020_max::tsl18fs020_max"
(VOLTAGE 0.90::0.90) // corner参数
(PROCESS "1.200::1.200")
(TEMPERATURE 125.00::125.00)
(TIMESCALE 1ns) //延时单位
(CELL
(CELLTYPE "zi2201_digital_virage")
(INSTANCE)
(DELAY
(ABSOLUTE
(INTERCONNECT U4384/ZN U3558/I (0.001::0.001)) // 两个cell的pin之间连线的delay
)
)
)
(CELL // ⽹表中的每个单元的信息都是由(CELL .. )包括
(CELLTYPE "inv0d0")
(INSTANCE U3558) // ⽹表中的单元
(IOPATH I ZN (0.540::0.642) (0.302::0.362)) // 延时数据
// 0.540= min delay from I(1->0) to Z (0->1)
// 0.642= max delay from I(1->0) to Z (0->1)
// 0.302= min delay from I(0->1) to Z (1->0)
// 0.362= max delay from I(0->1) to Z (1->0)
)休息
)
)
(CELL
(CELLTYPE "dfcrn1")
(INSTANCE U_Decoder_TRCalCntH_reg_0_)
(DELAY
(ABSOLUTE
(IOPATH CP QN (1.546::1.721) (1.551::1.727))
(IOPATH CDN QN (1.907::1.907) ())
)
)
(TIMINGCHECK // timing check 参数
(WIDTH (podge CP) (0.532::0.532))
(WIDTH (negedge CP) (0.972::0.972))
(HOLD (podge CDN) (podge CP) (1.216::1.216))
(RECOVERY (podge CDN) (podge CP) (-0.653::-0.653)) (WIDTH (negedge CDN) (0.412::0.412))
(SETUP (podge D) (podge CP) (0.219::0.219))
(SETUP (negedge D) (podge CP) (0.193::0.193))
咖啡杀精吗(HOLD (podge D) (podge CP) (-0.202::-0.202))
(HOLD (negedge D) (podge CP) (0.057::0.057))
)
)
附录2 仿真模型
module inv0d0 (I,ZN);
桐壶更衣output ZN;