Системный аналог Verilog для «синхронизации» Specman e

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

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


person Mondy Garcia    schedule 27.03.2013    source источник


Ответы (2)


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

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

Полное объяснение см. в главе 15.5.3 SystemVerilog LRM 2012 года.

person dwikle    schedule 27.03.2013

В части 13.1.1 IEEE 1647 говорится

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

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

Для sync

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

Для wait

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

Мне кажется, вы сравниваете разные вещи. SystemVerilog — это механизм моделирования и ядро, а Specman — это надстройка или подключаемый модуль к ядру для мониторинга и проверки того, что вы написали в e язык. В 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 Assertion. В SVA есть синтаксис ##0, чтобы процесс утверждения имел нулевую задержку цикла перед следующими выражениями подтверждения.

person jclin    schedule 29.03.2013