FPGA prototyping — ASIC-to-FPGA RTL adaptation, multi-FPGA partitioning, synthesis and timing closure on FPGA, hardware bring-up, and software validation on the prototype.
Install the "fpga-emulation" agent skill from https://github.com/hdl-tools/digital-chip-design-agents/tree/master/plugins/fpga/skills/fpga-emulation into .claude/skills/fpga-emulation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fpga-emulation", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "fpga-emulation" agent skill from https://github.com/hdl-tools/digital-chip-design-agents/tree/master/plugins/fpga/skills/fpga-emulation into .agents/skills/fpga-emulation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fpga-emulation", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "fpga-emulation" agent skill from https://github.com/hdl-tools/digital-chip-design-agents/tree/master/plugins/fpga/skills/fpga-emulation into .cursor/skills/fpga-emulation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fpga-emulation", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "fpga-emulation" agent skill from https://github.com/hdl-tools/digital-chip-design-agents/tree/master/plugins/fpga/skills/fpga-emulation into .gemini/skills/fpga-emulation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fpga-emulation", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "fpga-emulation" agent skill from https://github.com/hdl-tools/digital-chip-design-agents/tree/master/plugins/fpga/skills/fpga-emulation into .github/skills/fpga-emulation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fpga-emulation", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "fpga-emulation" agent skill from https://github.com/hdl-tools/digital-chip-design-agents/tree/master/plugins/fpga/skills/fpga-emulation into .opencode/skills/fpga-emulation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fpga-emulation", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
fpga-emulation
GitHub stars
213
Token cost
~3.4k tokens
SKILL.md length
1,596 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
MIT
At a glance
FPGA prototyping — ASIC-to-FPGA RTL adaptation, multi-FPGA partitioning, synthesis and timing closure on FPGA, hardware bring-up, and software validation on the prototype.
Works in 2 steps: memory/fpga/knowledge.md — known failure… → memory/fpga/run_state.md — current run…
Porting an ASIC design to Xilinx
SKILL.md covers Invocation, Pre-run Context, Purpose and Supported EDA Tools, plus 5 more sections
Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
What it does
Fpga Emulation is an agent skill from hdl-tools/digital-chip-design-agents. FPGA prototyping — ASIC-to-FPGA RTL adaptation, multi-FPGA partitioning, synthesis and timing closure on FPGA, hardware bring-up, and software validation on the prototype. Use when porting an ASIC design to Xilinx or Intel FPGA for pre-silicon software development and hardware validation.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Prototyping. The repository describes itself as: Digital HDL Design Full-stack Agents. The licence is MIT.
When your agent uses it
Porting an ASIC design to Xilinx
Intel FPGA for pre-silicon software development and hardware validation
2 steps, taken from the first numbered list in SKILL.md.
1memory/fpga/knowledge.md — known failure patterns, successful tool flags, PDK/tool quirks.
2memory/fpga/run_state.md — current run identity (run_id, design_name, tool,
What it can do on your machine
Read from SKILL.md and the folder at commit 38736b1. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves these tools, so the agent can use them without asking each time:
Read
Write
Bash
From allowed-tools in the SKILL.md frontmatter.
Runs code
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Fpga Emulation loads about 3.4k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,596 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~76
When it runs· the whole SKILL.md, loaded when a task matches
~3.4k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check: notes
The automated check noted patterns worth knowing about, such as sudo or a known installer.
NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
allowed-tools: Read, Write, Bash
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/fpga-emulation/SKILL.md (or your agent's skills folder).
name
fpga-emulation
description
FPGA prototyping — ASIC-to-FPGA RTL adaptation, multi-FPGA partitioning, synthesis and timing closure on FPGA, hardware bring-up, and software validation on the prototype. Use when porting an ASIC design to Xilinx or Intel FPGA for pre-silicon software development and hardware validation.
allowed-tools
Read, Write, Bash
version
1.0.0
author
chuanseng-ng
license
MIT
Skill: FPGA Emulation & Prototyping
Invocation
If invoked by a user presenting an FPGA prototyping task: immediately spawn
the digital-chip-design-agents:fpga-orchestrator agent and pass the full user
request and any available context. Do not execute stages directly.
If invoked by the fpga-orchestrator mid-flow: do not spawn a new agent.
Treat this file as read-only — return the requested stage rules, sign-off
criteria, or loop-back guidance to the calling orchestrator.
Spawning the orchestrator from within an active orchestrator run causes recursive
delegation and must never happen.
Pre-run Context
Before executing or advising on any stage, read the following files if they exist:
memory/fpga/knowledge.md — known failure patterns, successful tool flags, PDK/tool quirks.
Incorporate its guidance into every stage decision. If absent, proceed without it.
memory/fpga/run_state.md — current run identity (run_id, design_name, tool,
last_stage). Use this to resume correctly after interruption. If absent, a new run
is starting; the orchestrator will create this file before the first stage.
This pre-run read applies whether this skill is loaded by a user or called by the
orchestrator mid-flow. It ensures the fix database is consulted before any diagnosis step.
Purpose
Port an ASIC design to an FPGA prototype platform for pre-silicon hardware/
software co-development. The FPGA prototype is not cycle-accurate but
provides functional and architectural validation months before silicon.
Supported EDA Tools
Open-Source
Yosys (yosys) — open-source synthesis for Xilinx/Intel/Lattice FPGA targets
nextpnr (nextpnr-xilinx, nextpnr-ice40, nextpnr-ecp5) — place-and-route for open-source flows
Match port configuration (single-port vs dual-port)
BRAM has 1-cycle read latency — verify RTL handles this
Memories > available BRAM: use external DDR via MIG/HBM controller
Use XPM_MEMORY (Xilinx) or equivalent portable macros
Clock Replacement Rules
Replace ASIC PLL with MMCM (Xilinx) or ALTPLL (Intel)
Scale all clocks to FPGA prototype frequency (typically 50–100 MHz from ≥ 1 GHz ASIC)
Maintain same ratio between clock domains
Use BUFG for all global clocks — never route clocks on data fabric
Adapted RTL Rules
Adapted RTL meets the rtl-design skill's lint_check ERROR rules (latches, multiple
drivers, undriven outputs). Re-lint after every edit, including edits made on a loop-back
from fpga_synthesis, bring_up or sw_validation
Match the conventions of the ASIC file being adapted; do not restyle RTL you are only
retargeting
initial blocks are permitted for FPGA memory and register initialisation, but only in
FPGA-only files or under an FPGA-specific `ifdef — the ASIC source must stay free of
them
Vendor primitives and macros (XPM_MEMORY, MMCM, BUFG, IOBUF) are unknown modules to an
open-source linter. Lint with unknown modules ignored and treat undriven-net findings on
their outputs as stub artefacts, not errors
QoR Metrics to Evaluate
No ASIC-specific primitives remain in adapted RTL
All memories mapped to BRAM or external DDR
Adapted RTL: lint clean, 0 errors
Functional sim: adapted RTL produces same outputs as ASIC RTL
Output Required
Adapted RTL file set
Substitution log (what was replaced and why)
BRAM and MMCM resource estimate
Stage: partitioning
Domain Rules
Target utilisation per FPGA: < design_state.constraints.fpga.lut_util_pct_max% LUT (default: 70%) — leave room for ILA debug cores
Minimise inter-FPGA signal count — each signal uses a physical connector pin
Never cut timing-critical paths at partition boundaries
Keep complete clock domains within a single FPGA wherever possible
Inter-FPGA: Aurora or GTH SERDES for high-speed; GPIO for slow control
After each stage completes (regardless of whether an orchestrator session is active),
write or overwrite one JSON record in memory/fpga/experiences.jsonl keyed by
run_id. This ensures data is persisted even if the flow is interrupted or called
without full orchestrator context. Use the experience record schema in
memory/README.md, with key_metrics fields lut_count, fmax_mhz, timing_met.
Use run_id = fpga_<YYYYMMDD>_<HHMMSS>_<6-char-random> where the 6-character suffix
is a lowercase hexadecimal string [0-9a-f] generated once at flow start using a secure
or pseudorandom RNG and reused unchanged on every stage update for this run.
signoff_achieved is a JSON boolean: set signoff_achieved: false until the final
sign-off stage completes.
Run state (write before first stage, update after each stage)
Write memory/fpga/run_state.md as the first action before launching any tool:
The 6-character random suffix must be lowercase hexadecimal [0-9a-f]. Update current_stage
when a stage starts, and set last_stage to the completed stage name only after successful
completion (then clear current_stage). This file lets wakeup-loop prompts and resumed
sessions identify the correct run. Create the file and parent directories if they do not exist.
Optional: claude-mem index
If mcp__plugin_ecc_memory__add_observations is available in this session, emit each
applied fix as an observation to entity chip-design-fpga-fixes after writing to
experiences.jsonl. Skip silently if the tool is absent — JSONL is the canonical record.
Fpga Emulation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Fpga Emulation compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Fpga Emulation this skillhdl-tools/digital-chip-design-agents
A skill your agent uses when the user is designing, prototyping, or rewriting a desktop app that must run on multiple OSes (macOS + Windows, optionally Linux) AND feel indistinguishable from a…
Builds a throwaway prototype at just the fidelity needed to settle a specific how-it-should-work-or-feel question, before committing to an approach other work will treat as fixed.
Search DigiKey for electronic components and download datasheets — primary source for prototype orders and the preferred API method for fetching datasheets.
FPGA prototyping — ASIC-to-FPGA RTL adaptation, multi-FPGA partitioning, synthesis and timing closure on FPGA, hardware bring-up, and software validation on the prototype. Fpga Emulation is an agent skill from hdl-tools/digital-chip-design-agents. FPGA prototyping — ASIC-to-FPGA RTL adaptation, multi-FPGA partitioning, synthesis and timing closure on FPGA, hardware bring-up, and software validation on the prototype.
When should I use Fpga Emulation?
Fpga Emulation fits situations like: porting an ASIC design to Xilinx; intel FPGA for pre-silicon software development and hardware validation.
How do I install Fpga Emulation in Claude Code?
Run `npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a claude-code`. Or copy the skill folder (plugins/fpga/skills/fpga-emulation in hdl-tools/digital-chip-design-agents) into .claude/skills/fpga-emulation in your project. Claude Code loads it when a task matches its description.
How do I install Fpga Emulation in Codex?
Run `npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a codex`. Or copy the skill folder (plugins/fpga/skills/fpga-emulation in hdl-tools/digital-chip-design-agents) into .agents/skills/fpga-emulation in your project. Codex loads it when a task matches its description.
Can I use Fpga Emulation in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hdl-tools/digital-chip-design-agents --skill fpga-emulation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fpga-emulation, .gemini/skills/fpga-emulation, .github/skills/fpga-emulation and .opencode/skills/fpga-emulation in your project.
What does Fpga Emulation need to run?
SKILL.md names no scripts, command-line tools or credentials: Fpga Emulation is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Bash.
Does Fpga Emulation access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Fpga Emulation safe to install?
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
What licence does Fpga Emulation use?
Fpga Emulation is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Fpga Emulation use?
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Fpga Emulation?
Skills that share tags, products or a category with Fpga Emulation: Native Feel Cross Platform Desktop (yetone/native-feel-skill, 1.9k stars), Compound Engineering Prototype (EveryInc/compound-engineering-plugin, 25k stars), Collaborating With Codex (GuDaStudio/collaborating-with-codex, 132 stars) and Digikey (aklofas/kicad-happy, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Fpga Emulation?
hdl-tools (a GitHub organization) maintains it in hdl-tools/digital-chip-design-agents, which has 213 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 3, 2026.