第三章Connectivity 连接性验证

概述

Connectivity App 自动验证 SoC 中 IP 之间的信号连接是否正确。这在大型 SoC 集成中特别有用,可以替代耗时的手动连接性审查。

两种验证模式

Basic Connectivity Flow(正向连接验证)

给定一个连接规格(哪些源信号应该连到哪些目标信号),验证 RTL 实现是否匹配。

Reverse Connectivity Flow(反向连接验证)

从 RTL 实际连线中自动提取连接关系,与期望的连接模式对比,发现意外的连接或漏连。

GUI 概览

Connectivity Verification App 主窗口:左侧 Connections Table 列出各连接及 Toggle/CO 状态,右侧 Task/Property Table 显示证明结果
Connectivity Verification App 主窗口:左侧 Connections Table 列出各连接及 Toggle/CO 状态,右侧 Task/Property Table 显示证明结果

连接分类(Connection Classifications)

工具会在 Connections Table 的 Classification 列、以及 check_conn -report 生成的报告中显示以下分类:

判定条件分类
源信号与目的信号相同equal name
源端口名包含在目的端名中,或反之partial equal name
信号被拉到 0tie 0
信号被拉到 1tie 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

Connectivity 验证界面

连接性验证方法论

什么时候用 Connectivity App

COI 验证和 Toggle 检查各做什么

检查类型验证内容能发现
COI 验证源信号和目的信号在彼此的影响锥内(逻辑上存在路径)信号完全没连、接错了端口
Toggle 检查每个源信号位生成 cover 属性,确保该位能够从 0 变到 1、以及从 1 变到 0(每个源信号位生成两条属性)源信号位无法翻转(如被拉成常量、被上游逻辑钳住)
留意 Toggle 检查的确切定义:文档对它生成的属性给出了完整说明——"生成 cover 属性,确保每个源信号位都能从 0 变到 1、以及从 1 变到 0",并且"为每个源信号位生成两条属性"。也就是说,这些属性描述的对象是源信号位本身的翻转能力。源与目的之间是否存在路径,则由 COI 验证负责确认,两者配合使用。

正向 vs 反向验证

模式输入适用场景
正向CSV 连接映射表(spec)有明确连接规格,验证 RTL 符合规格
反向源模块列表(自动提取)没有规格文档,从 RTL 反向工程连接关系

常见陷阱

来源文档

  • jaspergold_conn_userguide.pdf
  • jaspergold_ipxact_reference.pdf
  • example_jaspergold_apps/CONN/