원클릭으로
rtl-p3-uarch-policy
Internal reference: rtl p3 uarch policy (agent-loaded; do not invoke).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Internal reference: rtl p3 uarch 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-p3-uarch-policy |
| description | Internal reference: rtl p3 uarch policy (agent-loaded; do not invoke). |
| user-invocable | false |
Each module document MUST contain:
Every P3 run MUST produce docs/phase-3-uarch/req-uarch-traceability.md mapping each requirement
from docs/phase-1-research/iron-requirements.json (REQ-F-, REQ-P-) and
docs/phase-2-architecture/iron-requirements.json (REQ-A-*) to the uArch module(s) and section(s) implementing it.
Format:
| REQ ID | uArch Module(s) | Section(s) | Status |
|----------|-------------------------|-----------------------------|----------|
| REQ-001 | intra_pred | 3.2 Mode Decision FSM | MAPPED |
| REQ-002 | deblock_filter, sao | 2.1 Pipeline, 4.3 SAO Ctrl | MAPPED |
| REQ-003 | — | — | UNMAPPED |
iron-requirements.json changes after P3 completion, this table identifies which uArch sections need re-design. The P3 orchestrator uses mtime comparison to detect staleness.clk / rst_n{domain}_clk / {domain}_rst_n (e.g., sys_clk, pixel_clk)Generic selection table (bit/port thresholds), register-file exceptions, wrapper naming/parameters,
and SP port list are owned by the deployed .claude/rules/rtl-coding-conventions.md (Storage Selection
section). P3-specific additions below.
Every storage element in the μArch spec MUST include a storage type decision with rationale.
Read latency as selection criterion:
Streaming buffer rule (write-once/read-multiple: line/frame buffers, init-written coefficient tables): always SRAM wrapper regardless of size — combinational read on streaming buffers creates massive MUX trees. If N readers share 1R port: document time-multiplex schedule (e.g., 4 readers × 1 cycle = 4-cycle access, must fit within pipeline initiation interval).
Multi-port large storage (>4096 bits, >2 R/W): prefer banked SRAM to reduce port count; register file only with PPA justification.
SpyGlass compatibility: set_option mthresh <bits> flags register arrays exceeding the threshold as SRAM candidates; teams typically set 4096–65536 bits by target technology. Align the >4096-bit mandatory SRAM rule with your project's mthresh setting in rat_config.json if different.
Per-SRAM-instance μArch spec (required for every SRAM instance):
DEPTH/WIDTH (derived ADDR_W = $clog2(DEPTH)), read latency (1-cycle registered output default; document if different)clk, i_wen, i_waddr, i_wdata, i_ren, i_raddr, o_rdata. DP ports (dual clock): wclk, i_wen, i_waddr, i_wdata, rclk, i_ren, i_raddr, o_rdataEvery internal bus, FIFO, and result packing width MUST be derived from design parameters — hardcoded width constants are prohibited in parameterized designs.
BLOCK_PIXELS * NUM_COMPONENTS * (BPC+1) + META_BITS)(Why: widths hardcoded for one parameter set — e.g., BPC=12 — leave unused upper bits when parameters change: structurally unreachable toggle coverage, wasted area/power, hidden parameter dependencies.)
localparam WIDTH = <literal> for datapath widths is flagged —
must derive from upper parameters (e.g., localparam L_FIFO_W = BLK_PIXELS * COMPONENTS * (BPC+1) + META)Three sub-gates in order — executable procedure owned by p3-uarch-orchestrator Step 4:
Invoke rtl-planner when execution risk is the blocker rather than local RTL details:
Expected rtl-planner output: explicit task dependency graph, critical path, and parallel work groups that the orchestrator can apply to Step 3/5 sequencing.
Invoke clock-architect when clocking strategy is non-trivial:
Expected clock-architect output: review report at
reviews/phase-3-uarch/clock-architecture-review.md and concrete fixes to
docs/phase-3-uarch/clock-domain-map.md.
i_ prefix (NOT _i suffix)o_ prefix (NOT _o suffix)io_ prefixclk (single) or {domain}_clk — NOT clk_irst_n (single) or {domain}_rst_n — NOT rst_niu_ prefix (e.g., u_fifo)gen_ prefixtypedef enum logic [N:0] with UPPER_SNAKE_CASE valuessnake_case_t suffix (e.g., state_t, bus_req_t)UPPER_SNAKE_CASE (e.g., DATA_WIDTH)logic only (no reg/wire)Dynamic convergence rounds (min 2, max 5 — see Review Convergence Criteria), coordinated by rtl-architect:
4 mandatory + 1 conditional parallel reviewers each round:
domain-packages/{domain}/ exists (e.g., vcodec-architecture-expert for video codec).
When no domain expert available, rtl-architect covers algorithm consistency in its scope.Round 1-2: review → rebuttal (designer accepts/rejects each finding with rationale) → tree exploration for accepted issues → targeted revision (rejections recorded in per-round artifact)
Last round (converged or max reached): cross-module interface audit, clock domain map consistency, memory conflict analysis, model consistency matrix, BFM final pass, μArch code review
Convergence check after round >= min_rounds: finding_delta < 0.1, all critical resolved, wonder stable
After max_rounds if not converged → escalate to user via AskUserQuestion
Conditional reviewers:
Save to reviews/phase-3-uarch/feature-preservation.md:
# Phase 3 Review: Feature Preservation
- Date: YYYY-MM-DD
- Reviewer: rtl-architect
- Upper Spec: architecture.md
- Verdict: PASS | FAIL
## Feature Coverage Checklist
| Feature | Architecture Block | μArch Doc | Status |
## Findings
### [severity] Finding-N: ...
## Verdict
PASS | FAIL: [reason]
Each review round MUST produce a wonder-log entry:
docs/phase-3-uarch/wonder-log.mdReview rounds use dynamic convergence instead of fixed 3 rounds:
| Parameter | Value | Rationale |
|---|---|---|
| min_rounds | 2 | Minimum for meaningful review |
| max_rounds | 5 | Prevent infinite loops |
| finding_delta_threshold | 0.1 | < 10% new findings = stable |
| critical_resolution | ALL | All Critical/High must be resolved |
| wonder_stability | true | No new High-risk assumptions |
Early exit (round 2): When findings converge quickly (simple designs) Extended review (rounds 4-5): For complex designs with emergent issues
Convergence signals: stability (finding_delta < threshold), stagnation (same findings repeated across rounds), oscillation (findings toggling resolved↔reopened).
Structure & throughput:
rate_per_cycle × clock_freq ≥ target_throughput. Pipeline changes that reduce net throughput below target are rejected.Section rules hold (name-only — the named sections are normative):
Checklist-only gate details:
Review:
Phase 3 receives docs/phase-2-architecture/open-requirements.json containing OPEN-2-* research topics.
For each OPEN-2-* item, the μArch team must:
candidates and evaluation_criteriadocs/phase-3-uarch/iron-requirements.json (REQ-U-*) with:
resolved_from: the OPEN-2-* ID that was resolvedresolution_rationale: why this candidate was selectedrejected_alternatives: all non-selected candidates with rejection reasonsupstream_compliance: verification that new REQ-U-* does not violate P1+P2 ironviolation_policy: "agent_retry" (authority=3)acceptance_criteria: measurable criteria for the μArch decisionEach REQ-U-* entry SHOULD include structured acceptance_criteria:
"acceptance_criteria": [
{
"ac_id": "REQ-U-NNN.AC-M",
"description": "measurable criterion text",
"test_method": "assertion|cocotb|formal|inspection",
"verifiable": true
}
]
Rules:
ac_id format: {parent_req_id}.AC-{N} (e.g., REQ-U-012.AC-1)test_method guides testbench-dev on verification approach:
assertion: protocol properties verifiable by SVA (e.g., valid stable during !ready)cocotb: functional behavior verifiable by simulation (e.g., transfer completes correctly)formal: invariants provable by formal verification (e.g., no deadlock)inspection: non-automatable criteria — set verifiable: falseverifiable: false criteria are excluded from automated coverage tracking;
documented in RTM as NOT_VERIFIABLE[] treated same as absent field (backward compatible)Each REQ-U-* entry SHOULD include a traces_to field linking to upstream requirements:
"traces_to": ["REQ-F-NNN", "REQ-A-NNN"] // Upstream requirements this REQ-U-* decomposes from
Rules:
traces_to linking to P1 REQ-F-* or P2 REQ-A-*Phase 3 MUST NOT produce an open-requirements.json. All research topics must be resolved here. If unresolved items remain at Phase 3 exit → EXIT GATE FAIL. P4 (Implementation) requires all requirements to be iron — no open items may remain.
After docs/phase-3-uarch/iron-requirements.json (REQ-U-*) is finalized:
upstream_iron: ["docs/phase-1-research/iron-requirements.json", "docs/phase-2-architecture/iron-requirements.json"]target_artifacts: Phase 3 output artifactsSame as Phase 2, but challenges may target P1 or P2 iron requirements. Challenge report must identify which upstream authority is being challenged. PPA estimates required with mandatory fields: frequency_mhz, area_gate_count, pixel_rate_mpps, achievable_fps.
Apply ambiguity scoring to all new REQ-U-* decisions:
Artifacts saved:
docs/phase-3-uarch/wonder-log.md (Wonder Log requirements met; High-risk assumptions resolved or explicitly accepted)docs/phase-3-uarch/upstream-feedback-report.md generated (P1/P2 gap analysis)docs/phase-3-uarch/requirement-delta.md generated (REQ implementability scan)docs/phase-3-uarch/iron-requirements.json exists with REQ-U-* entries and resolved_from tracking(Per-round review artifacts, Zero-Opens, Open Resolution, Compliance, and Ambiguity gate items: see Final Checklist.)
Per diagram policy: use Mermaid for pipeline/flow diagrams (ASCII art prohibited).
flowchart LR
S0[S0: Fetch] -->|"data[31:0]"| S1[S1: Decode]
S1 -->|"op[7:0], operands"| S2[S2: Execute]
S2 -->|"result[47:0]"| S3[S3: Writeback]
S0 -.->|stall| S0
S2 -.->|forward| S1
Each stage node: SN[SN: stage_name]. Edges: data width annotation.
Stall/forward paths: dashed arrows (-.->).