1、芯片后仿的意义:
既然前仿保证了逻辑功能,STA 保证了时序,PT对各个corner进行了时序穷举计算并确保时序收敛,那么作为数字IC设计流程的最后一环后仿真的意义是什么呢?
原因有若干:
1、 多时钟域的timing确认(跨时钟域信号的同步处理)。
2、由于异步处理部分在SDC约束文件中做的是fath_path处理,所以这部分时序是否满足,PT并不会检查也不会报出violation。
3、异步的处理方式在PD处理后有问题: example:dmux结构,data signal latnecy过大;导致后仿出现ctrl信号先 data stable后的case。
4、一些test pattern需要做后仿,调整合适的timing margin,太紧的话,片子容易fail。
5、时钟切换电路?
6、DFT逻辑的插入是否导致功能出现问题。
2、芯片后仿违例类型:
1、Setup/hold违背(posedge D -> posedge CK , negedge D -> posedge CK)
2、Recovary/Removal违背 (posedge CDN -> posedge CK ,posedge SDN -> posedge CK)??
3、Width违背 (CK,CDN,SDN)
4、IP接口时序不符合datasheet?外设器件是否也需要带延时的model?
3、后仿全面介绍:http://www.chipsbank.com/news_detail/newsId=121.html
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 +