TGViewer
позитивслэк позитивслэк @positiveslack · 993 subscribers
Post #302 1.47K
Рандомизация в Verilator

Тут оказывается у верилятора сподвижки в рандомизации случились.

Если сжать всю историю до нескольких предложений, то

▫️ Первым заходом в рандомизацию было использование API-вызовов библиотеки CRAVE. Решение как оказалось было не совсем подходящим - слишком громоздкий и универсальный инструмент, который сильно усложняет сборку самого верилятора.
▫️Далее пошел заход через SMT-LIB2 - SV констрейны конвертируются в Lisp-подобное описание, которое идёт в рантайме на вход любому (почти) из популярных SMT-решателей, установленных в системе. Далее остается лишь забрать выхлоп и разложить по переменным.

Именно последний подход начали пиарить в недавних статье и докладе про текущие дела верилятора. Хотя PR на Github находился еще в работе, да и судя по комментариям мистер Снайдер похоже не сильно был воодушевлен таким подходом.

Однако, работу довели до мержа в мастер, и теперь по умолчанию верилятор пытается использовать z3, как бэкэнд для рандомизации.

Рандомизация работает, я проверил. Однако надо убедиться что решатель есть в системе, иначе в рантайме будет сюрприз

%Warning: Subprocess command `z3 --in' failed: exit status 127


Но сама рандомизация пока еще довольно слабая - можно глянуть в оригинальном PR, что ограничений пока довольно много.

#verilator
@positiveslack
  • 🔥 4
More from @positiveslack
  1. Sep 18, 2026Чет я закопался в этой проблеме. Я что многого прошу? Я даже про единый формат баз данных…
  2. Aug 25, 2026Интеграция проприетарных форматов вейвформ Из предыдущего поста у меня родилось несколько…
  3. Aug 24, 2026wavepeek 3.0 С момента моего доклада прошло некоторое время и случился переход от v0.5.0 к…
  4. Aug 22, 2026Post #388
  5. Jul 31, 2026Поделюсь историей успеха на поприще ИИ-ассистированного баг-хантинга в RTL. А точнее, прор…
  6. Jul 17, 2026Проверка верилятора на прочность Всё началось с проверки того, а насколько реально verilat…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →