← ClaudeAtlas

reference-driven-rohdlisted

Use when implementing a hardware block, protocol, peripheral, or ISA feature in ROHD and you should ground it in the authoritative spec, existing reference implementations, and reusable libraries you fetch first, instead of writing it from memory
Midstall/claude-for-hardware · ★ 1 · Testing & QA · score 74
Install: claude install-skill Midstall/claude-for-hardware
# Reference-Driven ROHD ## Overview Writing a protocol or peripheral from memory is how you ship a design that is subtly wrong: a reserved bit in the wrong place, a handshake that almost matches the spec, an edge case the standard calls out that you never saw. The fix is cheap and boring: get the real sources first, then implement against them. **Core principle:** Before writing custom ROHD, fetch the authoritative spec, the existing reference implementations, and any reusable library that already solves part of the problem. Implement from primary sources, not from recall. The spec is the oracle, the references show the behavior, the library saves the parts you should not rewrite. ## When to Use - Implementing a standardized block (a bus, a UART, an SPI controller, a CRC, an ECC, a CSR file, an ISA extension) - Building something that must interoperate with hardware or software you do not control - You are about to write RTL from your own memory of how the protocol works - A datasheet, RFC, ISA manual, or vendor spec exists for what you are building Skip for genuinely novel internal logic that has no external spec and no prior art. ## Fetch The Sources First Do this before writing a line of RTL. Three buckets, in order: 1. **The authoritative spec.** The actual standard, datasheet, or ISA manual, not a blog summary. RISC-V unprivileged/privileged manuals, the Wishbone B4 spec, a part's datasheet PDF, the protocol's RFC. Use WebFetch/WebSearch to pull it, and note the