TGViewer
Записки CPU designer'a Записки CPU designer'a @cpu_design · 3.6K subscribers
Post #113 1.66K
System Verilog Assertion и синтаксический сахар, разбираемся |=> или |-> ##1

В рамках данной рубрики мы уже обсуждали подходы для описания процедурных блоков always (ссылаясь на утекшие код-стайл гайдлайны от Intel), оператор inside, а теперь добрались до SVA.

Наткнулся на интересное сообщение от Юрия Панчула в чате Школы Синтеза.

Обсуждается вопрос, как лучше описывать задержку для проверки выражение в следующем такте: через |=>, что является синтаксическим аналогом неблокирующего присваивания, или через оператор |-> ##N (привет задержкам в синтезируемом коде).

Небольшой ликбез для энтузиастов, которые еще не сталкивались с ассёршинами.
SystemVerilog Assertions (SVA) используются для проверки соответствия поведения цифровой схемы заданным требованиям и свойствам. Это позволяет выявлять ошибки в проектировании на ранних этапах верификации и ускоряет процесс разработки.
Например, мы знаем, что в одном такте не может произойти N взаимоисключающих событий, такое условие мы можем описать при помощи SVA, объединяя сигналы оператором конкатенации и используя функцию $onehot. Смотри пример для csr блока в дизайне scr1.

Вернемся к нашему синтаксическому сахару😋
Основные доводы для замены |=> на |-> ##1 из статьи Каммингса:

1) для описания SVA достаточно |->, а оператор |=> избыточная надстройка, заменяемая |-> ##1;
2) инженер может перепутать операторы |-> и |=>, а при явном описании величины задержи ##1, ##N, ##0 выстрелить в ногу становится сложнее;
3) поговаривают, что в ARM в кодстайл гайде запрещается использовать |=>
Доверяем ли мы инженерам ARM'а в этом вопросе? 😁

"At multiple DAC conferences many years ago (~2004 and ~2005), my colleague, Alan Hunter of
ARM shared that ARM engineers were not allowed to use |=> instead they were required to use
|-> ##1
"

Подробнее ознакомиться с сабжем можно в статье Каммингса [линк на pdf], раздел 9. А обсудить описание SVA или почему опять инженерам нечем заняться кроме придумывание очередного гайдлайна всегда можно в комментариях 💬
#bestpractice
  • 👍 13
  • 🤯 2
  • ✍ 1
  • 🐳 1
  • 🤓 1
More from @cpu_design
  1. Oct 3, 2026Нашёл на просторах Твиттера сборник лекций по analog/mixed-signal IC design: от физики MOS…
  2. Oct 2, 2026Как скосить перед начальством за ответственного сотрудника и заставить всех коллег себя не…
  3. Oct 2, 2026А вот и результаты Jane Street ASIC Puzzle подъехали 👀 https://blog.janestreet.com/asic-p…
  4. Oct 1, 2026OpenAI and Synopsys Announce GPT-Synopsys Ну что, вот они и пришли за нами. Если кратко, т…
  5. Sep 30, 2026Уже влезли в долги, чтобы наскрести на подписку ChatGPT за 500$? Пока убеждаете друзей зан…
  6. Sep 29, 2026Нидерланды продолжают укреплять свои позиции как один из ключевых полупроводниковых хабов…
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 →