Solobit CheckMate
Автор: Бабаев Рашид, Senior Quantitative Software Engineer, Admin "DocsTech & Solobit"
Solobit CheckMate - это не просто "еще один плагин для подсветки синтаксиса". Это полноценная среда для прокачки скиллов в цифровом дизайне, которая закрывает пропасть между Техническим Заданием (которое в реальности часто пишут на салфетке) и реальным синтезируемым кодом, не разваливающимся на этапе Place & Route.
На рынке сейчас есть либо "песочницы" типа HDLBits с примитивными задачками, либо тяжеловесные Vivado/Quartus, которые требуют гигабайты памяти и часы на запуск ради того, чтобы просто мигнуть светодиодом.
Мы предлагаем производственные задачи: от последовательного сумматора и интерфейса SPI до блока управления памятью (MMU/TLB), корректора ошибок (ECC) и схем восстановления тактовой частоты (CDR). Путь от чтения ТЗ до анализа синтезированной RTL-схемы и дебага осциллограммы в CheckMate занимает секунды. Это адский буст для обучения и прототипирования!
Ключевые возможности
1. Yosys RTC RTL: Ваша схема обновляется быстрее, чем вы сохраняете файл
Мы реализовали Real-Time Compilation (RTC) RTL Viewer. Это стримовая передача вашего кода прямо в ядро Yosys.
- WYSIWYG дляHardware Design: Вы пишете код - в соседней вкладке (открывается одним кликом из панели Functions) автоматически строится синтезированная схема. Изменили атрибут или добавили FSM? Схема пересоберется за секунду!
- Иерархия: Смотрите не только Top-Level Entity. Кликайте на подмодули, чтобы раскрыть содержимое. Хотите понять, как выглядит ваш параметризированный round-robin арбитр на уровне ячеек? Легко.
- Экспорт: Выгрузка схемы в PNG или SVG для документации. Никаких кривых скриншотов.
Рисунок 1. Схема экземпляра модуля data_analyzer
Примечание: Кастомные скрипты Yosys для тонкой настройки маппинга пока убраны для чистоты первого релиза, но уже в бэклоге на следующий патч.
2. 100+ Задач с "Взрослым" ТЗ
Фишка не в количестве, а в подаче спецификации. В CheckMate каждая задача имеет ТЗ, которое не стыдно принести на Design Review с заказчиком.
Структура спецификации каждой задачи:
- Общая информация: Конкретное инженерное имя (
eth_dcp_client, а не "задача №42") и назначение в реальном контексте.
- Функциональное описание: Принцип работы, блок-диаграммы, сценарии работы (Инициализация, Нормальный режим, Обработка ошибок, Сброс).
- Интерфейс (Порты): Дотошное описание: направление, разрядность, тип, активный уровень, тактовый домен.
- Технические требования: Целевая частота, тип сброса, Latency, пропускная способность, обработка ошибок.
- Внешние протоколы: Ссылки на стандарты (IEEE 802.3, AMBA AXI).
- Регистровая карта (Register Map): Полноценная таблица регистров (Offset, Access, Reset value) для задач с управляющим интерфейсом.
- Ограничения: Требования к синтезируемости, целевая технология, примерное потребление ресурсов (LUTs, BRAM, DSP).
Рисунок 2. Фрагмент ТЗ средней задачи по SystemVerilog
3. Верификация для взрослых: Cocotb, Verilator и расчлененный дамп
Забудьте про ручной просмотр осциллограмм. Верификационное окружение в CheckMate - это мощная система на базе Cocotb + Verilator.
- Градация сложности: От простых constrained-random тестов (Verilog) до полноценных стресс-тестов с динамическим построением тактовой сетки и рандомизацией пауз valid/ready (SystemVerilog). Один файл тестов - это 1000-2000 строк чистого Cocotb и более 1000 проверок за запуск.
- Прозрачные результаты:
dump.vcd - дамп вашего кода.
example_task.vcd - эталонный дамп идеального дизайна.
code_admin.txt - референсный дизайн от автора (не для списывания, а для обучения!).
report.json - машинно-читаемый отчет о падениях.
std.txt - ПОЛНЫЙ лог действий на русском языке с временными метками. Ошибки подсвечены.
- Интеграция GTKWave: Кликните на
.vcd файл в панели Verification, и осциллограммы откроются в GTKWave. Никаких внешних путей и настройки --dump.
Рисунок 3 и 4. Процесс верификации и анализ временных диаграмм
4. Удобная Навигация
Левая боковая панель минимизирует движения мышью:
- Functions: Быстрый доступ к ТЗ, RTL-схеме, Верификации и выбору задач.
- File Explorer & Outline: Прямой доступ к исходникам и навигация по объявлениям модулей/классов.
- Module Hierarchy: Дерево инстансов для понимания структуры сложных SoC-подобных дизайнов.
Roadmap (Что дальше)
В следующих обновлениях мы планируем добавить:
- [ ] Поддержку функций вне контекста учебных проектов (workaround: скопируйте папки с точечной нотацией в директорию вашего проекта).
- [ ] Функциональную и низкоуровневую визуализацию Конечных Автоматов (FSM).
- [ ] Файл команд для Yosys RTC RTL (Expert Mode).
- [ ] CDC-анализ (Clock Domain Crossing) и RDC-анализ (Reset Domain Crossing).
- [ ] GUI для автоматического создания моделей Формальной Верификации.
- [ ] GUI для автогенерации кода верификации по методологии UVM (SV) и Cocotb.
Обратная связь
Я приложил много усилий на это расширение, чтобы работа FPGA-инженеров перестала быть борьбой с инструментами и стала чистой инженерией. Скачивайте, тестируйте и обязательно дайте обратную связь - нам это критически важно!
Связь с автором и сообществом: Telegram "DocsTech & Solobit"
Лицензия
Copyright (c) 2026 Rashid Babaev / Solobit. All rights reserved.
Данное программное обеспечение распространяется по проприетарной коммерческой лицензии.
Использование, копирование, модификация и распространение исходного кода строго запрещены.
Расширение содержит как бесплатные, так и платные (Premium) функции. Подробности в файле LICENSE.md.