Параметризованный seq_items для параметризованных интерфейсов - PullRequest
0 голосов

Я пытаюсь реализовать поддержку параметризованного интерфейса, как описано здесь . Я построил простой пример, но теперь я думаю, что parameterized interface должно основываться на parameterized sequence_item.
Папка из приведенной выше ссылки объясняет, как передавать параметризованный интерфейс через config_db, но не объясняет, каким образом я должен справиться с параметризацией элементов последовательности, которые должны быть параметризованы соответствующим интерфейсом.

То, что я спрашиваю, это: «я должен просто не параметризировать элементы seq и просто установить ширину их полей на максимальный размер, или мне нужно параметризовать их, и если да, то как мне это сделать?»

Как я понимаю, мне не нужно просто устанавливать seq_item поля на максимальную длину, мне нужно переопределить базовый класс seq_item для определенной параметризованной версии, как я делал с классом base_if.
Я не совсем понимаю эту магию set_override, кроме set_type_override, которая просто заставляет фабрику создавать определенные объекты дочерних классов вместо родительских. Но если я перенаправлю один тип первому драйверу, а другой тип - второму драйверу, он не будет работать.
Я думаю, что мне нужен какой-то override function, который использует путь к отдельным классам переопределения, но я не знаю его (кроме переопределения экземпляра со страницы выше).

Поваренная книга тоже не дала мне решения.

например, у меня есть такой класс:

class my_driver extends uvm_driver(my_seq_item);

Если я хочу параметризовать интерфейс, мне нужно параметризовать my_seq_item, в этом случае я должен параметризовать my_driver для передачи параметров в my_seq_item # (), и я должен параметризовать все другие компоненты, которые используют my_seq_item. Я не верю, что я должен идти по этому пути, я думаю, что я должен создать дочерний параметризованный класс и использовать некоторую функцию переопределения для обновления всех классов, которые используют my_seq_item.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...