篇1-门级仿真浅谈
参考资料:
(1)公众号-芯片学堂;
(2)公众号-icsoc;
1.门级仿真与RTL仿真
(1)门级仿真的验证对象是门级网表,电路直接使用标准单元库和IP模型(包括Memory、IO、Phy等)进行例化,具备完整的功能和时序行为。门级网表通常指综合后得到的网表(没有时钟树),也可以指布局布线后的网表(带时钟树)。
(2)RTL仿真(也可以叫前仿真)是零延迟(Zero Delay)的;
2.门级仿真与STA,LEC
(1)静态时序分析(Static Timing Analysis,STA)只是静态地计算分析同步时序路径是否满足时序要求;
(2)等价性检查(Logic Equivalence Chek,LEC)只是对比前后流程输出的电路视图是否功能等价。
(3)门级仿真检查功能与timing的正确性,这是它的优势所在。但是,门级仿真存在仿真速度慢、消耗更多计算资源、覆盖率不高等弊端。
3.门级仿真的时序信息及仿真模式
3.1门级仿真的时序信息
(1)门级仿真的时序信息通常来自于SDF(Standard Delay Format)文件。该文件记录了不同电路模块在特定的PVT(Process, Voltage, Temperature)条件下的延迟信息和时序检查约束(Timing Check)。其中延迟信息包括线延迟(Wire Delay)和单元延迟(IOPath Delay)。这些时序信息通常由时序分析工具如STA输出。
(2)sdf反标:通常设计电路都是根据事先定义好的设计规格,而设计规格中包含了时序的规格(例如SDC);所以,当电路设计好了,时序信息也确定了,把这些时序信息标注到电路的网表中,实际上是一个回溯的过程,所以称为反向标注;
3.2门级仿真的仿真模式
(1)根据时序信息的完整性,门级仿真可以有三种模式,即零延迟、单元延迟(Unit Delay)和完整时序(Full Timing)。
(2)零延迟:如果仿真不携带任何时序信息(即不带SDF信息反标、标准单元和IP模型文件中Specify块指定的延迟信息为0),可以理解为就是零延迟,这种仿真放在后仿意义不大。
(3)单元延迟:单元延迟的时序信息通常来自于逻辑综合之后,没有真实的线延迟信息。
(4)完整时序:完整时序指的是在后端布局布线(Place and Route)之后,基于真实的线长线宽等信息计算出来的完备的线延迟和单元延迟。
4.门级仿真的意义
(1)静态时序分析对时序的验证并不是完备的。STA针对时序路径的分析手段,注定了其不能保证异步电路的时序正确性。其次,STA对伪路径(False Path)和多周期路径(Multi-cycle Path)的分析受限于时序约束。而这些东西,带上延迟信息的门级仿真是都可以覆盖到的。
(2)功能等价性检查并不总是正确的。综合工具可能会对设计人员的意图做出一些假设然后实施优化,从历史经验上看,等价性检查工具不一定能检查出来其中可能出现的错误。
(3)门级仿真可以检查在真实延迟下,电路是否可以跑到我们期望的频点上。如果遇上时序不满足的情况,X态的传播能够很快地被检查出来。
(4)门级仿真可以验证插入DFT(Design for Test)结构后网表的功能正确性。DFT结构(包括BIST电路、扫描链、TAP控制器等)通常是在逻辑综合之后才插入到网表当中,因此在前仿真中是覆盖不到的。
(5)带延迟信息的门级仿真可以用来检查诸如组合逻辑环路等特殊电路结构的功能正确性。由于前仿真是零延迟的,组合逻辑环等特殊电路的功能无法得到检验。
(6)门级仿真可以验证芯片的上电初始化流程和复位流程。在前仿真中,RTL仿真器可能会将某些值直接优化成0或者1,而门级仿真对于X态则是非常敏感的,它会直接影响到初始化状态导致芯片work不起来。