VeriPilot: An LLM-Powered Verilog Debugging Framework
Давненько не было рубрики tl;dr. Попалась на глаза свежая (22 июня) статья по построеннию системы структурного дебагинга верилога поверх LLM агентов (да, каждый первый-второй пост будет про иишки, времена такие, сами понимаете).
В статье довольно симпатичные картинки и уже ради них стоит полистать. Прикрепленная - это весь флоу системы наглядно.
Тезис у авторов простой - все исследователи бросают агентов в end-to-end циклы дебага и починки RTL (итерируемся по ошибкам симулятора или тестбенча), а вот мы считаем, что процесс нахождения бага и починки нужно изолировать друг от друга, и более того сам дебагинг нужно сделать более структурированным и в некотором роде приближенным к человеческому. Идея такая:
▫️у нас есть потактовая исполняемая реф-модель с внутренними состояниями, которые можно хоть как-то сопоставить с DUT (довольно релистично, ага 🤡)
▫️мы собираем трассы с dut и модели на одних и тех же входных стимулах
▫️мы находим в каком месте разъезжается dut и модель по выходу
▫️преобразуем и dut и модель в Control-Data-Flow Graphs (CDFG)
▫️начинаем детерминировано трассировать их в обратном направлении, семантически следуя по примерно одинаковым местам в обоих "мирах" (за семантическую оценку отвечает отдельный агент)
▫️находим подозрительное место, где dut и модель разъезжаются
▫️составляем детальный структурированный промпт для агента-чинителя со всеми деталями по подозрительному региону, трассе, информации CDFG и т.д.
▫️агент-чинитель должен починить RTL сильно успешнее, чем наивный цикл просмотра ошибок компилятора и тестбенча
В результате получаем некоторый фреймворк, в котором есть и вполне себе императивные рельсы и преобразования и перемежение агентами, там где появляется нечеткость и семантика. Ну и выбиваем 91% (+17% против простой LLM) на CVDP-cid16 (относительно маленьких класс задач по дебагингу RTL из CVDP бенча).
Первая ложка дегтя здесь это то, что обязательно нужна модель с достаточно полезной внутренней наблюдаемостью. Для CVDP авторам фактически пришлось расширять каждый тест в бенчмарке своими моделями на питоне и трассами внутренних переменных.
И из этого получается вторая ложка дегтя. Судя по всему, golden_model.py файлы они клали в окружение только для VeriPilot прогонов, но не для "наивных" прогонов с LLM. Что нечестно, т.е. сложно становится отделить это их фреймворк дал буст или просто само наличие голден модели бустит и все остальные усложнения не нужны.
В целом, подход интересный, и игры с семанитическим матчингом, CDFG, AST у верилога+питона, и извлечением дополнительного слоя информации довольно занятны, но не стоит забывать про "горький урок" и что все эти усложнения и фреймворк-построения скорее вссего будут не нужны (может уже не нужны), т.к. агент их сам будет делать под капотом так или иначе. Тем более что в исследовании принимали участие лишь GPT-5 (2025), GPT-4o (2024) и GPT-3.5-Turbo (2023). Последняя это вообще что-то древнее из времен триллобитов и аммонитов.
P.s. кстати выбор моделей и общие тайминги дают понять как всё еще долго занимает проработка статьи. И на фоне того как быстро сменяются модели и растут их возможности выглядит конечно дико, но ожидаемо😷
#tldr #llm
@positiveslack
Давненько не было рубрики tl;dr. Попалась на глаза свежая (22 июня) статья по построеннию системы структурного дебагинга верилога поверх LLM агентов (да, каждый первый-второй пост будет про иишки, времена такие, сами понимаете).
В статье довольно симпатичные картинки и уже ради них стоит полистать. Прикрепленная - это весь флоу системы наглядно.
Тезис у авторов простой - все исследователи бросают агентов в end-to-end циклы дебага и починки RTL (итерируемся по ошибкам симулятора или тестбенча), а вот мы считаем, что процесс нахождения бага и починки нужно изолировать друг от друга, и более того сам дебагинг нужно сделать более структурированным и в некотором роде приближенным к человеческому. Идея такая:
▫️у нас есть потактовая исполняемая реф-модель с внутренними состояниями, которые можно хоть как-то сопоставить с DUT (довольно релистично, ага 🤡)
▫️мы собираем трассы с dut и модели на одних и тех же входных стимулах
▫️мы находим в каком месте разъезжается dut и модель по выходу
▫️преобразуем и dut и модель в Control-Data-Flow Graphs (CDFG)
▫️начинаем детерминировано трассировать их в обратном направлении, семантически следуя по примерно одинаковым местам в обоих "мирах" (за семантическую оценку отвечает отдельный агент)
▫️находим подозрительное место, где dut и модель разъезжаются
▫️составляем детальный структурированный промпт для агента-чинителя со всеми деталями по подозрительному региону, трассе, информации CDFG и т.д.
▫️агент-чинитель должен починить RTL сильно успешнее, чем наивный цикл просмотра ошибок компилятора и тестбенча
В результате получаем некоторый фреймворк, в котором есть и вполне себе императивные рельсы и преобразования и перемежение агентами, там где появляется нечеткость и семантика. Ну и выбиваем 91% (+17% против простой LLM) на CVDP-cid16 (относительно маленьких класс задач по дебагингу RTL из CVDP бенча).
Первая ложка дегтя здесь это то, что обязательно нужна модель с достаточно полезной внутренней наблюдаемостью. Для CVDP авторам фактически пришлось расширять каждый тест в бенчмарке своими моделями на питоне и трассами внутренних переменных.
И из этого получается вторая ложка дегтя. Судя по всему, golden_model.py файлы они клали в окружение только для VeriPilot прогонов, но не для "наивных" прогонов с LLM. Что нечестно, т.е. сложно становится отделить это их фреймворк дал буст или просто само наличие голден модели бустит и все остальные усложнения не нужны.
В целом, подход интересный, и игры с семанитическим матчингом, CDFG, AST у верилога+питона, и извлечением дополнительного слоя информации довольно занятны, но не стоит забывать про "горький урок" и что все эти усложнения и фреймворк-построения скорее вссего будут не нужны (может уже не нужны), т.к. агент их сам будет делать под капотом так или иначе. Тем более что в исследовании принимали участие лишь GPT-5 (2025), GPT-4o (2024) и GPT-3.5-Turbo (2023). Последняя это вообще что-то древнее из времен триллобитов и аммонитов.
P.s. кстати выбор моделей и общие тайминги дают понять как всё еще долго занимает проработка статьи. И на фоне того как быстро сменяются модели и растут их возможности выглядит конечно дико, но ожидаемо😷
#tldr #llm
@positiveslack