ワンクリックで
vdoc
Aggregate all per-module documentation into a single comprehensive IP document
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Aggregate all per-module documentation into a single comprehensive IP document
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Decompose an IP requirement into submodules, define interfaces, and generate an architecture document plus per-module requirement files and a top-level skeleton
Trace failing signals through the RTL hierarchy, classify root cause, and write a debug report per issue — no fix is proposed
Generate a design proposal, documentation, and RTL backbone from a requirement file
Generate documentation for any RTL module from Verilog source files
Implement Verilog code from an approved design proposal, then lint and simulate
Scan project state to determine phase completion, write flow_status.md, and orchestrate the full RTL design flow from architecture to documentation
| name | vdoc |
| description | Aggregate all per-module documentation into a single comprehensive IP document |
This guide defines the workflow for collecting all documentation generated during the development process and synthesizing it into a single, comprehensive IP-level document.
The input is the IP name. The output is a single Markdown file ./doc/<ip_name>.md covering the full IP.
Read the module docs as the primary source — do not also read every _req.md
and _proposal.md. The ModuleDocContract guarantees ./doc/<module>.md is
complete enough to "instantiate, drive, and reason about the module without
reading its RTL," so it already carries the interface and functional content this
skill aggregates. Reading the requirement and proposal for every module on top of
the doc is redundant and the largest token cost here; pull from them only as a
fallback (see the Read priority below).
| Source | Location | Content | When to read |
|---|---|---|---|
| Module docs | ./doc/<module>.md | Per-module interface and functional description | Always — primary source |
| Top-level skeleton | ./rtl/<ip_name>_top.v | Top-level ports and inter-module wiring | Always |
| Library module docs | ./lib/**/<module>.md | Reused library module documentation | Always (for reused modules) |
| Synthesis report | ./synth/<ip_name>/synth_report.md | Utilization, Fmax, power | If present (grep the summary tables, §7) |
| Proposals | ./ddoc/<module>_proposal.md | Architecture, algorithm, timing diagrams | Fallback only — when the module doc lacks the algorithm/timing detail the Architecture section (§2) needs |
| Requirements | ./ddoc/<module>_req.md | Original per-module requirements | Rarely — only to resolve a contradiction in a module doc |
Build a list of all submodules in the IP by walking the instantiation hierarchy from the top-level skeleton, following the shared procedure in .claude/skills/shared/HierarchyFilelist.md (use its grep-based extraction — do not read every RTL file).
For each submodule in the IP:
./doc/ or ./lib/.vexplain to generate it from the RTL source before proceeding.Do not proceed to Step 3 until all submodules have documentation.
Create the IP document at ./doc/<ip_name>.md.
./rtl/<ip_name>_top.vFor each submodule, include a condensed summary:
Do not copy the full module doc verbatim — summarize to the level useful for IP integration.
./synth/<ip_name>/synth_report.md exists)Pull all values directly from synth/<ip_name>/synth_report.md. Do not modify or re-interpret the numbers.
Include:
Full synthesis artifacts: synth/<ip_name>/If the synthesis report is absent, omit this section entirely — do not add a placeholder or note its absence.
./doc/<module>.md for full detail