Какова цель макроса автоматизации UVM? - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь понять макрос автоматизации UVM. кроме всего прочего, я нашел предложение «Библиотека вызовов Verilog системы UVM также включает макросы, которые автоматически реализуют методы печати, копирования, клонирования, сравнения, упаковки и распаковки и многое другое» из текста.

и я обнаружил, что множество примеров используется со следующим использованием. Например,

....
uvm_object_utils_begin(apb_transfer)
'uvm_field_int(addr, UVM_DEFAULT)
'uvm_field_int(data, UVM_DEFAULT)
...
uvm_object_utils_end

но я не понял. что использование 'uvm_field_int () просто определяет переменную, а не копировать, клонировать, сравнивать ....

Как понять, что делать с макросом автоматизации uvm? даже мне также интересно, почему эти вещи называют автоматизацией? Я не могу найти что-то автоматическое.

1 Ответ

0 голосов
/ 04 сентября 2018

Как вы говорите, макросы автоматизации поля UVM генерируют ряд служебных методов класса, таких как копирование, печать и клонирование, которые включают в себя зарегистрированные поля. Вот и все. Я предполагаю, что используется название «автоматизация», потому что они автоматически пишут код, поэтому вам не нужно.

Моя компания (Доулос) рекомендует не использовать эти макросы, если вы не знаете, что делаете. Это потому, что их трудно отладить, они могут генерировать больше кода, чем вам нужно, и имеют странный побочный эффект (значения могут быть считаны из базы данных конфигурации автоматически без вашего ведома). Конечно, преимущество их использования заключается в том, что вы получаете целую кучу кода бесплатно - копирование, сравнение, методы печати и т. Д.

HTML-документация, поставляемая с загрузкой UVM, очень хорошая. Найдите `uvm_object_utils и следуйте за своим носом.

...