什么是数字后仿?浅谈芯片数字后仿的那些事

电子说

1.2w人已加入

描述

一、什么是数字后仿?

        这是相对于数字前仿来说的。从概念上来说,数字验证包含两方面的内容,数字前仿和数字后仿。前者中timing被默认为理想情况,主要用来验证数字电路的功能,后者主要用来验证timing相关。数字后仿做为数字电路设计中重要的一环,用来检查时序是否满足,有没有时序违例的情况发生。数字后仿需要的文件有门级网表和sdf文件。工程师需要将sdf文件进行反标,从而使得仿真工具改变数字电路的默认timing。

二、什么是门级网表?

寄存器

    数字前端设计的RTL代码 中的寄存器和组合逻辑,其物理实现还是对应到具体门电路。由于基本的寄存器或组合逻辑,对应的电路结构已经很稳定,电学特性也很明确,故而在综合级别较高的 EDA 工具中,一般不需要再亲自去描述它们的实现方法,而是调用现成的库信息。EDA 工具会根据 RTL 描述自动编译出门级的电路描述,这就是门级网表。门级网表分为pr前网表和pr后网表。

PR前网表:又称为综合(一般为Design Compiler)后网表,采用的是工艺库中default的timing,且只有cell的timing信息。此时由于内部的setup和hold没有修好,会出现不少violation的情形。

PR后网表:相比于pr前网表,pr后网表加上了buf,decap,filler和antenna等器件,timing信息也与pr前网表一致。

  三、什么是sdf文件?

        SDF文件(standard delay format),直译过来就是标准延时格式。它描述设计中的timing信息,指明了模块管脚与管脚之间的delay,时钟到数据的delay,内部连接delay等。后端布局布线之后由“QRC”出spef,通过PT生成sdf,所以sdf中timing信息都是布局布线之后客观存在的timing。总而言之,SDF文件是把布局布线过程中的器件延时和线延时信息记录下来,从而在进行路径时序分析时可以将整条路径的时序计算出来,再根据时序约束条件判断是否满足时序要求。

        设计过程中如果时序不满足时需要多次迭代的。每次布局布线后都会通过QRC抽取连线寄生参数,配合timing library得到当前的SDF时序反标信息,从而帮助设计人员对时序违背的路径进行修改。一般来讲,在时序收敛前用SDF分析帮助修改设计,时序满足后,利用SDF进行动态仿真double check下时序满足情况。

四、如何反标sdf文件?

较为常见的方法是在bench中调用系统函数$sdf_annotate来完成。还有其他的方法,比如作为elaboration的选项指定等。$sdf_annotate的标准格式如下:

$sdf_annotate(“sdf_file”[,module_instance][,“sdf_configfile”][,“sdf_logfile”][,“mtm_spec”][,“scale_factors”][,“scale_type”]);

其中:

“sdf_file”:指定SDF文件的路径。

“module_instance”:指定反标设计的范围(scope)

“sdf_configfile”:指定SDF配置文件

“sdf_logfile”:指定VCS保存error 和warnings消息的SDF日志文件。也可以使用+sdfverbose runtime option来打印所有反标消息

“mtm_spec”:指定延迟类型"MINIMUM(min)", "TYPICAL(typ)“或者"MAXIMUM(max)”。

“scale_factors”:分别指定minmax的缩放因子,默认是"1.01.0"

“scale_type”:指定缩放之前延迟值的来源。

如下图举例:

寄存器

在反标SDF后,specify块中定义的延迟不再有用,取代的将是SDF文件中的延迟。So,如何在芯片数字后仿中反标sdf,你了解了吗?






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分