Журнал · Rit.work

RTL-Interact объединяет генерацию, проверку и исправление RTL в одной модели

RTL-Interact показывает, как обучить одну модель писать RTL, выбирать проверки EDA и исправлять схему по диагностике без отдельного агента-ремонтника.

Rit.work
Студия разработки
2 ноября 2026 г.3 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

Одну RTL-модель научили писать описание цифровой схемы, самостоятельно составлять проверки для EDA-инструментов, читать диагностику и исправлять код. В нерецензированном препринте все числа получили сами авторы: RTL-Interact-32B решила с первой попытки 48,7% задач CVDP и обошла модель-учителя DeepSeek-V3.2 на 2 процентных пункта. Для RTL-агента это меняет базовую схему: генератор и модуль исправления можно обучать как одну модель, а не связывать отдельным сценарием.

Модель учат на полном цикле работы с EDA

RTL описывает цифровую схему на уровне передач между регистрами. Рабочий результат должен не только компилироваться, но и правильно вести себя при моделировании, синтезироваться и сохранять заданные характеристики схемы. Поэтому одного правдоподобного фрагмента Verilog недостаточно.

RTL-Interact получает спецификацию, пишет первый вариант RTL и при необходимости вызывает средства автоматизации проектирования электроники, EDA. Среда предоставляет моделирование и компиляцию через Icarus Verilog, проверку правил через Verilator, синтез через Yosys и проверку эквивалентности с эталонной схемой. Модель видит ответ инструмента, меняет реализацию и решает, нужна ли ещё одна проверка.

Обучающие примеры строили из пар «спецификация — RTL» в CodeV-R1-dataset. DeepSeek-V3.2 выступала учителем: она создавала промежуточные реализации, запросы к инструментам и исправления после диагностики. В набор вошли 13 480 полных траекторий, где сохранён не только итоговый код, но и путь от первой версии до прошедшего проверку результата.

Траектории охватывают три вида работы. В генерации модель создаёт модуль по спецификации и пишет испытательный стенд. В дополнении восстанавливает скрытую логику существующего модуля. В оптимизации устраняет предупреждения или улучшает показатели после синтеза, не меняя поведение схемы.

Критерий приёмки зависит от задачи. Сгенерированный модуль должен пройти испытательный стенд и синтез. Дополненный или оптимизированный код сравнивают с исходным модулем отдельной проверкой эквивалентности. Скрытые тесты итоговой оценки модель не получает, поэтому собственная удачная проверка ещё не гарантирует зачёт.

Награда учит проверять короче, но не запрещает исправления

Обучение проходит последовательно. Сначала модель осваивает синтаксис RTL, аппаратную семантику и переход от спецификации к реализации на примерах без инструментов. Затем её дообучают на траекториях с вызовами EDA. При одинаковом бюджете такой порядок дал 29,5% успешно решённых задач с первой попытки против 28,5% при обучении только на инструментальных траекториях.

После обучения на примерах применяется PAPO — вариант обучения с подкреплением, который учитывает способ проверки. Неверный итоговый RTL получает нулевую награду независимо от убедительности рассуждений. Для правильного результата награда выше, если модель сразу выбрала подходящую проверку и не сделала лишних вызовов; успешное исправление после диагностики тоже получает положительную награду.

Вторая часть PAPO удерживает заданную долю разных задач в каждом обновлении. Без этого более частые задачи генерации могут вытеснить оптимизацию, где нужны синтез и проверка эквивалентности. На RTL-Interact-8B этап обучения с подкреплением прибавил 5,4 процентного пункта к доле решений, прошедших с первой попытки.

Рост точности не потребовал более длинной цепочки внешних действий. Среднее число вызовов инструментов сократилось с 4,7 до 1,7 на задачу. Модель стала дольше обдумывать действие внутри ответа, но реже запускала EDA повторно, что уменьшает нагрузку на среду исполнения.

Архитектуру агента можно упростить, контур проверки — нет

Работа даёт основание проверить одну специализированную модель вместо связки из генератора, отдельного ремонтника и управляющего агента. Для пилота понадобится единый формат вызова EDA, журнал полной траектории и независимый финальный проверяющий контур. Последний нельзя заменять испытательным стендом, который написала сама модель.

Обучающие данные тоже придётся собирать как процессы, а не как пары запроса и правильного кода. Полезный пример включает неудачную реализацию, точный запрос к инструменту, фактическую диагностику и исправление. Отдельно нужно удерживать баланс генерации, дополнения и оптимизации, иначе модель научится выбирать наиболее частый тип действия.

Проверяли модели двух размеров, RTL-Interact-8B и RTL-Interact-32B, на CVDP, VerilogEval v2 и RTLLM v2. Это модульные задачи на генерацию, дополнение и оптимизацию RTL; сравнение охватывает специализированные модели и DeepSeek-V3.2 с доступом к инструментам. Работа не устанавливает, как тот же подход поведёт себя на уровне репозитория, где связаны несколько модулей, сборка и системная проверка.

Поэтому текущий план стоит менять там, где команда уже строит агентный цикл вокруг отдельных RTL-модулей. Вместо усложнения координации можно вложиться в обучение одной модели на реальных ответах EDA. Для разработки целой системы результат пока поддерживает экспериментальную ветку, а не замену существующего процесса.

Источники

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

Собираем мобильные приложения и помогаем командам получать от AI реальную пользу. Основатель и команда, работаем удалённо — с клиентами в России и за рубежом.

← Ко всем материалам
Понравилось? Обсудим вашу задачу