Хорошее замечание и ещё один аргумент в срачах спорах про сбросы. Получается (без учёта других аргументов), что тотальный сброс можно делать любым - синхронным или асинхронным, а частичный (только control path, например) лучше синхронным, чтобы в случае чего синтезатор смог сымитировать его на логике.
Telegram
Сергей Кривченко in icDesignCommunity
Нет, я именно про корректно написанный код) Приведу тогда пример:
Сигналы синхронного "сброса" и "загрузки" общие для целого LAB-а (у Cyclone IV в 1 LAB-е содержится 16 LE). Допустим, есть сигнал 'valid' и шина данных 8 битная. Если мы заведем синхронный…
Сигналы синхронного "сброса" и "загрузки" общие для целого LAB-а (у Cyclone IV в 1 LAB-е содержится 16 LE). Допустим, есть сигнал 'valid' и шина данных 8 битная. Если мы заведем синхронный…
👍3
30 ноября, заключительная FPGA-Systems совместно с YADRO, онлайн.
Встречаемся в последнюю субботу ноября на трансляции — регистрируйтесь, чтобы получить ссылку на стрим на одной из популярных платформ (Youtube, Rutube, VK).
В программе:
• Запуск AMDGPU и работа с HDMI на ПЛИСе.
• Опыт применения Chisel/Scala для проектирования сложных систем.
• Чем прототипирование отличается от разработки на ПЛИС.
• Обзор обновления линейки BMTI.
• Индустриальные подходы к верификации RISC-V ядер, доступные каждому.
• Советы по применению Extended Useful Skew и не только!
Участие бесплатное, регистрация обязательна.
До встречи!
Встречаемся в последнюю субботу ноября на трансляции — регистрируйтесь, чтобы получить ссылку на стрим на одной из популярных платформ (Youtube, Rutube, VK).
В программе:
• Запуск AMDGPU и работа с HDMI на ПЛИСе.
• Опыт применения Chisel/Scala для проектирования сложных систем.
• Чем прототипирование отличается от разработки на ПЛИС.
• Обзор обновления линейки BMTI.
• Индустриальные подходы к верификации RISC-V ядер, доступные каждому.
• Советы по применению Extended Useful Skew и не только!
Участие бесплатное, регистрация обязательна.
До встречи!
👍3🔥2❤1
Если вы не сможете прийти, не успели зарегистрироваться или встретите субботу не в Москве, подключайтесь к трансляции заключительной в этом году FPGA-Systems на Youtube, Rutube или VK.
В программе:
11:10 - Введение в проектирование RTL цифровых систем средствами Chisel/Scala
11:50 - Генерация преднамеренных ошибок в UVM-тесте
12:30 - Проектирование интегральной схемотехники в российских САПР
14:00 - Как мы AMD GPU на ПЛИС с RISC-V Linux запускали
14:40 - Open Source Step-and-Compare: делаем индустриальный подход к верификации RISC-V доступным каждому
15:20 - Увеличиваем производительность, искажая время: Extended Useful Skew
16:20 - Работаем с HDMI на ПЛИС
17:00 - Что нового у BMTI? Смотрим на обновление линейки коммунистических ПЛИС
Пишите вопросы докладчикам - если не успеем задать их сразу после доклада, выступающих попросим зайти в комментарии в трансляциях и ответить вам там.
p.s. Записи автоматически останутся доступны по тем же ссылкам, что и трансляции. Нарезка отдельных докладов появится на тех же каналах в течение 2 недель после мероприятия.
p.p.s. Слайды с мероприятия появятся в течение недели после митапа на его сайте.
В программе:
11:10 - Введение в проектирование RTL цифровых систем средствами Chisel/Scala
11:50 - Генерация преднамеренных ошибок в UVM-тесте
12:30 - Проектирование интегральной схемотехники в российских САПР
14:00 - Как мы AMD GPU на ПЛИС с RISC-V Linux запускали
14:40 - Open Source Step-and-Compare: делаем индустриальный подход к верификации RISC-V доступным каждому
15:20 - Увеличиваем производительность, искажая время: Extended Useful Skew
16:20 - Работаем с HDMI на ПЛИС
17:00 - Что нового у BMTI? Смотрим на обновление линейки коммунистических ПЛИС
Пишите вопросы докладчикам - если не успеем задать их сразу после доклада, выступающих попросим зайти в комментарии в трансляциях и ответить вам там.
p.s. Записи автоматически останутся доступны по тем же ссылкам, что и трансляции. Нарезка отдельных докладов появится на тех же каналах в течение 2 недель после мероприятия.
p.p.s. Слайды с мероприятия появятся в течение недели после митапа на его сайте.
YouTube
FPGA-Systems: индустриальный подход к верификации, производительности, Scala, UVM-тесты, BMTI и т.д.
30 ноября в Москве и онлайн состоялась вторая в 2024 осенняя встреча сообщества FPGA-Systems. Мероприятие прошло при поддержке YADRO — ведущего российского разработчика оборудования для ЦОД и телеком-операторов. Тайминги:
00:00 — Можно проматывать
17:20…
00:00 — Можно проматывать
17:20…
Немного поигравшись с Veryl пишу отзыв. Если кратко: потенциал есть, но пока не готов.
Не буду лить воду, пойду по фактам. Плюсы языка:
➡️ Полярность сброса и клока можно выбрать при сборке. Очень полезная фича, но есть некоторые проблемы с передачей этих знаний в подключаемые модули на верилоге. Есть автоматическая инверсия сброса, если в вериложном модуле сброс не той полярности. Но пока нет инверсии клока и никак не передать информацию о типе сброса - синхронный он или асинхронный.
➡️ Фигурные скобки в качестве операторных скобок конечно выглядят гораздо приятней многословных
➡️ Нет разделения на блокирующее и неблокирующее присваивание. Язык предназначен для написания только синтезируемого кода, по этому синхронные присваивания - неблокирующие, асинхронные - блокирующие.
➡️
➡️ Дженерики! Наконец-то шаг в сторону метапрограммирования. Шаг скромный, но в верилоге этого очень не хватает.
➡️ Есть поддержка аннотации CDC. Если вдруг вы небезопасно передаёте данные из домена в домен, транслятор даст вам по рукам.
➡️ Какая-никакая стандартная библиотека с FIFO и некоторыми полезными модулями (кое кто из чата FPGA Systemc был бы очень рад).
Теперь минусы:
➡️ Нет приведения ширины. Есть приведение к типу, и как бы можно объявить новый тип с нужной шириной и к нему приводить. Но это лишняя писанина, и результирующий верилог не поддерживается парсером Yosys'а. Такая вот шляпа.
➡️ В конструкции вида
➡️ Нельзя объявить несколько переменных одного типа с одной декларации. Для каждой переменной надо писать
➡️ Невозможно задать начальное значение регистру или памяти. ROM в принципе можно описать в виде
По инфраструктуре. В отличие от верилога, у которого только стандарт, Veryl "из коробки" имеет форматтер, линтер и language server. Это очень удобно. Например, на добавление полноценной поддержки языка с в Emacs у меня ушли сутки. А это форматирование с отступами, подсветка синтаксиса, подсветка ошибок в реальном времени, автодополнение, хождение по коду и попапы.
Кроме перечисленного, в комплекте с транслятором есть система документирования с поддержкой markdown и wavedrom, система юнит-тестирования с интегрированными тестбенчами на верилоге, и система сборки, которая умеет подгружать зависимости.
Есть и недостатки:
➡️ Нет настроек форматирования, есть только настройка длины таба.
➡️ У линтера есть только настройки стиля, языковых настроек нет. Например, нет предупреждения о неявном приведении ширины.
➡️ При касте сброса транслятор может менять имя сигнала, добавляя к нему префикс или суффикс (настраиваемо). При этом он это делает и для портов вериложных модулей. По этому, если включена эта опция, при имплементации вериложного модуля к именам портов клока и сброса надо прибавлять префикс
➡️ Часто неправильно указывает положение ошибки, особенно если забыли или лишняя точка с запятой.
В общем, впечатления от языка двойственные. С одной стороны линтер, language server и дженерики. С другой - ощущение, что пишешь на верилоге с новым синтаксисом и старыми проблемами. А зачем мне старые проблемы?Мне нужны новые 😄
PS: Дописывая пост заглянул в репозиторий. Две недели назад вышла новая версия, в которой добавили приведение ширины. Вот так может и допишут до продакшена.
Не буду лить воду, пойду по фактам. Плюсы языка:
begin/end и module/endmodule.if/else как выражение (expression). Как бы реверанс в сторону функциональных языков, но по сути синтаксический сахар над тернарным оператором.Теперь минусы:
a = {b, '1} единица не расширяется до размера a, и код в неизменном виде попадает в верилог. Т.е. это ошибка и в верилоге и в вериле, что несколько расстраивает. Выражение как бы очевидное, но авторы решили сохранить совместимость с верилогом. А ещё линтер на это не ругается (а Верилятор ругается).var бла_бла: тип;.const (которое транслируется в localparam), но RAM только через readmem. Авторы говорят, что для асиков это не нужно, а проблемы плисоводов их не волнуют. Конструкция initial поддерживает только вывод сообщений.По инфраструктуре. В отличие от верилога, у которого только стандарт, Veryl "из коробки" имеет форматтер, линтер и language server. Это очень удобно. Например, на добавление полноценной поддержки языка с в Emacs у меня ушли сутки. А это форматирование с отступами, подсветка синтаксиса, подсветка ошибок в реальном времени, автодополнение, хождение по коду и попапы.
Кроме перечисленного, в комплекте с транслятором есть система документирования с поддержкой markdown и wavedrom, система юнит-тестирования с интегрированными тестбенчами на верилоге, и система сборки, которая умеет подгружать зависимости.
Есть и недостатки:
r#. Но это скорее ошибка, которую нужно исправлять.В общем, впечатления от языка двойственные. С одной стороны линтер, language server и дженерики. С другой - ощущение, что пишешь на верилоге с новым синтаксисом и старыми проблемами. А зачем мне старые проблемы?
PS: Дописывая пост заглянул в репозиторий. Две недели назад вышла новая версия, в которой добавили приведение ширины. Вот так может и допишут до продакшена.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Arnold Enginegger
По совету друзей взялся попробовать новый язык Veryl - более лучший верилог для синтеза. Решил переписать на нём маленький код для маленькой ПЛИС, и сразу же столкнулся с неразрешимой проблемой: нельзя задать начальное значение регистру. На гитхабе есть закрытая…
👍12🔥5
В очередной раз пригодился мой китайский фрезер CNC-3018. Выпилил втулки, чтобы уменьшить диаметр отверстий в печатной плате с 1мм до 0.8мм. Заготовка - текстолит толщиной 2мм. На фото видно, что втулки выпилены не до конца, а до фольги на обратной стороне - это чтобы они не вывалились во время фрезерования и не сломались об фрезу. Потом я их вырезал канцелярским ножом.
Диаметр втулок я сделал чуть больше 1мм, чтобы входили с натягом. Несмотря на толщину стенки, получилось достаточно прочно, при запрессовке пока ни одна не сломалась.
Заусенцы на фото - это остатки стружек. На самом деле поверхность чистая и гладкая ☺️
Фреза - кукуруза 0.8мм, горизонтальная подача - 2мм/с, вертикальная 0.5мм/с.
Диаметр втулок я сделал чуть больше 1мм, чтобы входили с натягом. Несмотря на толщину стенки, получилось достаточно прочно, при запрессовке пока ни одна не сломалась.
Заусенцы на фото - это остатки стружек. На самом деле поверхность чистая и гладкая ☺️
Фреза - кукуруза 0.8мм, горизонтальная подача - 2мм/с, вертикальная 0.5мм/с.
🔥21
Нашел забавную ошибку в Вериляторе. При иерархической передаче строки в параметре модуля через два и более модуля строка может не дойти до конечного потребителя. Зависит это от того, указан ли, и где конкретно, тип параметра. Если во всей цепочке тип параметра отсутствует (выводится из дефолтного значения), то строка проходит. Если тип везде указан, то тоже проходит. А если во втором модуле тип не указать, то туда приходит строка той же длины, только заполненная пробелами. Причём, если её передать дальше, то она совсем обнулится.
Вот пример кода с багом:
Вывод такой:
Если добавить тип параметра в первый модуль или убрать тип из второго, то вывод будет корректным:
Вот пример кода с багом:
module string_param_0 #(parameter S = "");
initial $display("S = '%s'", S);
endmodule
module string_param_1 #(parameter string S = "");
string_param_0 #(.S(S)) u_sp0();
endmodule
module test;
string_param_1 #(.S("Greetings from the old shoes")) u_sp1();
initial #1 $finish;
endmodule
Вывод такой:
S = ' '
Если добавить тип параметра в первый модуль или убрать тип из второго, то вывод будет корректным:
S = 'Greetings from the old shoes'
🔥11
По просьбе коллеги добавил в бенчмарк симуляторов запуск Квесты с параметром "-O5" и без параметра "+acc". Прирост скорости составил ровно 10 раз, но есть мнение, что могут быть проблемы с доступом к внутренним сигналам (через VPI/DPI или даже из верилога). Сам не проверял.
Ещё добавил запуск VCS (честно взятый "во временное пользование" на всем известном ftp) на своём компе и перезапустил все тесты. Можно заметить, что скорость работы большинства симуляторов значительно возросла - это от того, что я выключил HyperThreading. А ещё верилятор стал заметно быстрее компилировать, особенно для многопоточного варианта симуляции.
Ещё добавил запуск VCS (честно взятый "во временное пользование" на всем известном ftp) на своём компе и перезапустил все тесты. Можно заметить, что скорость работы большинства симуляторов значительно возросла - это от того, что я выключил HyperThreading. А ещё верилятор стал заметно быстрее компилировать, особенно для многопоточного варианта симуляции.
Telegram
Arnold Enginegger
Запилил небольшой бенчмарк для HDL симуляторов. Пока минималистично, и скрипты для запуска только на Icarus, Verilator и ModelSim/QuestaSim. Надеюсь люди добавят запуск других симуляторов.
🔥13👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Дошли руки до переделки PAL-энкодера на раздельный вывод сигнала яркости и цветности. Спортивный интерес был в том, чтобы использовать один разъём PMOD и минимум внешних компонентов. Была сделана плата с 3-битным R2R ЦАП для сигнала цветности, 4-битным - для яркости, и одним сигналом для синхронизации, который роняет выход яркости на -300мВ. В качестве выходных буферов ЦАП - эмиттерные повторители на КТ368А. Ключ для сигнала синхронизации на КТ230А9 с диодом Шоттки для ускорения переключения.
Как и ожидалось, цветные границы сталимягкими и шелковистыми ровными и чёткими - полностью отсутствует dot crawl, тонкие цветные линии не превращаются в серые. Однако, есть и особенности: 4 бит для яркости маловато, если цвет пересчитывается из RGB в YUV вычислением, а не таблицей. Вычисления могут дать разницу в яркости меньше уровня квантования, и яркость двух объектов на экране окажется одинаковой. В таблицу же можно внести значения, некорректные математически, но более приемлемые визуально. Позже попробую ещё раз переделать плату для использования 5 бит для яркости без отдельного сигнала синхронизации. Тогда на яркость останется 24 значения (4.5 бита), что должно положительно сказаться на качестве картинки в градациях серого.
На видео стандартные цветные полосы. Используется 3 бита на каждый компонент цвета RGB. Использовать больше 4 бит на компонент смысла нет, т.к. разницу в оттенке глаз не заметит, а для яркости не хватит битности АЦП.
В комментах выложу видео цветных линий шириной в 2 "пикселя" на частоте 24МГц и фотки платы.
Как и ожидалось, цветные границы стали
На видео стандартные цветные полосы. Используется 3 бита на каждый компонент цвета RGB. Использовать больше 4 бит на компонент смысла нет, т.к. разницу в оттенке глаз не заметит, а для яркости не хватит битности АЦП.
В комментах выложу видео цветных линий шириной в 2 "пикселя" на частоте 24МГц и фотки платы.
🔥20👍2💔1
This media is not supported in your browser
VIEW IN TELEGRAM
Вышла девятая версия САПР KiCAD. Очень много полезных изменений, среди которых хочется отметить:
- Редактирование дифпар. "Я джва года ждал". На видео в шапке показана как раз эта фича, как частный случай трассировки/редактирования набора треков. Раньше было практически невозможно перетащить дифпару без нарушения зазора между линиями, из-за чего приходилось полностью перетрассировать редактируемый участок.
- Задание параметров площадок отверстий на разных слоях. Раньше можно было только убрать неиспользуемые площадки, а теперь можно индивидуально задать форму, размер площадки и размер антипада для каждого слоя. Это очень полезно при проектировании скоростных плат.
- Экспорт 3D моделей отдельных цепей. Теперь гораздо проще выполнить моделирование в каком нибудь OpenEMS, потому что не надо вручную выковыривать модель дорожки из модели всей платы. Потенциально это дело теперь можно даже автоматизировать.
И много других изменений, про которые можно почитать например здесь.
KiCAD по возможностям всё больше приближается к профессиональным САПРам. Теперь его можно использовать не только с болью, но и с удовольствием☕️
- Редактирование дифпар. "Я джва года ждал". На видео в шапке показана как раз эта фича, как частный случай трассировки/редактирования набора треков. Раньше было практически невозможно перетащить дифпару без нарушения зазора между линиями, из-за чего приходилось полностью перетрассировать редактируемый участок.
- Задание параметров площадок отверстий на разных слоях. Раньше можно было только убрать неиспользуемые площадки, а теперь можно индивидуально задать форму, размер площадки и размер антипада для каждого слоя. Это очень полезно при проектировании скоростных плат.
- Экспорт 3D моделей отдельных цепей. Теперь гораздо проще выполнить моделирование в каком нибудь OpenEMS, потому что не надо вручную выковыривать модель дорожки из модели всей платы. Потенциально это дело теперь можно даже автоматизировать.
И много других изменений, про которые можно почитать например здесь.
KiCAD по возможностям всё больше приближается к профессиональным САПРам. Теперь его можно использовать не только с болью, но и с удовольствием
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤7
SoC Design Challenge: инженерный хакатон для студентов от YADRO и МИЭТ
Не упусти возможность попробовать свои силы в проектировании и верификации систем на кристалле (SoC) и прокачать свои навыки в одном из четырёх треков:
🔵 UVM-верификация
🔵 Системная верификация СнК
🔵 RTL-проектирование
🔵 Топологическое проектирование
Где и когда? 18-20 апреля в МИЭТ
Ждём именно тебя, если ты хочешь:
• Проверить свои навыки в решении индустриальных задач
• Познакомиться с экспертами отрасли и талантливыми единомышленниками
• Получить интересный опыт и ценные призы
Не упусти возможность попробовать свои силы в проектировании и верификации систем на кристалле (SoC) и прокачать свои навыки в одном из четырёх треков:
Где и когда? 18-20 апреля в МИЭТ
Ждём именно тебя, если ты хочешь:
• Проверить свои навыки в решении индустриальных задач
• Познакомиться с экспертами отрасли и талантливыми единомышленниками
• Получить интересный опыт и ценные призы
А для иногородних студентов будет организован бесплатный проезд до Москвы и проживание на время проведения соревнования!Смотри подробности и регистрируйся до 18 марта на нашем сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3👍2👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Грех было не купить за 3т.р. плату с Artix7 75T, да ещё готовую для подключения к PCIe. Вчера приехала, сегодня уже мигаю светодиодами. 😎
Но не просто мигаю. Мы же за опенсорс, по этому собрано и прошито без участия Vivado.
Подробности тут (или альтернативная ссылка)
Но не просто мигаю. Мы же за опенсорс, по этому собрано и прошито без участия Vivado.
Подробности тут (или альтернативная ссылка)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍7❤🔥3❤2🤔2
Из зала подсказали, что есть Xilinx Virtual Cable с поддержкой CH347. Действительно есть, но с этой платой не заработал. Пришлось форкнуть форк и немного пропатчить. Результат тут: https://github.com/punzik/xvcd-ch347
🔥15
This media is not supported in your browser
VIEW IN TELEGRAM
Тут в плисочате народ искал прогу, с помощью которой можно было бы сымитировать вывод фигур Лиссажу на осциллограф из RTL симуляции. Я уже делал что-то подобное - выводил из симуляции картинку на виртуальный SPI дисплей, по этому не составило труда допилить код до виртуального осциллографа. Исходники тут, для запуска нужен Racket (кто бы сомневался, правда? 😏 )
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14😁3
Кроме гитхаба, репозиторий из предыдущего поста выложен в сеть Radicle. Его можно канонически клонировать с помощью Radicle:
Менее канонически - посмотреть через web-интерфейс любого развернутого radicle-explorer. Например:
- https://rad.embddr.xyz/nodes/seed.embddr.xyz/rad:z3wqoSbJvXijf4dJ9jbMWD3XGjyPQ
- https://app.radicle.xyz/nodes/rosa.radicle.xyz/rad:Az3wqoSbJvXijf4dJ9jbMWD3XGjyPQ
И совсем неканонически - клонировать репозиторий git с любого сидера. Например:
Репозиторий, однажды опубликованный в Radicle, будет жить в сети, пока не исчезнет последний сидер (а это в принципе не подразумевается). Даже я, как владелец, не смогу его удалить или закрыть к нему доступ. Максимум, что я могу - удалить исходники и сделать коммит, но вы же понимаете...
А ещё туда можно отправлять issue и патчи (пулл-реквесты), и делать code review. И всё это будет храниться в распределенной сети. Как вам такое?
rad clone rad:z3wqoSbJvXijf4dJ9jbMWD3XGjyPQ
Менее канонически - посмотреть через web-интерфейс любого развернутого radicle-explorer. Например:
- https://rad.embddr.xyz/nodes/seed.embddr.xyz/rad:z3wqoSbJvXijf4dJ9jbMWD3XGjyPQ
- https://app.radicle.xyz/nodes/rosa.radicle.xyz/rad:Az3wqoSbJvXijf4dJ9jbMWD3XGjyPQ
И совсем неканонически - клонировать репозиторий git с любого сидера. Например:
git clone https://seed.embddr.xyz/z3wqoSbJvXijf4dJ9jbMWD3XGjyPQ.git virtual-scope
Репозиторий, однажды опубликованный в Radicle, будет жить в сети, пока не исчезнет последний сидер (а это в принципе не подразумевается). Даже я, как владелец, не смогу его удалить или закрыть к нему доступ. Максимум, что я могу - удалить исходники и сделать коммит, но вы же понимаете...
А ещё туда можно отправлять issue и патчи (пулл-реквесты), и делать code review. И всё это будет храниться в распределенной сети. Как вам такое?
Telegram
Arnold Enginegger
Завёл себе ноду Radicle, и поставил на сервер веб-интерфейс. Интересная штука, попробую поюзать.
Если кто не знает, Radicle - это распределенный хостинг гитовых реп. Типа GitHub, только без центрального хранилища. Работает на таком же принципе, как BitTorrent…
Если кто не знает, Radicle - это распределенный хостинг гитовых реп. Типа GitHub, только без центрального хранилища. Работает на таком же принципе, как BitTorrent…
👍9❤1
Forwarded from Влада Зуева
Это редкая возможность всего за один день:
Ждем вас!
Участие бесплатно, но количество мест в офлайне не безлимитно. Так что советуем регистрироваться как можно скорее. Вступайте и в чат конференции. До встречи! 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
FPGA-Systems YADRO
Сайт встречи
https://meetups.yadro.com/fpga-spb-0526/
https://meetups.yadro.com/fpga-spb-0526/
Засиделись? Расчехляйте свои Вивады, и разомнитесь на констрейнах! Вождь FPGA-Systems приготовил для вас небольшой челленж: https://fpga-systems.ru/fpga-systems-challenge
👨💻4
Forwarded from позитивслэк (Bogdan)
Verilator и UVM [8]
Support for upstream UVM 2017 in Verilator
holy shi~
они сделали это😎
#uvm #verilator
@positiveslack
Support for upstream UVM 2017 in Verilator
we are happy to announce that Verilator can now elaborate upstream UVM 2017-1.0 - no patches or workarounds required.
holy shi~
они сделали это
#uvm #verilator
@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤2🎉1
Очередная попытка натравить нейросети на генерацию RTL с использованием текстовых спецификаций. Авторы собрали многоступенчатый пайплайн, состоящий из агента-архитектора, который по спецификации пишет черновик с интерфейсами, состояниями и зависимостями, агентов генерации RTL, симуляции, анализа ошибок, агента - исправлятеля ошибок, и агента верификации. Все они в цикле чего-то там анализируют и пишут, пока не останется ошибок и модуль не пройдёт выходную верификацию. Собственно, подобным образом работают все агентские системы для вайб-кодинга.
Пишут, что результат получился рабочим: в сравнении с прежними подходами без обратной связи pass-rate получится выше, а итераций меньше. Предсказуемо, итеративная коррекция через фидбэк - более жизнеспособный путь, чем прямая генерация RTL в чатике.
Однако есть и ограничения:
🔵 работает на уровне небольших модулей, в интеграцию не может;
🔵 требует чёткой спецификации, "сделай хорошо" не работает;
🔵 не решает проблемы оптимизации, может только корректно отсимулировать и отсинтезировать;
🔵 требует внешний тестбенч для выходных тестов.
Т.е. вайбкодить по-настоящему пока не получится. Выдыхаем. Пока...😏
Пишут, что результат получился рабочим: в сравнении с прежними подходами без обратной связи pass-rate получится выше, а итераций меньше. Предсказуемо, итеративная коррекция через фидбэк - более жизнеспособный путь, чем прямая генерация RTL в чатике.
Однако есть и ограничения:
Т.е. вайбкодить по-настоящему пока не получится. Выдыхаем. Пока...
Please open Telegram to view this post
VIEW IN TELEGRAM
arXiv.org
PEFA-AI: Advancing Open-source LLMs for RTL generation using...
We present an agentic flow consisting of multiple agents that combine specialized LLMs and hardware simulation tools to collaboratively complete the complex task of Register Transfer Level (RTL)...
👍5👌5😱3