CPU_DESIGN Telegram 113
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
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/cpu_design/113
Create:
Last Update:

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

BY Записки CPU designer'a




Share with your friend now:
tgoop.com/cpu_design/113

View MORE
Open in Telegram


Telegram News

Date: |

Hui said the messages, which included urging the disruption of airport operations, were attempts to incite followers to make use of poisonous, corrosive or flammable substances to vandalize police vehicles, and also called on others to make weapons to harm police. Telegram Android app: Open the chats list, click the menu icon and select “New Channel.” The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. The initiatives announced by Perekopsky include monitoring the content in groups. According to the executive, posts identified as lacking context or as containing false information will be flagged as a potential source of disinformation. The content is then forwarded to Telegram's fact-checking channels for analysis and subsequent publication of verified information. As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces.
from us


Telegram Записки CPU designer'a
FROM American