Gowin
БесплатноНе проверенBETA — MCP server that turns Gowin EDA build reports into structured data: resource usage, fMax per clock, timing violations, and build-to-build comparison. Sip
Описание
BETA — MCP server that turns Gowin EDA build reports into structured data: resource usage, fMax per clock, timing violations, and build-to-build comparison. Sipeed Tang / GW1N / GW2A / GW5A.
README
Beta. Working and in daily use, but verified against a narrow slice of Gowin output so far — see Beta status before trusting a number that matters. Bug reports with a sample report attached are very welcome.
An MCP server that turns Gowin EDA build reports into structured data.
Gowin EDA writes everything you need after a place & route — resource usage, achieved frequency per clock, the exact register-to-register path that failed setup — and then buries it in a multi-megabyte HTML file nobody opens. This server reads those artifacts and hands back the numbers.
Built for Sipeed Tang boards (GW1N / GW2A / GW5A) but it only cares about the report format, so any Gowin EDA project works.
What it answers
- Did this build close timing, and if not, which path failed and by how much?
- What is the achieved fMax on each clock domain versus its constraint?
- How much of the device am I using — CLS, LUT, ALU, registers, BSRAM, DSP, I/O?
- What did my last change cost me? (
gowin_comparediffs two builds.)
Install
git clone https://github.com/Papipapito/gowin-mcp.git
cd gowin-mcp
npm install
npm run build
Then register it. For Claude Desktop, in claude_desktop_config.json:
{
"mcpServers": {
"gowin": {
"command": "node",
"args": ["C:\\path\\to\\gowin-mcp\\dist\\index.js"]
}
}
}
For Claude Code:
claude mcp add gowin -- node /path/to/gowin-mcp/dist/index.js
Tools
| Tool | Purpose |
|---|---|
gowin_summary |
Device, resources, fMax and violations in one call. Start here. |
gowin_resources |
Full resource tables, including I/O banks and clock resources. |
gowin_timing |
fMax per clock, total negative slack, worst setup/hold paths. |
gowin_check |
Pass/fail gate — violations only. |
gowin_compare |
Diff two builds: resource deltas, fMax deltas, violations introduced/fixed. |
gowin_list_builds |
Find every Gowin build under a directory tree. |
Every tool takes format: "json" if you want the raw structures instead of text.
Paths are forgiving: pass the project directory, its impl/ directory, or the
.rpt.txt itself.
Example
Build: project (GW5AT-60, GW5AT-LV60PG484AC1/I0)
Tool: V1.9.11.03 Education
Built: Thu Jul 16 20:58:03 2026 PnR 0h 3m 29s peak 1848MB
Resources
Logic: 28034/59904 (47%)
LUT 21883, ALU 3325, ROM16 0
CLS: 19618/29952 (66%)
Register: 15014/60780 (25%)
BSRAM: 73/118 (62%)
DSP: 10.5/118 (9%)
I/O Port: 141/297 (48%)
Timing: 3 VIOLATIONS
setup clk_54m -1.826 ns 1 endpoint failing setup — worst path -1.826 ns:
cpu1/u0/ISet_1_s87/Q -> mem1/ram_busy_s0/CE
setup clk_hdmi -0.378 ns ...
hold clk_27m -0.028 ns ...
fMax per clock
clk_54m: 33.548 MHz vs 53.996 MHz constraint (-20.448) [FAIL]
clk_hdmi: 72.221 MHz vs 74.25 MHz constraint (-2.029) [FAIL]
clk_108m: 159.744 MHz vs 107.991 MHz constraint (+51.753) [ok]
...
And a comparison between two builds of the same design:
Resource changes
LUT,ALU,ROM16 13361 -> 13450 +89 (+0.67%)
BSRAM 33 -> 44 +11 (+33.33%)
CLS 8912 -> 8901 -11 (-0.12%)
fMax changes
clock_54m 50.404 -> 45.284 MHz -5.12
clock_audio 411.534 -> 437.8 MHz +26.266
Violations: 0 introduced, 0 fixed, 1 persisting
still setup clock_54m -1.615ns
VERDICT: no regression.
What it reads
| File | Used for |
|---|---|
impl/pnr/<name>.rpt.txt |
Device, tool version, resource tables, PnR runtime |
impl/pnr/<name>_tr_content.html |
fMax, total negative slack, setup/hold path tables |
<name>.tr.html is only a ~350-byte frameset wrapper — the data is in the
_tr_content sibling.
Tables are parsed structurally (tr/td), not by flattening the HTML, so a column
layout change between tool versions surfaces as a missing field rather than a silently
misaligned number.
Scope
This server reads results. It does not run builds.
A GW5A place & route takes minutes, which does not fit an MCP request, and driving
long builds through a tool call hides their output. Keep building with gw_sh,
make, or the Gowin GUI as you already do — then point this at the results.
Beta status
What has actually been exercised:
| Verified | |
|---|---|
| Tool versions | V1.9.11.03 Education, V1.9.9 Beta-4 Education |
| Devices | GW5AT-60 (Tang Console 60K), GW2AR-18 (Tang Nano 20K) |
| Host | Windows 11 |
Known gaps, in rough order of how likely they are to bite you:
- Only the proprietary Gowin EDA flow. Output from the open-source chain
(yosys / nextpnr-himbaechel / apicula) is a completely different format and is not
parsed at all. If you build with
nextpnr, this server has nothing to read. - GW1N is untested. It should work — the report layout looks family-independent — but nobody has run it.
- Report headers have already been seen to drift between releases (
PnR VersionbecameTool Versionaround 1.9.11). Other fields may drift the same way on versions not listed above. - Only tested against English-language reports.
- Power and pin reports (
*.power.html,*.pin.html) are written by the tool but not read yet.
Failures should be visible rather than silent: fields that do not parse come back
absent instead of wrong. If you get a missing or implausible number, please open an
issue with the offending .rpt.txt or _tr_content.html attached.
Notes
- Setup and hold violations are taken from the Total Negative Slack summary rather
than the path tables, because the path tables are capped by
-max_pathsat report time and would under-report a design with many failures. - An fMax failure is only reported separately when no setup violation already covers that clock — otherwise it is the same defect counted twice.
License
MIT
Установить Gowin в Claude Desktop, Claude Code, Cursor
unyly install gowinСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add gowin -- npx -y github:Papipapito/gowin-mcpПошаговые гайды: как установить Gowin
FAQ
Gowin MCP бесплатный?
Да, Gowin MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Gowin?
Нет, Gowin работает без API-ключей и переменных окружения.
Gowin — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Gowin в Claude Desktop, Claude Code или Cursor?
Открой Gowin на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
автор: duxiaohuiSupabase
Database, auth and storage
автор: SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Gowin with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
