Formality形式化验证笔记

在DC综合,PrimeTime静态时序分析之后,需要进行形式化验证,通过对比原始设计的*.v和DC综合后的门级网表*_netlist.v,输出对比结果。

1 启动Formality

终端输入:Formality,打开图形化界面。

在这里插入图片描述

2 文件准备

1、GTECH库或者厂商提供的综合库:typical/slow/fast.db

2、原始设计文件:*.v/.vhd/.db等等
DC输出命令:write -format verilog -hier -output top_netlist.v

3、DC综合后的门级网表:*_netlist.v

4、DC综合过程中生成的*.svf文件。
DC中的命令为:set_svf output/$design_name.svf

3 软件使用

0. Guid.

1、点击Guidance,添加.svf文件。
2、选中svf文件,点击Load File。

1. Ref.

  1. Read Design Files
    选择对应的原始设计文件,需要选择所有的。
    如果是*.v文件,则点击Verilog,然后将所有*.v文件Load Files。

  2. Read DB Libraries
    可以不进行操作。

  3. Set Top Design
    选择设计的顶层文件,然后点击右侧的Set Top。

2. Impl.

  1. Read Design Files
    选择DC综合后的网表文件。
    如果是*_netlist.v文件,则点击Verilog导入,然后将该Load Files。

  2. Read DB Libraries
    必须进行操作,将厂商提供的typical/slow/fast.db导入。然后点击向右的箭头将该库Load。

  3. Set Top Design
    选择设计的顶层文件,然后点击右侧的Set Top。

3. Setup

可以查看Failling Points、Passing Points、Abroted Points、Unverified Points。

4. Match

点击Run Matching,对Reference Design和Implementation Design的比较点进行匹配。

会输出matched和unmatched的点数。成功的话,unmatched的点数为0。

5. Verify

点击Verify All进行验证。

成功后会输出Verification succeeded

6. Debug

4 脚本使用

每次验证都需要一项一项点击就比较麻烦,可以写一个run.tcl脚本,每次只需要source一下就能直接运行验证。

set_svf -append { ../test.svf }

read_verilog -container r -libname WORK -05 { ../src/sub_mod_2.v ../src/sub_mod.v ../src/top.v }

set_top r:/WORK/top

read_verilog -container i -libname WORK -05 { ../output/top_netlist.v } 

read_db { ../lib/slow.db }

set_top i:/WORK/top

match

verify

file mkdir report
report_status > ./report/report_status.txt
report_designs > ./report/report_design.txt
report_hierarchy > ./report/report_hierarchy.txt
report_failing_points > ./report/report_failing_points.txt

#quit

在formality(setup)>命令行中输入:source run.tcl,即可运行形式化验证,然后在report中查看验证情况。

在这里插入图片描述


参考文章

https://blog.youkuaiyun.com/qq_42922513/article/details/131305494
https://blog.youkuaiyun.com/weixin_66225643/article/details/144558013

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值