Система Verilog Аналог для "синхронизации" Specman e

Я хотел бы спросить, что является аналогом sync Specman e в системном языке Verilog.

Я это понимаю @ event_indentifier эквивалентно wait @ event Specman e. Но как насчет sync @ event?

2 ответа

Для именованных событий вы можете использовать triggered имущество.

event ev;
...
wait (ev.triggered);

См. Главу 15.5.3 в SystemVerilog LRM 2012 для полного объяснения.

Часть 13.1.1 IEEE 1647 говорит

Действие синхронизации аналогично действию ожидания, за исключением того, что для действия ожидания всегда требуется как минимум один цикл события выборки TCM, прежде чем можно будет продолжить выполнение. При действии синхронизации выполнение может продолжаться на том же временном шаге.

Часть проекта 1647-2008

За sync

Когда TCM достигает действия синхронизации, его выполнение должно быть приостановлено, чтобы можно было запланировать выполнение некоторого другого TCM или самого приостановленного TCM.

За wait

Когда TCM достигает действия ожидания, его выполнение должно быть приостановлено, чтобы можно было запланировать выполнение другого TCM. Сам приостановленный TCM должен оставаться бездействующим и не должен планироваться до следующего появления события выборки.

Я думаю, что вы сравниваете разные вещи. SystemVerilog - это механизм моделирования и ядро, а Specman - это дополнение к ядру для надзора и проверки того, что вы написали на электронном языке. В SystemVerilog событие предназначено для событий моделирования, и Specman также создает собственные события для своих процессов TCM. Так что в Specman у него есть собственное планирование процессов TCM. Если вы используете sync, это может сделать синхронизацию без дополнительного цикла; использование wait и вызвать по крайней мере один цикл для цикла отбора проб. Конечно, если sync а также wait не имеет временного выражения, они оба используют события выборки по умолчанию TCM и могут иметь один или несколько циклов.

SystemVerilog также является симулятором событий. Он имеет дельта-циклы на каждом временном шаге. Вы можете загрузить IEEE 1800-2012 SystemVerilog LRM по адресу http://standards.ieee.org/getieee/1800/download/1800-2012.pdf и ознакомиться с 4.5 для его справочного алгоритма планирования. Но в аппаратном моделировании он не имеет явно wait Синхронизация для задержки нулевого цикла в текущем шаге времени моделирования, потому что симулятор автоматически запланирует процесс со списком чувствительности, который будет запущен. Если вам нужно сравнить Specman с SystemVerilog, это должен быть синтаксис утверждения SystemVerilog. Есть ##0 синтаксис в SVA, чтобы заставить процесс подтверждения иметь нулевую задержку цикла до следующего выражения утверждения.

Другие вопросы по тегам