VC Formal FPV 启动脚本简单模板

VC Formal(下简称VCF)工具是Synopsys厂开发的一个用于静态分析验证的商业EDA工具。

VCF有很多种应用模式,比如FRV(Formal Register Verification), FPV(Formal Property Verification), FCA(Formal Coverage Analysis), SEQ(Sequential Equivalence Checking)等等。

本文主要介绍FPV的启动脚本。FPV是基于断言属性的静态检查。相对于动态仿真验证,其优势在于能够遍历所有的输入可能性。

启动命令:vcf -f ./start_fpv.tcl 如果想要GUI模式启动,可以用vcf -verdi -f ./start_fpv.tcl启动

================ start_fpv.tcl ================

set_app_var fml_mode_on true  ## 设置VCF工作模式

read_file -top dut -format sverilog -sva -vcs {-full64 -sverilog -f ../filelist/dut.f -f ../filelist/tb.f +define+......}  ## 读取源文件进行编译

create_clock LCLK -period 833  ## 创建时钟

create_clock FCLK -period 555

create_reset RESETn -low ## 创建复位

set_constant PWROK -value 1  ## 设置常量信号

sim_run -stable  ## 让Formal run若干个cycle, 达到稳定的初始状态

sim_save_reset  ## 保存初始状态

check_fv ## 开始做断言属性静态检查

report_fv -list  ## 报告静态检查的情况

save_session ##保存数据库,以后可以用vcf -restore直接打开

===============================================

可以将DUT相关的文件路径在dut.f中指定,将断言等平台相关的文件在tb.f中指定。断言可以通过bind的方式绑定到DUT中。可以写个xxx_bind.sv并加入到tb.f中。

============== xxx_bind.sv =========

bind dut assertion_module assert_inst(

        .clk(sys_clk),

        .reset(sys_reset),

        ......

);

.....

================================

上面的例子中,dut是module名,assertion_module是断言模块的module名,assert_inst是断言模块的例化名。bind实现的功能就是相当于在DUT模块内部例化一个断言模块,并按指定的关系进行信号绑定。比如上面这个例子,就是将DUT的sys_clk信号与断言模块的clk信号进行了绑定,将DUT的sys_reset信号与断言模块的reset信号进行了绑定。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值