附录 BTcl 命令速查表

通用命令(所有 App)

下表命令对所有 App 通用,是每个脚本的骨架:分析 → 展开 → 声明时钟复位 → 证明 → 报告。

命令用途
clear -all清空当前会话的设计与设置,脚本开头常用
analyze -verilog <files>分析 Verilog 源文件
analyze -vhdl <files>分析 VHDL 源文件
analyze -sv <files>分析 SystemVerilog 源文件
analyze -sva <files>分析 SVA 属性文件
elaborate -top <module>以指定模块为顶层展开设计
elaborate -bbox_m <module>展开时把指定模块黑盒化
elaborate -bbox_a <n>展开时按面积阈值自动黑盒化
blackbox_assistant -config -connectivity_map <csv>按连接映射自动计算并黑盒化验证不需要的模块/实例(须在 elaborate 之前)
clock <signal>声明全局时钟
clock -rate {<ports>} <clock>把输入端口关联到指定时钟域
clock -infer / clock -analyze自动推断 / 自动检测时钟
reset <signal>声明全局复位(低有效写作 reset ~rstN
stopat <signal>切断信号的驱动逻辑,令其成为自由变量
assume <expr> -env添加环境约束
assert / cover添加断言 / 覆盖点,配合 -disable-enable 选择性启停
task -create <name> -source_task <t> -copy_assumes创建任务并从源任务拷贝约束
task -set <name> / task -link <name>切换当前任务 / 链接任务
prove -all证明所有属性
prove -property <name>证明指定属性
get_design_info获取设计复杂度信息
get_install_dir / get_proj_dir取安装目录 / 工程目录路径
set_max_trace_length <n>设置最大 trace 长度
set_engine_mode {K I N B L}设置引擎模式(花括号内为引擎字母组合)
set_prove_time_limit <time>设置整体证明时间限制
set_prove_per_property_time_limit <t>设置单属性证明时间限制
visualize -violation -property <prop> -new_window打开反例波形窗口
save -jdb <file> / restore -jdb <file>保存 / 恢复数据库
report报告证明结果
关于引擎字母set_engine_mode 接受的是引擎字母(如 K、I、N、B、L、Ht、Hp、Bm、Tri)。 各引擎的适用场景见《Engine Selection Guide》,例如 K 专门找有界证明、N 顺序证明并能给出完整证明、 B 只能给反例或有界证明而永不给出穷尽证明。

FPV App

命令用途
abstract -counter <reg>对计数器做抽象
abstract -init_value <regs>对寄存器初值做抽象
abstract -reset_value对复位值做抽象

FPV 的主体流程直接用上表的通用命令(analyzeelaborateclock/resetprove -allreport),没有独立的 check_fpv 命令。

CDC App

命令用途
check_cdc -clock_domain -find查找时钟域
check_cdc -clock_domain -join <a> -into <b>合并时钟域(如分频域并入主域)
check_cdc -pair -find查找 CDC 对(跨域路径)
check_cdc -scheme -find查找同步器方案并跑结构检查
check_cdc -scheme -add FIFO -map {...}添加用户定义的同步器方案
check_cdc -group -find查找收敛点
check_cdc -signal_config -add_constant {{<sig> <val>}}把信号配置为常量
check_cdc -check -severity {fatal {no_scheme}}设置规则严重级别
check_cdc -filter -add ...创建过滤器(供豁免引用)
check_cdc -waiver -add -filter <id> -comment {...}添加豁免
check_cdc -waiver -generate / -prove生成并验证豁免条件
check_cdc -protocol_check -generate / -prove协议检查(功能检查)的生成与证明
check_cdc -metastability -inject / -prove亚稳态注入(MSI)与证明
check_cdc -reset -find识别复位同步器(RDC 结构分析的入口)。注意复位同步器只能用这条命令找,不能像其他同步器那样用 check_cdc -scheme -find
check_cdc -report <type> -file <f>生成报告(pairs / violations / domains / signoff 等)

Superlint

命令用途
check_superlint -init初始化 Superlint App
check_superlint -extract提取检查项
check_superlint -prove -task {<SL_*}形式证明提取出的属性

X-Prop

命令用途
check_xprop -init_control <0|1>启用 X 初始化控制模式
check_xprop -create -outputs -no_bit_blast创建输出端口的 X 传播属性
check_xprop -create -control创建控制信号的 X 传播属性
check_xprop -create -clocks_and_resets创建时钟/复位的 X 传播属性
check_xprop -prove -no_decompose -all证明所有 X-Prop 属性

CSR

命令用途
check_csr -load <csv> -instance <inst> -auto_hr_info加载寄存器映射表并指定 CSR PA 实例
check_csr -load_ipxact -instance <inst>直接从 IP-XACT 加载 CSR 定义
check_csr -prove证明 CSR 属性

UNR

命令用途
check_unr -init初始化 UNR
check_unr -setup -coverage {block expr toggle fsm} -covdb <db>建立 UNR 环境并指定仿真覆盖率数据库
check_unr -prove运行不可达性证明
check_unr -list -type unreachable列出不可达覆盖项
check_unr -enable_property / -disable_property启用 / 禁用属性
database -export_unicov导出 unicov 格式覆盖率结果

SEC

命令用途
check_sec -setup -spec_top <m> -imp_top <m> ...设置 spec/imp 两侧的顶层、分析与展开选项
check_sec -interface检查 spec 与 imp 之间的端口映射问题
check_sec -map -spec {<sig>} -imp {<sig>}手动映射未自动匹配的信号
check_sec -auto_map_reset_x_values on自动映射未初始化寄存器的 X 值
check_sec -gen生成等价性验证环境
check_sec -prove证明映射点对的等价性
check_sec -signoff运行 signoff(可加 -waive_category 豁免类别)
SEC 的两侧在命令中一律称 spec(规格侧)和 imp(实现侧),对应 -spec_top / -imp_top

Connectivity

命令用途
check_conn -load <csv>加载连接映射表
check_conn -reverse -src {<insts>} -load反向提取连接关系并立即加载
check_conn -validateCOI 验证
check_conn -generate_toggle_checks {}生成翻转检查
check_conn -prove证明连接性属性

Coverage

命令用途
check_cov -init -model {branch statement expression toggle functional}初始化覆盖率模型(必须在 elaborate 之前
check_cov -measure -no_auto生成覆盖率指标

LPV

命令用途
check_lpv -load_upf <file>加载 UPF 电源意图文件
check_lpv -generate_power_design自动生成电源感知 RTL
check_lpv -verify <check>执行结构检查(如 check_iso_connections
check_lpv -create <assert>创建功能检查断言(如 assert_iso_up_before

FSV

命令用途
check_fsv -init初始化 FSV App
check_fsv -fault -add <list> -type SA0+SA1添加故障注入目标
check_fsv -fault -remove <list>移除故障目标
check_fsv -strobe -add <list> -functional / -checker添加功能 / 检查器观察点
check_fsv -structural结构分析
check_fsv -generate生成 FSV 属性
check_fsv -prove -time_limit <t>证明 FSV 属性
check_fsv -report -class dangerous按分类输出报告
set_fsv_clock_cycle_time <t>设置 FSV 时钟周期
set_fsv_engine_mode {Bm Ht Hp Tri}设置 FSV 引擎组合

SPV

命令用途
check_spv -create -from <src> -to <dst> -to_precond {<expr>}创建安全路径属性
check_spv -prove证明 SPV 属性

ARCH / BPS / IP-XACT

命令用途
check_arch -load <xml>加载 XML 架构模型
check_arch -prove证明架构模型属性
check_bps -scan -trace -vcd <file>扫描 VCD 波形并综合属性候选
check_bps -export -class <c> -type <t>导出属性候选到 FPV 证明
export -bps -to_sva <f> -to_tcl <f>导出为 SVA / Tcl 连接脚本
ipxact -load <xml> -lib <dir> -setup design加载 IP-XACT 并自动搭建设计
ipxact -check_rtl_consistency检查 IP-XACT 声明与 RTL 的一致性
ipxact -generate_connectivity_map <csv> <top>从 IP-XACT 生成连接映射表

ProofGrid

命令用途
set_proofgrid_mode (local | shell | lsf | oge | nc | cluster)指定证明作业在哪种 grid 上运行。local默认值(在当前会话所在机器上跑);shell 需配合 set_proofgrid_shell注意没有 on 这个取值
set_proofgrid_max_jobs <n>设置最大并行任务数
set_proofgrid_max_local_jobs <n>设置本地最大并行任务数

来源文档

  • jaspergold_command_reference.pdf