ワンクリックで
rtl-p5-verify-policy
Internal reference: rtl p5 verify policy (agent-loaded; do not invoke).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Internal reference: rtl p5 verify policy (agent-loaded; do not invoke).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Read-only architecture review of RTL vs uArch spec with area/timing/power tradeoffs. Use for post-RTL architecture sign-off or suspected spec mismatch.
Builds Phase 3 SystemC TLM-2.0 bus functional models with AMBA (AXI/AHB/APB) support. Use for 'develop BFM', 'SystemC TLM model', 'bus functional model'.
Encoder RD evaluation of C ref model: BD-PSNR/BD-rate (VCEG-M33) across sequences/QPs — 'RD eval', 'BD-rate', codec algorithm quality comparison.
Validate spec contracts across phase boundaries (P3 uarch to P4 RTL to P5 verify): port widths, memory class, REQ traceability. Use at P4/P5 entry.
Internal reference: p1 spec research policy (agent-loaded; do not invoke).
Full 6-phase RTL pipeline from spec to verified design (P1 research through P6 design note). Triggers: 'design a chip', 'full pipeline', 'autopilot'.
| name | rtl-p5-verify-policy |
| description | Internal reference: rtl p5 verify policy (agent-loaded; do not invoke). |
| user-invocable | false |
Stage 1 (Module): Each module independently verified in parallel across 9 categories. Stage 2 (Top): System-level verification after ALL modules graduate. Stage 3 (Final): Compliance review + summary generation.
Core principle: Module-level verification first, top-level only after module graduation (criteria: Module Graduation Gate below). Only graduated modules participate in top-level integration. This prevents wasting top-level sim time on modules with known bugs.
Applied at both module-level (Stage 1) and top-level (Stage 2). Agent/sub-orchestrator routing per category is OWNED by the p5-verify-orchestrator agent prompt ("Verification Categories" table).
V1: Lint (final comprehensive)
V2: SVA Completion + Formal
V3: CDC/RDC Analysis
V4: Protocol Compliance (if bus interfaces)
V5: Functional Regression (Tier 3/4)
V6: Coverage Analysis
V7: Performance Verification
V8: Synthesizability + PPA Estimation
V9: Code Review + Refactoring
Parallel Group A: V1(Lint) + V2(SVA/Formal) + V3(CDC) + V4(Protocol) + V8(Synth Est.)
Sequential: V5(Functional) starts after V1 pass (lint-clean required for sim)
Incremental: V6(Coverage) starts as V5 data arrives
Sequential: V7(Performance) after V5 pass (functional correctness required)
Final: V9(Code Review) after V1-V8 results inform review scope
A module graduates when ALL 9 checks pass. The per-check criteria are stated ONCE, normatively, in "Final Checklist — Stage 1 (Per Module)" below (PARTIAL_PASS accepted for V5 AC-level checks — WARNING, not FAIL).
On FAIL: invoke rtl-p4s-bugfix (feedback loop, max 2 per module). After fix, re-verify ONLY the failed categories (not all 9).
When structured acceptance_criteria (with ac_id) exist in iron-requirements: Module graduation (Stage 1):
Stage 3 audit (final, pre-P6): per "Requirement Traceability Gate (P6 Entry Blocker)" below and Final Checklist Stage 3 (no Critical/High ac_id UNTESTED or PARTIAL). When no structured AC: existing REQ-level graduation applies.
All top-level checks PASS → proceed to Stage 3. On FAIL → classify and fix:
Per-module JSON with fields: module, status (initial "pending"), checks object with
one key per category — v1_lint, v2_sva_formal, v3_cdc, v4_protocol (allows "n/a"),
v5_functional, v6_coverage, v7_performance, v8_synth_est, v9_code_review — each
initialized "pending", plus feedback_loops (count, initial 0) and graduated (bool, initial false).
Long test suites split by scenario category:
| Category | Description | Typical Vector Count |
|---|---|---|
| basic | Normal operation, happy path | 50-100 |
| corner_case | Boundary conditions, edge cases | 100-200 |
| stress | Maximum throughput, back-to-back, full FIFO | 200-500 |
| error_handling | Invalid inputs, error injection, recovery | 50-100 |
Each scenario category runs as independent parallel agent. Multi-seed regression per scenario (5 seeds default: 1, 42, 123, 1337, 65536). Total: M modules × S scenarios × 5 seeds = massive parallelism. Early termination: >5% failure rate → halt and report.
For very large modules, further split by feature within each category.
Minimum 3 rounds: Draft → Strengthen → Harden.
run_syn.sh or formal scripts handle sv2v internally (Layer 2)_v2v.v files (generated by scripts, not manually)Post-exclusion targets: line ≥ 90%, toggle ≥ 80%, FSM ≥ 70% (normative statement: Final Checklist Stage 1, V6 items).
Iterative coverpoint refinement (minimum 3 rounds).
Generate additional tests for HIGH priority gaps. Re-run regression for new tests.
When convergence is detected (2 consecutive iterations with < 0.5% improvement),
apply Coverage Exclusion Protocol per rtl-p5s-coverage-policy: classify unreachable bins,
generate exclusion files, document in reviews/phase-5-verify/{module}-coverage-exclusions.md,
and report both raw and post-exclusion numbers.
Both Module-level (V8) and Top-level (T8):
run_syn.sh --skip-if-unavailable — handles tool selection and sv2v internally (Layer 2)syn-tool-profiles):
Module-level (Stage 1 V8): → Always: synthesis estimation with NanGate45 + NAND2 gate count → SDC: per-module clock/IO constraints
Top-level (Stage 2 T8): → Always: full synthesis estimation with NanGate45 + SDC → User requested full synthesis? → additionally export netlist + JSON report → Area metric: ALWAYS NAND2-FO2 gate equivalents (NOT LUTs, NOT raw cell count)
Cap concurrent verification agents at ~20-30 via run_in_background regardless of theoretical parallelism.
| Failure Type | Scope | Fix Approach | Re-verify |
|---|---|---|---|
| UNIT_FIX (lint) | Single module V1 | rtl-coder fix | V1 only |
| UNIT_FIX (SVA) | Single module V2 | rtl-p4s-bugfix | V2 only |
| UNIT_FIX (CDC) | Single module V3 | rtl-coder add sync | V3 only |
| UNIT_FIX (sim) | Single module V5 | rtl-p4s-bugfix | V5 + V6 |
| INTEGRATION_FIX | Cross-module | rtl-p4s-bugfix | Affected Vx + Stage 2 |
| DESIGN_FIX | Architecture | STOP → user | All (after upper phase fix) |
Independent UNIT_FIX failures in different modules: fix in parallel. Same-module failures: fix sequentially within a single task. INTEGRATION_FIX: always sequential (cross-module dependencies).
When P5 verification reveals a μArch-level issue that cannot be fixed in RTL alone (e.g., pipeline balance infeasible, missing metadata in FIFO struct, architectural throughput bottleneck):
reviews/phase-5-verify/uarch-feedback-{module}.md with:
Every feedback loop iteration MUST produce a decision record at
.rat/scratch/phase-5/feedback-loop-decision-{N}.md with:
# Feedback Loop Decision #{N}
- Module: {module}
- Check: V{x} ({category})
- Classification: UNIT_FIX | INTEGRATION_FIX | DESIGN_FIX | UARCH_FIX
- Root cause: {description}
- Fix applied: {description of change}
- Alternatives considered: {rejected options with rationale}
- Affected artifacts: {list of modified files}
- Re-verification scope: {which checks to re-run}
This enables post-mortem analysis of verification efficiency and identifies recurring patterns that should become preventive rules.
When invoked from rat-auto-design, state is tracked in .rat/state/rat-auto-design-state.json:
{
"current_phase": 5,
"completed_sub_phases": ["stage-1-module-a", ...],
"pending_sub_phases": ["stage-2-integration", "stage-3-compliance"],
"fix_history": [
{"sub_phase": "stage-1-v2", "module": "module_a", "fix_count": 1, "status": "resolved"}
]
}
This enables resume: re-read state and continue from next pending sub-phase.
If commercial simulator available and UVM mandated, invoke /rtl-agent-team:rtl-p5s-uvm-verify
alongside V5. UVM is NOT a replacement for cocotb regression — both provide complementary coverage.
Stage 3 includes a Formal Traceability Audit that gates P6 entry:
This ensures no Critical/High requirement ships without at least one verification artifact.