Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Midstall/claude-for-hardware --skill fpga-synthesis-fitgit clone --depth 1 https://github.com/Midstall/claude-for-hardwareWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/midstall/claude-for-hardware/fpga-synthesis-fit)<a href="https://agentmods.dev/skills/midstall/claude-for-hardware/fpga-synthesis-fit"><img src="https://agentmods.dev/badge/skills/midstall/claude-for-hardware/fpga-synthesis-fit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/midstall/claude-for-hardware/fpga-synthesis-fit"><img src="https://agentmods.dev/badge/skills/midstall/claude-for-hardware/fpga-synthesis-fit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00065 | $0.01969 |
| Opus 5 | $0.00032 | $0.00984 |
| Sonnet 5 | $0.00013 | $0.00394 |
| Haiku 4.5 | $0.00006 | $0.00197 |
Grade A, and why
fpga-synthesis-fit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
FPGA Synthesis and Fit
Overview
Getting RTL to fit and route on an FPGA is a measurement problem before it is an optimization problem. The tools report several different "area" numbers and most of them lie about what will actually fit. Optimizing against the wrong number burns hours and can make the real result worse.
Core principle: Judge fit and timing by the post-pack, post-place numbers (nextpnr TRELLIS_COMB and the critical-path report), never by the synthesis-stage estimate. Measure with data before you change RTL.
When to Use
- Synthesizing with yosys + nextpnr (ECP5/prjtrellis or a similar open flow)
- A design won't fit, or the router thrashes and never converges
- Measuring Fmax or per-module area
- Building a ROM/RAM and unsure whether it became block RAM or flops
- Generating a bring-up bitstream and picking its clock
The Metric Trap: Pre-Pack LUT4 != Post-Pack TRELLIS_COMB
yosys stat after synth_ecp5 reports LUT4, which is pre-pack. nextpnr reports TRELLIS_COMB, which is post-pack (LUT4 plus PFUMX, L6MUX21, and carry packed into slices). These differ, sometimes a lot.
A change that cuts LUT4 can be neutral or worse for TRELLIS_COMB. Replacing a barrel shifter with a mux tree is the classic example: barrel shifters pack densely into carry chains, mux trees spread into PFUMX/L6MUX. Always judge by the nextpnr Device utilisation: TRELLIS_COMB line. An 80% pre-pack can be a 91% post-pack that won't route.
Routing Congestion: Thresholds and Seeds
- The router thrashes above roughly 85%
TRELLIS_COMB. At 89 to 91% it can churn for an hour or two, sometimes never converging. Around 80% routes in minutes. - Seeds matter enormously on congested designs. The same netlist that sticks at tens of thousands of overused wires under one seed can converge cleanly to zero under another in half an hour. If a route thrashes, kill it and try other seeds before touching RTL. Watch the "overused" column trend toward zero; that is convergence.
- 100% BRAM utilization also congests routing (fixed EBR columns, no placement slack). Keep BRAM under about 90% too.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 74 lines · 65 tokens per session scan A b1857d661130
fpga-synthesis-fit is a skill published in the GitHub repository Midstall/claude-for-hardware (20 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 65 tokens to every session and 1,969 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
tia-doctor
Manual, read-only prerequisite probe for TIA Portal V21 and its modular Openness API, with optional Python TIA Scripting and TIA MCP checks.
routeros-mac-telnet
MAC-Telnet protocol (MikroTik Layer-2 terminal/exec over UDP 20561) wire format, session handshake, and MD5 + MTWEI (EC-SRP) authentication. Use when: implementing or debugging a MAC-Telnet client/server, reaching a RouterOS device by MAC address without IP, parsing MAC-Telnet packets, understanding the WinBox-style…
routeros-syntax-inspection
Inspecting and validating RouterOS command/script syntax against a live device via /console/inspect (highlight, completion, syntax, child) and :parse IL. Use when: validating RouterOS commands before execution, explaining or linting RouterOS scripts, building syntax-aware tooling (LSP servers, validators, agent…
routeros-sniffer
RouterOS packet capture and TZSP streaming for protocol debugging. Use when: capturing packets on RouterOS, setting up /tool/sniffer, streaming live traffic via TZSP, using firewall mangle action=sniff-tzsp, debugging network protocols on MikroTik, receiving TZSP with Wireshark or tshark, saving pcap files from…
8051-mcu-debug
Use when debugging 8051-compatible microcontrollers, 51 MCU firmware, STC download issues, Keil C51 projects, interrupts, timers, UART, or startup failures.
cortex-m-debug
Use when debugging Cortex-M microcontrollers, firmware bring-up, SWD/JTAG sessions, faults, startup code, or flashing failures.