SoC Agent Skills
Три скилла с MCP для проектирования SoC: верхний модуль Verilog, книги CRG и диаграммы WaveDrom.
- 57 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Скиллы запускают локальные MCP-серверы и скрипты, которые читают исходники Verilog и пишут сгенерированные файлы.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/soc-agent-skillsОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Скиллы запускают локальные MCP-серверы и скрипты, которые читают исходники Verilog и пишут сгенерированные файлы.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Репозиторий объединяет три скилла для проектирования систем на кристалле, и у каждого есть свой MCP-сервер по stdio. `soc-integrate` извлекает порты подмодулей в стиле ANSI, собирает из них верхний модуль на Verilog, сохраняет снимок интерфейсов и обновляет модуль командой `soc_update` только когда порты подмодулей менялись. `crg-design-gen` превращает таблицу требований в рабочие книги CRG и деревья тактовых сигналов и сбросов. `wavedrom-gen` переводит описание на естественном языке в официальный WaveDrom JSON5 и выдает SVG, PNG или HTML. Его можно поставить и как плагин Cursor. Каждый каталог самостоятелен: `SKILL.md` служит контрактом агента, рядом лежат MCP-сервер, скрипты и тесты. Общей системы сборки у набора нет.
Для кого. Инженерам по проектированию цифровых схем и SoC, которые хотят отдать агенту рутину: сборку верхнего модуля, схемы тактирования и диаграммы сигналов.
Подходит, если
- Нужно собрать или обновить верхний модуль чипа по портам подмодулей.
- Таблица требований к тактированию должна стать книгой CRG с деревьями тактов и сбросов.
- Описание протокола словами надо превратить в временную диаграмму WaveDrom.
- Порты подмодулей не менялись, и достаточно снимка и CSV без пересборки.
Не подходит, если
- Нужна полная система сборки SoC: `soc-build` лежит в другом месте.
- Вы работаете не с Verilog и не с WaveDrom.
- Нельзя запускать локальные MCP-серверы на Python и Node.js.
Пример запроса к агенту
Собери верхний модуль чипа из этих подмодулей и сохрани снимок интерфейсов.Ограничения
Набор не заменяет систему сборки SoC: авторы прямо оговаривают, что `soc-build` находится в другом месте. Для `wavedrom-gen` нужны Node.js 20 и новее, а для PNG выполните `npm ci --omit=dev`, потому что `node_modules` в репозиторий не входит и `@resvg/resvg-js` ставит собственный бинарный файл для платформы. Скиллы с MCP работают по stdio. Версию на Cursor копируют в `~/.cursor/plugins/local`, затем перезагружают окно. В `mcp.json` стоит переменная `${CURSOR_PLUGIN_ROOT}`: для клиента по стандарту замените ее на `${PLUGIN_ROOT}`. Результаты генерации проверяйте инструментами синтеза.
Как отключить. Удалите скилл командой `npx skills remove` или его каталог, а для Cursor удалите папку плагина в `~/.cursor/plugins/local`.
Частые вопросы
Как поставить один скилл?
Выполните `npx skills add siliconpeasant/soc_agent_skill --skill soc-integrate -g`. Без `-g` установка пойдет в проект, флаг `-a` выбирает клиента.
Что входит в набор?
Три скилла: `soc-integrate`, `crg-design-gen` и `wavedrom-gen`. У каждого свой MCP-сервер.
Когда нужен soc_update?
Только когда порты перечисленных подмодулей изменились. Если порты прежние, хватает снимка и CSV, перегенерировать не нужно.
Что выдает wavedrom-gen?
Официальный WaveDrom JSON5 и изображения SVG, PNG или страницу HTML.
Как поставить в Cursor?
Скопируйте каталог `wavedrom-gen` в `~/.cursor/plugins/local/wavedrom-gen`, выполните `npm ci --omit=dev` в его `skills/wavedrom-gen`, затем перезагрузите окно.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
Скиллы24 скилла для прошивок микроконтроллеров: сборка, прошивка, отладка GDB, UART, Modbus, CAN, логические анализаторы и статанализ
Agent Skills от Tech Leads Club
Agent Skills
Проверяемый реестр скиллов с CLI для установки в два десятка агентов и MCP-сервером для поиска скиллов на лету
Скилл для проектирования на Verilog-2001: пишет RTL по ТЗ, разбирает и чинит готовые модули с отчетом о проверках
Больше двадцати скиллов для кодовых агентов: MCP и хуки, режим плана, протокол багфикса, промпты и защитный хук для bash
Общая инфраструктура скиллов и инструментов для доработки 1С, подключаемая как git submodule и раскладываемая по нескольким агентам разом
Скилл mspm0-ccs ведет плату TI MSPM0 от правки .syscfg до сборки, прошивки и отладки на реальном железе, с примерами и скриптами.
Коротко о README
В таблице README у каждого скилла указаны назначение, наличие MCP по stdio и ссылка на `SKILL.md`. Отдельного README у скиллов нет, а контракт агента целиком в `SKILL.md`.
Бейдж для README
Исходный SKILL.md
---
name: soc-integrate
description: >
Extract RTL ports, generate instances/wrappers/top modules, and track
interface changes through snapshots and integration configs. Use for
generated SoC top-level integration and port-change maintenance.
soc_update only after listed submodule ports change; do not regenerate a
top just to close a delivery stage.
---
# SoC Integrate (`soc-integrate`)
Generate and maintain a **chip/subsystem top** from Verilog submodule files.
Do not hand-edit generated instances. Keep connection intent in a port-map JSON.
Prefer the bundled MCP server. CLI is available for local use and tests.
## MCP tools
| Tool | Purpose |
|---|---|
| `soc_extract` | Parse ANSI module ports |
| `soc_instantiate` | Emit `.port(signal)` instance |
| `soc_wrap` | Pass-through wrapper |
| `soc_csv` | Port CSV |
| `soc_snapshot` / `soc_diff` | Port snapshot and delta |
| `soc_integrate` | Stitch modules into a generated top + `.integrate.json` |
| `soc_extract_map` | Recover mappings from an existing top |
| `soc_update` | Refresh that top after **listed submodule ports change** |
| `soc_remove` | Drop a module from the config and refresh |
Register stdio:
```json
{
"mcpServers": {
"soc-integrate": {
"command": "python3",
"args": ["/path/to/soc-integrate/mcp_server.py"]
}