GF-Pinmap — Board-Aware Pin Mapping

SkillFiles & storage

Board-aware pin mapping. Generates FPGA constraint files (.xdc/.pcf/.lpf/.cst) with correct pin assignments, I/O standards, and drive strength for target boards. Example: "map SPI to PMOD JA on Arty A7", "generate constraints for my iCEBreaker"

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the GF-Pinmap — Board-Aware Pin Mapping skill

What this skill tells your AI

The instructions your AI receives, as published by codejunkie99/gateflow-plugin in skills/gf-pinmap/SKILL.md and read by ahel’s review.

Workflow

  1. Identify board — Check .gateflow/project.yaml target.board or ask user
  2. Check curated database first:
    ls ${CLAUDE_PLUGIN_ROOT}/boards/<board>/board.yaml 2>/dev/null
    
  3. If board found: Read board.yaml, generate constraint file
  4. If board NOT found: Web search as fallback, require user confirmation
  5. Cross-reference generated constraints with RTL port list
  6. Output constraint file in correct format for target FPGA

Curated Board Flow

  1. Read boards/<board>/board.yaml for pin data
  2. Read boards/<board>/constraints.* for template
  3. Map RTL ports → board pins based on user's peripheral selection
  4. Generate complete constraint file with:
    • PACKAGE_PIN
    • IOSTANDARD (from board.yaml)
    • DRIVE strength (default 12mA for outputs)
    • SLEW rate (default SLOW)
    • PULLUP for active-low signals

Web Search Fallback

Only when board is NOT in curated database:

  1. Search: "<board name>" constraint file site:github.com
  2. Search: "<board name>" pinout .xdc OR .pcf OR .lpf
  3. Present findings to user with WARNING:
    Found constraint data for <board> via web search.
    Source: <url>
    
    WARNING: This pin data has NOT been verified against the official
    board documentation. Incorrect pin assignments can damage hardware.
    
    Please review before applying:
    [show pin assignments]
    
    Apply these constraints? [Y/n]
    
  4. NEVER auto-apply web-searched data

Safety

  • Never guess pin assignments
  • Always include IOSTANDARD (missing = synthesis error or hardware damage)
  • Check voltage bank compatibility
  • Warn if mixing I/O standards in the same bank
  • Active-low signals get PULLUP

GATEFLOW-RESULT Format

---GATEFLOW-RESULT---
STATUS: PASS | FAIL | ERROR
FORMAT: xdc | pcf | lpf | cst
BOARD: <board name>
PINS_MAPPED: <count>
PINS_UNMAPPED: <count>
FILE: <constraint file path>
DETAILS: <summary>
---END-GATEFLOW-RESULT---

I/O Standard Reference

IOSTANDARDVoltageMax SpeedTypical Use
LVCMOS333.3V~100 MHzGPIO, LEDs, UART, SPI
LVCMOS252.5V~150 MHzMixed-voltage
LVCMOS181.8V~200 MHzModern peripherals
LVDS_252.5V diff~1 GbpsHigh-speed serial
SSTL151.5V~800 MHzDDR3
TMDS_333.3V~750 MbpsHDMI/DVI

Common Pin Mapping Mistakes

  1. Missing IOSTANDARD -> Defaults may damage hardware. Always specify.
  2. Mixing I/O standards in same bank -> All pins in a bank share VCCO.
  3. Floating inputs -> Add PULLUP/PULLDOWN to unused inputs.
  4. No termination on high-speed -> Use ODT for DDR, 100-ohm for LVDS.
  5. Wrong DRIVE strength -> 4mA for LEDs, 8-12mA for SPI.
  6. Forgetting create_clock -> No timing analysis without it.

PMOD Mapping Patterns

Standard PMOD pinout: pins 1-4 (top row I/O), 5 (GND), 6 (VCC), 7-10 (bottom row I/O), 11 (GND), 12 (VCC).

PMOD TypePin 1Pin 2Pin 3Pin 4
Type 2 (SPI)CS_NMOSIMISOSCLK
Type 3 (UART)CTSTXDRXDRTS
Type 6 (I2C)SCLSDAINT_NRST_N

Signals

GitHub stars
112
Forks
14
Last commit
May 2026
Advanced
Catalog kind
skill
Gateway key
gf-pinmap
Source
github.com/codejunkie99/gateflow-plugin