VCS+Verdi对门级网表进行验证

概要

通过DC综合获得.v形式的门级网表,以及对应的延时文件 .sdf以后,编写testbench,查看电路存在延时下的波形情况。

不过这里的延时不太准确,只能作为参考,在布局布线后的延时与实际情况较为相符。

前置准备

verdi的环境配置

        在.bashrc文件中进行配置,这里主要定义的用户变量,如果是在安装时工具时就已经配置好了对应的环境变量,则可以略过,对应的配置如下:

目录文件

        新建一个工作目录,把需要的文件都放在这个目录下,具体如下:

  • filelist.fw文件存放所有的RTL代码文件路径
  • makefile文件存放对应的脚本命令
  • rtl目录下存放所有的RTL文件,这里我还存在了对应的.sdf时序约束文件
  • tb目录下存放testbench文件

编写测试文件

        首先在编写的tb中加入相应的系统函数,因为verid不能产生波形文件,所以需要先利用VSC先生成对应的波形文件

initial begin 
 $fsdbDumpfile("自定义.fsdb");
 $fsdbDumpvars(0);
 end

        然后继续添加如下代码,表示添加对应的延迟文件。

initial begin
`ifdef NET_SIM
    $sdf_annotate(".sdf存放路径",
    例化名,,,
    "TYPICAL",
    "1:1:1",
    "FROM_MTM");
`endif
end

sdf_annotate函数用法:

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

  • sdf_file: SDF 文件名字,包含路径信息。
  • module_instance: 例化的设计模块名字,一般为 testbench 中所例化的数字设计模块名称,注意和 SDF 文件内容中的声明保持层次的一致。
  • log_file: 编译时关于 SDF 的日志,方便查阅。
  • mtm_spec: 指定使用的延迟类型,选项包括 MAXIMUM、MINIMUM、TYPICAL,分别表示使用 SDF 文件中标注的最大值、最小值或典型值。当然上述 SDF 文件例子中没有给出典型值。

创建makefile脚本

这里直接附上参考up主的思维导图和我修改得到的makefile脚本

OUTPUT = adder
CM = -cm line+cond+fsm+branch+tgl
CM_NAME = -cm_name ${OUTPUT}
CM_DIR = -cm_dir ./${OUTPUT}.vdb
LIB_FILE = -v ../lib/tcbn65lpbwp12thvt.v

all: clean listfile com sim verdi 

listfile:
	find -name "*.v" > filelist.f

com:
	vcs -full64  -LDFLAGS -Wl,--no-as-needed  \
	-sverilog -debug_access -timescale=1ns/1ps \
	-f filelist.f -l com.log -kdb -lca +define+NET_SIM +neg_tchk \
	${CM} ${CM_NAME} ${CM_DIR} ${LIB_FILE}

sim:
	./simv -l sim.log ${CM}	${CM_NAME} ${CM_DIR}

cov:
	dve -full64 -covdir *.vdb &

urg:
	urg -dir *.vdb

verdi:
	verdi -f filelist.f -ssf *.fsdb  &

clean:
	rm -rf csrc *.log *.key *simv* *.vpd *DVE*
	rm -rf verdiLog *.fsdb *.bak *.conf *.rc *.f *.vdb

 

verdi的波形查看

        打开terminal,运行 make all 也就是运行makefile文件中的第一条命令,Verdi中的波形查看操作这里主要还是学习视频中的操作,也不复杂,故不在赘述。

        

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值