第五章Expert System 专家系统
概述
JasperGold Expert System 是一个基于知识库(Knowledgebase)的智能辅助系统,分析设计和证明状态,提供优化建议。
启用/禁用 Knowledgebase
从 2016.12 版本开始,调用 JasperGold 时 JGES Knowledgebase System 默认就是启用的。要禁用它,可用以下任一方式:
- 点击 Expert System 状态栏上的电源按钮
- 用
-no_jges命令行选项启动 JasperGold(jg -no_jges) - 把
expert_system_status变量设为 off
# 禁用 / 启用 JasperGold Expert System(on 为默认值)
set_expert_system_status off
set_expert_system_status on
# 查询当前是 on 还是 off
get_expert_system_status
Expert System User Profile
首次启用 Knowledgebase System 时,JGES 会请你填写一份用户档案(user profile)。这份档案确保 Knowledgebase System 呈现的建议与你当前的专业水平相关、避免显示重复建议,并记住你通常会采纳哪些规则、忽略哪些规则。随着你在形式方法和 JasperGold Apps 上经验的积累,可以随时更新这份档案。
PFC101: Abstract counters——正好对应下文类别表中 PFC 前缀;右侧有 Show me… 链接、展开按钮和三点菜单,下方绿色按钮即该建议的 actionInformation System 安装配置
系统要求
要安装 JGES Information System 服务器,系统需满足以下最低要求(安装过程中会检查):
- Intel Xeon E5500 系列 2.0GHz 或更好
- 操作系统(均为 64 位):Red Hat Enterprise Linux 6.x 及以上、SUSE Linux Enterprise Server 11 及以上、CentOS 6.x 及以上、Ubuntu 14.04 及以上
- 至少 32GB 内存
- 至少 20GB 可用空间
~/.config/jasper/jges.conf 存放极少量数据。Expert System 建议的分类
Knowledgebase System 基于用户档案、task 和工具状态推荐具体的动作。这些建议是上下文感知的,范围从纠正 setup 错误的指示,到提升证明收敛性的建议。建议按类别和 ID 编号组织,类别包括:
| 类别 | ID 前缀 |
|---|---|
| Flow Guidance(流程指导) | FLG |
| Analyze(分析) | ANA |
| Elaborate(展开) | ELA |
| Clock(时钟) | CLK |
| Reset(复位) | RST |
| Environment(环境) | ENV |
| Proof Convergence(证明收敛) | PFC |
| Debug(调试) | DBG |
| Verification Signoff(验证签核) | VSO |
Appendix A: Custom Rule Implementation
Expert System 支持自定义规则,用户可以编写自己的检查规则。
Appendix B: Web Client Report Attributes
Expert System 可以生成 Web 格式的报告,包含各种属性和统计信息。
Expert System 界面
dl.ack nak check i.AST no unexpected ack)、Bound(40),以及涉及的 Counter 与位宽(ctrl timeout cnt 16 位、phy out data seqnum 6 位、replay timeout cnt 16 位)——正是 PFC101: Abstract counters 建议要抽象掉的那几个计数器
正确认识 Expert System
Expert System 不是"黑盒魔法",而是积累了大量形式验证工程师经验的知识库系统。它分析你的设计特征和证明结果,从知识库中匹配相似案例给出建议。
它能帮你做什么
官方对建议范围的描述是:从纠正 setup 错误的指示,到提升证明收敛性的建议。对照上面的类别表,可以看出它覆盖了从 analyze/elaborate、时钟复位设置、环境约束,一直到证明收敛、调试和验证签核的整条流程。
在 System Recommendations 标签页中,每条匹配的建议会给出简短描述,并带有:
- Show me 链接:跳转到更多说明信息
- action 链接:让你在采纳建议前先预览或编辑将要执行的命令
- 彩色标签:标明该规则属于哪个建议类别,并标识出 path recommendation(例如 Deep Bug Hunting)
- 展开/折叠按钮与右侧的三点菜单:展开描述、访问更多资源,或隐藏该建议、查看相关建议
Knowledgebase System 工具栏还支持:一次性展开/折叠所有建议的细节、实施 action plan(同时采纳多条建议)、打开 Knowledgebase Configuration 对话框、启用所有建议、设置 verbosity(默认为 low),以及按类别过滤建议。
Information System Web Client
JGES Information System 通过汇总来自各客户端的工具使用信息提供可见性,供 formal champion、工程经理和其他相关方做实时分析。
官方文档中的 "Web Client Report" 指的就是这些在 Web Client 中呈现的报表。它们记录的是工具使用情况,而不是证明状态统计。Appendix B 列出了报表的通用属性:
| 属性 | 含义 |
|---|---|
| Project | 在 JASPERGOLD_UXDB_ARGS 中指定的保留 tag |
| App | 调用的 App |
| Design | 本次 JasperGold 运行的顶层设计名 |
| User | 发起该 job 的用户 |
| Country / Site Name | 该 job 用户当前的国家(可修改)与站点名 |
| Start Time / End Time | job、属性证明或 license checkout 的起止时间 |
| Runs | 相同 project、app、design 和 user 组合的调用次数(任一字段不同都会在报表中产生新条目) |
| Run Time | 最后一次调用的运行时间(多次运行的情况下) |
| Interactive Time | 测得的用户与工具交互的时间 |
| Engine Time | 最后一次调用的累计引擎时间 |
| Regression | 在 JASPERGOLD_UXDB_ARGS 中指定的保留 tag |
来源文档
jaspergold_expert_system.pdf