Formal -- VC Formal FPV study

本文详细介绍了FormalVerification(FPV)的各个方面,包括需求、方法论、输入与输出命令,如分析、验证、设置环境、执行检查,以及覆盖、约束、属性和调试等方面的内容。它还涵盖了在计算农场上运行和调试验证过程的技巧和配置选项。

Introduction to Formal Verification

Requirements

  • Assertion/Cover
  • Assume(Constraint)
  • Synthesizable RTL

Formal Results

  • Proof
  • Falsification
  • Bounded Proof

VC Formal

Flow

Components

FPV

Methodology

Inputs for FPV

Analyze and elaborate commands (example, read_file )

Clock and reset commands (example, create_clock, create_reset )

Execute commands (example, check_fv )

Report commands (example, report_fv )

 Onputs for FPV

Property Status

  • Assertion status: Proven, Falsified, Vacuous(先决条件没有cover到), Witness-Coverable, Uncoverable and Inconclusive(没有得到证明)
  • Assume status: Non-Vacuous, Vacuous(assume无效),Uncoverable and Inconclusive
  • Cover status: Coverable and Uncoverable

Execue FPV

vcf -f run.tcl

vcf -f run.tcl -verdi

 Analyzing Results

report_fv

Property Control

Formal Runtime Control

控制time/memory/engine

  • set_fml_var fml_max_time <time, ex. 24H>
  • set_fml_var fml_progress_time_limit <time, ex. 100M>
  • set_fml_var fml_max_mem <Maximum memory size>

Controlling Engine Effort

  • set_engine [-on|-off] <engine id>
  • set_fml_var fml_effort <effort level, ex. high>

Controlling Resume

  • set_fml_var fml_enable_resume true
  • set_fml_var fml_enable_resume_depth true

Controlling Grid Usage

  • set_grid_usage -type [LSF|SGE|RTDA]=<#_of_workers> ...
  • report_grid_usage

Convergence Improvement

  • snip_driver
  • set_blackbox
  • set_abstractions
  • get_abstractions
  • report_abstraction

sni

在使用 Mentor Graphics 的 Tessent 工具进行 DFT(Design for Test)流程时,`set_design_source` 命令的 `-formal` 选项用于指定设计源文件的形式。该选项允许用户定义设计是以 RTL(Register Transfer Level)形式还是门级(Gate-Level)形式提供,以便工具能够正确地进行后续的 DFT 插入和验证流程。 当使用 `-formal` 选项时,若设置为 `rtl`,表示当前的设计源是行为级或 RTL 级别的描述,这通常适用于尚未综合的设计代码。此时,Tessent 将基于 RTL 进行扫描链插入、测试模式生成等操作,特别适用于早期设计阶段的功能验证[^1]。 命令示例如下: ```tcl set_design_source -formal rtl -top top_module_name -filelist design_files.f ``` 如果 `-formal` 设置为 `gate_level`,则表示设计源是已经通过综合后的网表,即门级描述。在这种情况下,Tessent 会根据已有的逻辑门和触发器结构进行 DFT 处理,包括插入测试逻辑、生成 ATPG 模式等。这种设置更适用于物理设计前的验证阶段,确保插入的测试逻辑与实际电路兼容[^1]。 命令示例如下: ```tcl set_design_source -formal gate_level -top gl_top_module_name -filelist gate_level_netlist.f ``` 在某些高级流程中,还可以结合形式验证工具,利用 `-formal` 选项进行等价性检查,以确认 RTL 和门级网表之间的功能一致性。这种方式有助于在 DFT 插入前后保证设计的正确性,并支持自动化调试流程[^1]。 ### 注意事项 - 在选择 `-formal` 参数时,必须确保所使用的源文件类型与参数设定一致,否则可能导致工具无法正确解析设计结构。 - 使用 `-formal gate_level` 时,需确保所有标准单元库已被正确加载,否则可能引发模块未定义错误。 - 若设计包含嵌入式 memory,则应配合 `read_core_descriptions` 命令读取相应的 `.lvlib` 文件,以确保仿真和测试流程正常运行[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值