第四章BPS 行为属性综合
概述
行为属性综合App 从仿真波形(SHM/FSDB 或 VCD)自动学习设计行为,生成候选属性(property candidate),帮助用户快速发现设计中隐含的不变量和协议规则。
Exploring the Console
BPS Console 提供 POI(Point of Interest)浏览器和属性候选面板。
指定环境
# 启动 BPS App
# jg -bps script.tcl
# 分析设计
analyze -verilog rtl/*.v
elaborate -top top
# 自动时钟检测
# BPS 自动检测时钟和复位,也可手动指定
clock clk
reset ~rstN
# 指定波形复位(用于波形分析)
wave_reset ~rstN
# 保存/恢复工作
save_session bps_session
restore_session bps_session
行为属性综合流程
- 加载波形:导入仿真波形文件
- POI Browser:选择感兴趣的信号/模块作为 POI
- 扫描波形:BPS 分析波形中的模式
- Property Candidates:生成候选属性列表
- 审查和选择:用户筛选有意义的属性
- 形式证明:用 JasperGold 证明选中的属性是否在所有情况下成立
配置扫描
# 配置扫描设置
set_bps_scan_config -depth 5
set_bps_scan_config -poi_scope u_dut.control
# 扫描文件
scan_waveform -file waveform.shm
生成配置文件
# 生成 DDK 文件(Design Knowledge)
generate_bps_config -output ddk.cfg
# 从 PLI 配置生成 DDK
generate_bps_config -pli_config pli.cfg
附录
- Appendix A:Jasper Property Macros for BPS — BPS 使用的属性宏定义
- Appendix B:Handshake Protocols — 支持的握手协议模板
- Appendix C:User-Defined POIs from XML — 通过 XML 文件自定义 POI
- Appendix D:Jasper Property Templates — 属性模板规范
- Appendix E:BPS Progress Report — 进度报告功能
BPS 行为属性综合界面
BPS 使用方法论
BPS 适合什么场景
- 遗留设计无断言:老代码没人写 SVA,从仿真波形自动提取行为属性
- 理解陌生设计:通过波形学习模块的行为模式
- 文档化设计行为:将综合出的属性作为设计文档
- 发现覆盖率漏洞:BPS 发现仿真中未出现的行为模式
属性分类与处理
| 分类 | 含义 | 处理 |
|---|---|---|
| certified | 在所有扫描的波形中一致成立 | 可以作为断言使用,建议再用 FPV 深度证明 |
| unclassified | 只在部分波形中出现,未确认 | 用 FPV 证明或添加更多波形扫描 |
| coverage_hole | 应该出现但波形中未出现的行为 | 补充仿真激励覆盖这些场景 |
关键认知:BPS 综合出的属性是"从波形中观察到的模式",不是"设计规格要求的行为"。它帮你发现设计行为,但你需要 review 这些行为是否符合设计意图——bug 也会被 BPS 当作"行为模式"学习到。
来源文档
BPS_user_guide.pdfexample_jaspergold_apps/BPS/