遇到tb是自动生成的,不想每次重新生成tb都再手工插一次sdf反标的verilog 系统task $sdf_annotate。查阅UG和微信群请教,命令行下反标sdf测试成功。记录如下。
1、写sdf cmd file
sdf cmd file是反标信息的配置文件,主要包含sdf文件路径、dut的路径、corner等信息。
sdf cmd file文件格式定义如下:
作为参考,语言参考里verilog $sdf_annotate()的参数定义如下,可见是一模一样的。
$sdf_annotate(
"sdf_file",
dut inst path,
config_file,
log_file,
mtm_spec,
scale_factors,
scale_type
);
下面是一个例子:
// FILE: sdf_cmd_file.cfg
SDF_FILE = "../../digital_top_wc_rcmax_125c.sdf",
SCOPE = digital_top_test.dut,
LOG_FILE = "sdf.log",
MTM_CONTROL = "MAXIMUM",
SCALE_TYPE = "FROM_MAXIMUM";
2、xrun里加编译参数-sdf_cmd_file
xrun -sdf_cmd_file sdf_cmd_file.cfg ...
3、最后说明一下上面提到的config file的作用,根据UG介绍,在config file里,可以:
忽略sdf文件里的时序结构
选择min、typ、max延时
指定缩放
关闭delay
当sdf文件与RTL有差异时如何反标数据
一般用不到,具体可以参考UG相关章节。