设计验证一般有下列四个部分:
(a) RTL仿真(RTL simulation):发生在RTL设计完成之后,主要是检查这个设计的功能是否符合预期,因此也被称为功能仿真(functional simulation),或是行为仿真(behavioral simulation).。所有综合等等后续动作,必须在这一步骤完成后,才能继续下去。在这一个阶段的仿真,是没有时序(timing)观念的,所有的信号翻转,都是对齐时钟的上升或下降沿的。至于信号与时钟的相对关系,则是由delta delay来表示。
(b) 前仿真(pre-simulation): 虽然各公司定义各有不同,我们这里定义为网表层级的仿真。也就是没有wire delay,只有cell delay的仿真。在cell delay为主的工艺上,又是以同步设计为主的设计上,这样的仿真就很具意义。此时所有信号翻转,就与clock沿有了明显的差距。
(c)后仿真(post-simulation): 当版图设计完成后,各个元件间的布线已完成,EDA工具可以根据各个走线的长短、层次、宽窄等因素,提取出电阻电容参数,来估算不同条件下的延迟时间。这样在版图完成后的仿真,因为包含了cell delay与wire delay,是最能表现出实际芯片的行为与时序的仿真结果。
(d)形式验证(formal verification): 形式验证是一种以功能比对为基本的验证方法。这种比对可以是RTL与网表比对,也可以是综合网表与APR之后的网表比对。其目的就是保证每一级的功能,与最原始的设计一致。
目前仿真工具比较普遍的有Synopsys的VCS,Cadence的NC-Verilog等等。形式验证工具比较普遍的有Synopsys的formality,Cadence的Conformal等等。
参考文献:
[1] Design Verification. http://www.smic-asic.com/products_detail/&productId=47.html