视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
architecture【文档与办公】Microarchitecture exploration, PPA estimation, risk assessment, and architecture sign-off for digital chip design. Use when evaluating design candidates, estimating power/area/performance, assessing technical risk, or producing a microarchitecture document for handoff to RTL design.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
digital-chip-design-agents:architecture-orchestrator agent and pass the full
user request and any available context. Do not execute stages directly.architecture-orchestrator mid-flow: do not spawn a new
agent. Treat this file as read-only — return the requested stage rules,
sign-off criteria, or loop-back guidance to the calling orchestrator.Spawning the orchestrator from within an active orchestrator run causes recursive delegation and must never happen.
Before executing or advising on any stage, read the following files if they exist:
memory/architecture/knowledge.md — known failure patterns, successful tool flags, PDK/tool quirks.
Incorporate its guidance into every stage decision. If absent, proceed without it.memory/architecture/run_state.md — current run identity (run_id, design_name, tool,
last_stage). Use this to resume correctly after interruption. If absent, a new run
is starting; the orchestrator will create this file before the first stage.This pre-run read applies whether this skill is loaded by a user or called by the orchestrator mid-flow. It ensures the fix database is consulted before any diagnosis step.
Guide the full microarchitecture evaluation process from product specification through to a signed-off microarchitecture document ready for RTL handoff. Covers specification decomposition, candidate architecture exploration, performance and PPA modelling, risk assessment, and sign-off.
gem5) — full-system micro-architectural simulator for performance modellingmcpat) — processor power, area, and timing estimatorcacti) — SRAM/cache power and area estimatorpython3 estimate.py) — custom PPA modelssynopsys) — IP-level performance and power explorationarm) — cycle-accurate ARM subsystem modelscadence) — SoC-level virtual prototyping| Issue | Fix |
|---|---|
| Spec section not mapped | Add to open questions; do not assume |
| Interface bandwidth unspecified | Request from product team before proceeding |
| Conflicting requirements | Flag as blocker; request resolution |
| Candidate | Freq Target | Area Est. | Power Est. | Risk | Notes |
|---|---|---|---|---|---|
| Option A | 1GHz | 3mm² | 300mW | Low | ... |
| Option B | 2GHz | 6mm² | 700mW | High | ... |
design_state.architecture.candidates[], one entry per
candidate — rejected ones included, each with a rejection_reason — so a downstream
refinement can resume from it (architecture-orchestrator Behaviour Rule 10)architecture.refinement_needed is set): the
downstream measurement in refinement_request.measured replaces the model estimate for
the selected candidate. Recalibrate the model so it reproduces that measurement, then
re-score every persisted candidate with the recalibrated model before choosing one. A
model that still predicts the old estimate is uncalibrated, and its scores are not evidence.Perform this analysis using the activity factors already collected for dynamic power:
For each identified clock domain, record its activity factor α derived from the use-case workload sweep (gem5 simulation or analytical model).
Classify each domain using thresholds from design_state.constraints.power.activity_factors (defaults: {"default": 0.15, "high": 0.40}):
activity_factors.default (default: 0.15) — high gating opportunity: clock gating will save > 30% dynamic power
for that domain; flag as a must-have RTL requirement.activity_factors.default ≤ α < activity_factors.high (defaults: 0.15–0.40) — moderate gating opportunity: clock gating recommended;
flag as should-have RTL requirement.activity_factors.high (default: 0.40) — always-active: no gating benefit; document as always-on.Produce a clock_power_budget table (one row per domain):
| Domain | Frequency | α (activity) | Est. Clock Power (mW) | Gating Class |
|---|---|---|---|---|
| core | 1 GHz | 0.08 | 45 | high |
| dsp | 500 MHz | 0.55 | 30 | always-on |
McPAT clocking component already models clock network power — ensure the
frequency-sweep input reflects per-domain frequencies, not a single global clock.
Include the clock_power_budget table in the hand-off package to RTL design.
The RTL agent will use it to target ICG (Integrated Clock Gate) insertion.
| Tool | Type | Use |
|---|---|---|
| McPAT | Open-source | Clock network + dynamic/leakage power (already in flow) |
| gem5 | Open-source | Workload activity factor extraction (already in flow) |
| CACTI | Open-source | Memory clock power estimate (already in flow) |
| Yosys + ABC | Open-source | Post-synth switching activity cross-check (optional) |
| Synopsys PrimePower | Proprietary, dialect synopsys | RTL-level power sign-off (optional) |
| Cadence Joules RTL | Proprietary, dialect cadence | RTL power analysis (optional) |
design_state.constraints.area.area_um2 budget (required constraint — see architecture-orchestrator Behaviour Rule 9)design_state.constraints.power.power_mw budget (required constraint)design_state.constraints.power.leakage_pct_max% of total estimated power (default: 15%)design_state.constraints.power.gating_coverage_pct_min% of register-bank bits in high-opportunity domains (default: 60%)
(measured using planned register-map estimates from the microarchitecture specification;
mark estimate confidence as HIGH if register counts are frozen, MEDIUM if approximate,
LOW if based on scaling from similar designs)clock_power_budget table (domain → frequency, activity factor, estimated clock power mW, gating class)design_state.constraints.area.area_um2 / power.power_mw)clock_power_budget table produced; gating class assigned per domaindesign_state.constraints.power.gating_coverage_pct_min% of register bits in high-opportunity domains (default: 60%)clock_power_budget table)See plugins/meta/skills/pipeline-orchestration/SKILL.md §Constraints Schema for the authoritative schema and stage-entry validation rule.
Required at entry (spec_analysis) — hard-fail if missing:
constraints.clock.clk_mhz — target frequencyconstraints.area.area_um2 — area budgetconstraints.power.power_mw — power budgetOptional (schema defaults apply when absent):
constraints.power.leakage_pct_max (default: 15%) — leakage thresholdconstraints.power.gating_coverage_pct_min (default: 60%) — ICG coverage targetconstraints.power.activity_factors (defaults: {default: 0.15, high: 0.40}) — domain classification thresholdsAfter each stage completes (regardless of whether an orchestrator session is active),
write or overwrite one JSON record in memory/architecture/experiences.jsonl keyed by
run_id. This ensures data is persisted even if the flow is interrupted or called
without full orchestrator context.
Use run_id = architecture_<YYYYMMDD>_<HHMMSS> (set once at flow start; reuse on each
stage update). Set signoff_achieved: false until the final sign-off stage completes.
Write memory/architecture/run_state.md as the first action before launching any tool:
run_id: architecture_<YYYYMMDD>_<HHMMSS>
design_name: <design>
tool: <primary tool>
start_time: <ISO-8601>
last_stage: null
Update last_stage to the completed stage name only after each stage finishes successfully. This file lets wakeup-loop prompts
and resumed sessions identify the correct run without relying on in-memory state.
Create the file and parent directories if they do not exist.
If mcp__plugin_ecc_memory__add_observations is available in this session, emit each
applied fix as an observation to entity chip-design-architecture-fixes after writing to
experiences.jsonl. Skip silently if the tool is absent — JSONL is the canonical record.