核心能力
1. Validator Registry
注册所有验证器及其 capability 声明:每个 validator 声明自己检查的domain(connectivity/legality/formal/DRC/LVS/STA)、适用的stage(post-synth/post-place/post-route/signoff)、coverage(full/partial/sampled)和运行成本。
2. Bundle Orchestration
按风险等级编排验证 bundle。低风险变更(如修 hold buffer)触发light bundle(DRC around changed region + STA);高风险变更(如重新布局)触发full bundle(DRC+LVS+STA+Formal)。Bundle 内验证器可并行执行。
3. Certificate
机器可读的验证证书(JSON),记录:通过了哪些检查、什么条件下(corner/mode)、输入设计 hash、验证器版本、签发时间。证书带有数字签名,下游流程(如 tape-out gate)仅接受有效证书。
4. Invalidation
上游变更自动失效相关证书。变更追踪基于 iDB 的design_hash:任何修改 netlist/layout/timing 数据的操作产生新 hash,所有绑定旧 hash 的证书自动标记为 invalidated。支持选择性 re-verify。
5. Gate Integration
与 Evaluation(Gate 12)的门禁联动:Gate 定义必需证书列表(如 tape-out 需要 DRC+LVS+STA certificate),Verification Hub 提供当前证书状态。缺失或失效证书阻止门禁通过。
Agent 调用方式
from ieda.agent import VerificationHub, VerifyBundle
hub = VerificationHub()
# 注册验证器
hub.register(
name="iSTA-verify",
domain="STA",
stage="post-route",
coverage="full",
cost_estimate="medium"
)
# 编排验证 bundle
bundle = hub.bundle(
stage="post-route",
risk="high",
design_hash=current_idb.design_hash
)
# bundle.validators: [DRC, LVS, STA, Formal]
# 执行验证
result = hub.verify(bundle)
# result.certificate: {
# "id": "cert-post-route-v3",
# "design_hash": "abc123",
# "checks_passed": ["DRC", "LVS", "STA", "Formal"],
# "conditions": {"corner": "wc_cmax"},
# "signed_by": "verification-hub/v2.1"
# }
# 上游变更自动失效
hub.invalidate(design_hash="abc123") # mark cert expired
// MCP 协议:Agent 请求验证编排与证书
{
"method": "tools/call",
"params": {
"name": "verify.bundle",
"arguments": {
"stage": "post-route",
"risk": "high",
"design_hash": "abc123def456",
"required_checks": ["DRC", "LVS", "STA"],
"callback": "agent.on_verify_complete"
}
}
}
// 返回证书
{
"certificate": {
"id": "cert-post-route-v3",
"status": "signed",
"checks": {"DRC": "pass", "LVS": "pass", "STA": "pass"},
"design_hash": "abc123def456"
}
}
# Tcl 接口:验证编排
ieda::verify register -name iDRC -domain DRC -stage signoff
ieda::verify bundle -stage post-route -risk high
# → bundle: DRC + LVS + STA + Formal
ieda::verify run -bundle post-route
# cert-post-route-v3: DRC(pass) LVS(pass) STA(pass) Formal(pass) → SIGNED
ieda::verify status
# post-route: cert-v3 (valid)
# post-place: cert-v2 (invalidated — layout changed)
输入/输出契约
| 方向 | 字段 | 类型 | 说明 |
|---|---|---|---|
| 输入 | stage | str | 流程阶段(post-synth/post-place/post-route/signoff) |
| 输入 | risk | str | 风险等级,决定 bundle 范围(low/medium/high) |
| 输入 | design_hash | str | 当前设计状态 hash |
| 输入 | required_checks | list[str] | 强制要求的检查项(可选,覆盖 bundle 默认值) |
| 输出 | bundle | VerifyBundle | 编排好的验证器列表与执行顺序 |
| 输出 | certificate | Certificate | 签名的验证证书(JSON + digital signature) |
| 输出 | status_map | dict | 每个 stage 的最新证书状态 |