一个完整的电路设计中必然包含前仿真和后仿真两个部分,它们都属于验证的必要环节。
尤其是在复杂的芯片设计中,验证要占用整个芯片设计流程时间的60%-70%。目的就是尽可能地对芯片功能进行充分的验证,尽早暴露出问题、解决问题,以保证所有功能完全正确。
那么前仿真和后仿真之间有哪些异同点呢?
先说相同之处
前仿真和后仿真都属于数字验证工程师的工作范畴,且都涉及到验证环境的搭建,需要耗费大量的时间。
在实际工作中,需要使用的工具基本也是一样的。例如Synopsys公司的VCS、Cadence公司的xrun和Model Tech公司的ModelSim。
解决的问题不同
前仿真也可以叫功能仿真、行为仿真,主要验证电路在理想环境下的行为和设计构想是否一致,电路功能是否符合Spec和设计要求。
后仿真也可以叫时序仿真、布局布线后仿真,主要针对布局布线之后的网表,加入时序分析,对功能正确性进行仿真验证。
前仿真主要验证的是功能正确性,后仿真主要验证的是时序正确性。
侧重点不同
前仿真关心的是器件参数,不考虑电路门延迟与线延迟,没有器件内部逻辑单元和连线的实际延时信息,只是初步验证系统的逻辑功能。
后仿真除了关心器件参数之外还需要考虑线的寄生问题,这就是为什么后端环节中需要进行寄生参数提取。
因为导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。所以,提取寄生参数进行再次分析验证,分析信号完整性问题是非常重要的。
流程环节不同
一个比较明显的区分标志就是布局布线。
前仿真需要在RTL代码设计环节进行,后仿真要在布局布线环节之后进行。
布局布线之后,晶体管等各类器件的具体形状、尺寸、相互位置已经确定,这表示将来制造完成的芯片结构也就确定了。
不同的版图设计将产生不同的寄生参数。例如,金属互连线和衬底之间所产生的分布电容大小与版图设计密切相关,版图设计不同,线的长度和路径都有可能不同,寄生电容也就不同。其他寄生情况与此类似,大部分都和具体的版图有关。
仿真结果不同
前仿真主要分析电路逻辑功能,相对于后仿真来说速度更快。
后仿真引入了寄生分布参数的实际电路进行仿真,能够比较好地反应芯片的实际工作情况,是更接近于实际的仿真。但消耗时间相对更长。
有时候也会出现前后仿真结果不一致甚至差别很大的情况,其实一大部分原因就是它们各自的侧重点不同。