第三章Connectivity 连接性验证
概述
Connectivity App 自动验证 SoC 中 IP 之间的信号连接是否正确。这在大型 SoC 集成中特别有用,可以替代耗时的手动连接性审查。
两种验证模式
Basic Connectivity Flow(正向连接验证)
给定一个连接规格(哪些源信号应该连到哪些目标信号),验证 RTL 实现是否匹配。
Reverse Connectivity Flow(反向连接验证)
从 RTL 实际连线中自动提取连接关系,与期望的连接模式对比,发现意外的连接或漏连。
GUI 概览
连接分类(Connection Classifications)
工具会在 Connections Table 的 Classification 列、以及 check_conn -report 生成的报告中显示以下分类:
| 判定条件 | 分类 |
|---|---|
| 源信号与目的信号相同 | equal name |
| 源端口名包含在目的端名中,或反之 | partial equal name |
| 信号被拉到 0 | tie 0 |
| 信号被拉到 1 | tie 1 |
| 位宽大于 1 位的总线被拉到某个常量值 | tie const |
| 以上都不是 | none |
基本流程与反向连接验证
基本流程从连接规格文件(CSV)载入:
check_conn -load conn.csv
check_conn -validate
check_conn -generate_toggle_checks {}
check_conn -prove
反向模式(Reverse Connectivity)则由工具生成连接:-src 给出源列表,-dest 给出目的列表,-target 给出目标列表。
# 只给源
check_conn -reverse -src {ing0 ing1 ing2 ing3 eg brdg arb p_sel} -load
# 只给目的
check_conn -reverse -dest C -load
# 同时给源和目的
check_conn -reverse -src B -dest C -load
IP-XACT 支持
JasperGold Apps 支持 IEEE 1685-2009 IP-XACT 标准,可以直接载入 IP-XACT 描述并生成连接映射:
# 载入 IP-XACT 文件
ipxact -load ipxact/top.xml -lib ipxact -setup design
# 生成连接映射 CSV
ipxact -generate_connectivity_map csv_file_name.csv
# 再交给 Connectivity App
check_conn -load [get_proj_dir]/conn.csv
check_conn -prove
<spirit:busInterface>:接口的实现,包含接口与设计端口之间的映射<spirit:adHocConnection>:两个端口之间的连接- 生成的连接映射中包含接口定义(interface definitions)和接口连接(interface connections)
Connectivity 验证界面
连接性验证方法论
什么时候用 Connectivity App
- SoC 集成阶段,验证模块间的连线是否正确(接线错误是集成阶段最常见的 bug)
- 顶层网表验证(多工具综合/布局布线后的连接一致性)
- IP 替换验证(一个 IP 换成另一个,接口信号连接是否正确)
- 从 IP-XACT/CSV 自动生成连接规格,与 RTL 实际连接对比
COI 验证和 Toggle 检查各做什么
| 检查类型 | 验证内容 | 能发现 |
|---|---|---|
| COI 验证 | 源信号和目的信号在彼此的影响锥内(逻辑上存在路径) | 信号完全没连、接错了端口 |
| Toggle 检查 | 为每个源信号位生成 cover 属性,确保该位能够从 0 变到 1、以及从 1 变到 0(每个源信号位生成两条属性) | 源信号位无法翻转(如被拉成常量、被上游逻辑钳住) |
留意 Toggle 检查的确切定义:文档对它生成的属性给出了完整说明——"生成 cover 属性,确保每个源信号位都能从 0 变到 1、以及从 1 变到 0",并且"为每个源信号位生成两条属性"。也就是说,这些属性描述的对象是源信号位本身的翻转能力。源与目的之间是否存在路径,则由 COI 验证负责确认,两者配合使用。
正向 vs 反向验证
| 模式 | 输入 | 适用场景 |
|---|---|---|
| 正向 | CSV 连接映射表(spec) | 有明确连接规格,验证 RTL 符合规格 |
| 反向 | 源模块列表(自动提取) | 没有规格文档,从 RTL 反向工程连接关系 |
常见陷阱
- CSV 写错了:验证通过但连接本身就是错的——CSV 要由架构师 review
- 缺少约束:模块使能信号未约束导致 Toggle 检查失败(该路径被禁用时翻转不过去)
- 黑盒过度:中间模块被黑盒后 COI 分析不完整,连接路径断开
来源文档
jaspergold_conn_userguide.pdfjaspergold_ipxact_reference.pdfexample_jaspergold_apps/CONN/