← ClaudeAtlas

fpga-bringuplisted

Use when loading a bitstream onto a physical FPGA and driving or observing it over JTAG or GPIO, especially bit-banged JTAG from a host like a Raspberry Pi, or when configuration silently fails
Midstall/claude-for-hardware · ★ 1 · AI & Automation · score 74
Install: claude install-skill Midstall/claude-for-hardware
# FPGA Bring-Up ## Overview Bringing up an FPGA on the bench means three things: get the bitstream in over a real transport, drive the design's inputs, and observe its outputs. Most early failures are transport and pin-mapping problems, not logic problems. **Core principle:** Bring the transport up first and prove it independently, before you trust anything the design does. A bitstream that "loaded" but didn't is the most expensive hour on the bench. ## When to Use - Loading a bitstream onto a board over JTAG, SPI, or a custom config chain - Bit-banging JTAG from GPIO (Pi-as-host, no FTDI/FT2232) - Driving test vectors into pins and reading results back - Configuration "succeeds" but the design doesn't run ## Bring Up The Transport First Before any design-level work, prove the link end to end: 1. **Read the IDCODE.** Shift the JTAG IDCODE instruction and confirm the value matches the part. If IDCODE is wrong or all-ones/all-zeros, you have a wiring, voltage, or clock problem. Stop here and fix it. Nothing downstream matters yet. 2. **Confirm the IR width.** The instruction register width is part-specific and must match the design's TAP. A wrong IR width shifts every instruction into garbage and configuration silently no-ops. Make the IR width a parameter, not a magic constant baked in one place. 3. **Confirm clock and levels.** TCK speed, signal voltage, pull directions. Bit-banged GPIO has no buffering; mind the levels and keep TCK slow until the link is proven. ##