Help us improve
Share bugs, ideas, or general feedback.
From gateflow
Installs, lists, queries verified hardware IP blocks (FIFO, UART, SPI, AXI) with RTL, testbenches, formal properties into projects via 'add a FIFO' or /gf-ip add uart.
npx claudepluginhub codejunkie99/gateflow-plugin --plugin gateflowHow this skill is triggered — by the user, by Claude, or both
Slash command
/gateflow:gf-ipThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- `add <block>` — Copy IP block into current project
Scans FPGA/hardware codebases for missing module implementations, stub modules, standard IP patterns (FIFO, CDC, UART, SPI, AXI), interface gaps, and vendor primitives. Dispatches agents to fill gaps.
Generates convention-compliant SystemVerilog wrapper modules for third-party IP (memory, PLL, PHY, DSP) from IP-XACT descriptors or datasheets.
Guides full Xilinx/AMD FPGA/MPSoC workflows: Vivado hardware design/Block Design/IP/XDC/bitstream, Vitis HLS C/C++ IP synthesis, Vitis embedded software, PetaLinux Linux builds. Activates on vivado/fpga/zynq mentions.
Share bugs, ideas, or general feedback.
add <block> — Copy IP block into current projectlist — Show all available IP blocksinfo <block> — Show block details, ports, parameters| Block | Description | Verified |
|---|---|---|
| fifo_sync | Synchronous FIFO (parameterized width/depth) | lint + sim + formal |
| fifo_async | Async FIFO with Gray code pointers (CDC) | lint + sim + formal |
| cdc_2ff | 2-flip-flop synchronizer | lint + sim + formal |
| cdc_handshake | Multi-bit handshake synchronizer | lint + sim + formal |
| uart | UART TX+RX with configurable baud | lint + sim + formal |
| spi_master | SPI master (all 4 CPOL/CPHA modes) | lint + sim + formal |
| axi4lite_slave | AXI4-Lite register slave | lint + sim + formal |
| debouncer | Button debouncer with edge detection | lint + sim + formal |
Each block lives in ${CLAUDE_PLUGIN_ROOT}/ip/<name>/:
<name>/
rtl/<name>.sv # RTL source
tb/tb_<name>.sv # Self-checking testbench
formal/<name>_props.sv # SVA properties
formal/<name>.sby # SymbiYosys config
block.yaml # Metadata
README.md # Usage guide
When user says "add a FIFO" or runs /gf-ip add fifo_sync:
rtl/ (or user-specified directory)tb/formal/.gateflow/project.yaml — add to ip_blocksname: fifo_sync
version: 1.0.0
description: Synchronous FIFO with parameterized width and depth
parameters:
WIDTH: { type: int, default: 8, description: "Data width in bits" }
DEPTH: { type: int, default: 16, description: "FIFO depth (entries)" }
ports:
- { name: clk, dir: input, width: 1 }
- { name: rst_n, dir: input, width: 1 }
- { name: wr_en, dir: input, width: 1 }
- { name: wr_data, dir: input, width: WIDTH }
- { name: rd_en, dir: input, width: 1 }
- { name: rd_data, dir: output, width: WIDTH }
- { name: full, dir: output, width: 1 }
- { name: empty, dir: output, width: 1 }
formal_proofs:
- p_no_overflow: "FIFO never accepts writes when full"
- p_no_underflow: "FIFO never allows reads when empty"
dependencies: []