# neosyn-fpga-mcp

MCP-сервер для разработки FPGA на C⏚: проверяет код компилятором, запускает симуляцию и генерирует Verilog. Помогает находить ошибки до передачи RTL дальше по проекту.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 1
- Автор: Neosyn-Logic
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Neosyn-Logic/cg-agent-kit
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/mcp/neosyn-fpga-mcp

## Что делает

neosyn-fpga-mcp подключает инструменты компиляции и проверки C⏚ к ИИ-агенту через MCP. Агент может проверять исходный код, запускать симуляцию и получать структурированные диагностики для исправления ошибок. Инструмент `cg_generate_verilog` формирует файлы Verilog, а `cg_synth` проверяет синтез через Yosys и помогает обнаружить схлопывание логики в константы или вывод защёлок.

Сервер дополняет файл `cg_context.md`, который даёт модели сведения о типах, портах, структурах и особенностях C⏚. Для нового проекта можно начать с `cg_scaffold`: он создаёт проверяемый каркас с местами для реализации логики. Результат стоит проверять поэтапно: сначала компиляция, затем симуляция и синтез.

Для работы нужны Python 3.10+ и Java 17 или новее в `PATH`, а также JAR компилятора C⏚, путь к которому задаётся через `CG_JAR`. Для `cg_synth` нужен Yosys в `PATH`; для симулятора Icarus Verilog требуется `iverilog`. Быстрый байткодный симулятор доступен в коммерческой поставке, а для неё также нужен лицензионный файл через `NEOSYN_CG_LICENSE` или стандартный путь расширения.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `CG_JAR` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env CG_JAR=<CG_JAR> --transport stdio neosyn-fpga-mcp -- uvx neosyn-fpga-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from neosyn-fpga-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add neosyn-fpga-mcp --env CG_JAR=<CG_JAR> -- uvx neosyn-fpga-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from neosyn-fpga-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "neosyn-fpga-mcp": {
            "command": "uvx",
            "args": [
                "neosyn-fpga-mcp"
            ],
            "env": {
                "CG_JAR": "<CG_JAR>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from neosyn-fpga-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "neosyn-fpga-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "neosyn-fpga-mcp"
            ],
            "env": {
                "CG_JAR": "<CG_JAR>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from neosyn-fpga-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e CG_JAR=<CG_JAR> neosyn-fpga-mcp uvx neosyn-fpga-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from neosyn-fpga-mcp <команда>

## Когда брать
- Проверить исходный код C⏚ и разобрать диагностики компилятора
- Смоделировать поведение аппаратного блока и проверить выходные значения
- Сгенерировать файлы Verilog для дальнейшей работы с RTL
- Найти схлопывание логики и защёлки при синтезе через Yosys
- Создать проверяемый каркас задачи, конечного автомата или потока

## Примеры запросов агенту
- Проверь этот код C⏚ через `cg_check` и исправь ошибки по диагностике.
- Запусти `cg_simulate` для этого аппаратного блока и проверь значения выходов на каждом цикле.
- Сгенерируй Verilog через `cg_generate_verilog`, затем проверь результат синтеза с помощью `cg_synth`.

## Похожие
- [Front-End Checklist](https://affpapa.org/nevibecode/mcp/front-end-checklist.md) — MCP-сервер · ★ 74569
- [Keploy](https://affpapa.org/nevibecode/mcp/keploy.md) — MCP-сервер · ★ 18779
- [SeleniumBase MCP](https://affpapa.org/nevibecode/mcp/seleniumbase-mcp.md) — MCP-сервер · ★ 13181
- [mobile-mcp](https://affpapa.org/nevibecode/mcp/mobile-mcp.md) — MCP-сервер · ★ 10025
- [e2e](https://affpapa.org/nevibecode/mcp/e2e.md) — MCP-сервер · ★ 11962
- [mockserver](https://affpapa.org/nevibecode/mcp/mockserver.md) — MCP-сервер · ★ 4999

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
