理论概念:
需要的文件:
这里演示PR后的netlist后仿,需要的文件如下
1、PR后的网表文件,即netlist;
2、由后端工具吐出的延时文件,一般有fast,slow,typical corner,文件后缀为 .sdf;
3、仿真激励文件;
工具:
VCS或者xrun,以下以xrun为例,
步骤:
1、把延时文件反标到netlist上,即在tb文件中加入语句:
-
ifdef GLS_SDF initial begin `ifdef SDF_MAX $display("Performing SDF_MAX back annotation for ..."); $sdf_annotate("xxx.sdf", U_top,,"./xxxsdf.log", "MAXIMUM"); `elsif SDF_MIN $display("Performing SDF_MIN back annotation for ..."); $sdf_annotate("xxx.sdf", U_top,,"./xxxsdf.log", "MINIMUM"); `elsif SDF_TYP $display("Performing SDF_TYP back annotation for ..."); $sdf_annotate("xxx.sdf", U_top,,"./xxxsdf.log", "TYPICAL"); `else $display("\nINFO: No SDF back annotation for adc_counter, adc_dig ..."); `endif end `endif
2、运行xrun,其主要配置如下:
xrun xxx.sv \ #testbentch
xxx.v \ #netlist
-v xxx.v \ #工艺库文件
-DEFINE GLS_SDF -DEFINE SDF_MAX \
+access+rwc \
-timescale 1ns/1ps \
-override_timescale \
-allowredefinition \
-nohistory \
-l ./log/xrun.log \
-sdfstats ./log/sdflog.log \ #反标信息log
-top tb
3、运行完成后,在sdflog.log查看是否有error和warning,看是否反标成功,若反标不成功,在形上,器件的延迟都会标为1us。若反标成功,xrun.log会打印如下信息,其中Pathdelays反标率一般需要达到98%以上。Tchecks 反标率则一般不关心。用icc写sdf文件时,如果版本是2.1的,则没有removal和recovery的信息,这时要么把sdf写成3.0版本的,或者icc写spef文件,再用pt转换成sdf文件。