2016-07-15 10 views
0

Я пишу подтверждение IP для некоторого интерфейса и обращаясь к одному интересному предмету, который, как мне кажется, является базовым для ООП.
Переопределение функций класса драйвера

Так что в моем драйвере у меня есть функции, например. configMaster, который специфичен для DUT. И VIP-пользователь может захотеть переопределить эту функцию. Теперь я хочу предоставить механизм для этого пользователя.
Я думаю, что лучший способ переопределения функции класса VIP драйвера будет следующими

  1. Пользователь расширяет класс драйвера
  2. В пользовательском расширенном классе переопределяет методы драйвера, которые он хочет. Если есть несколько методов, которые пользователь не хочет переопределять, это нормально.
  3. Использования заводской пользователя Переопределить метод переопределяет класс драйвера с расширенной user_driver классом

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

Не могли бы вы поделиться своим мнением, что это правильный способ сделать? Есть ли другие способы?

Благодаря
Hayk

ответ

1

Шаг 3 не всегда является обязательным. После переопределения класса пользователь может напрямую использовать производный класс в своем TB. Это будет в основном иметь место, если ТБ создается заново или пользователь интегрирует этот IP как новый компонент в существующий ТБ.

В случае, если VIP уже присутствовал в ТБ, и теперь вы предоставляете пользователю новый набор функций для переопределения или сам пользователь хочет использовать механизм переопределения, предпочитающий создавать базовый класс, предоставляемый VIP, и использовать механизм переопределения позже, пользователь может использовать функцию set_type_override_by_type.

Эта функция может быть встроена в базовый тест, и все производные тесты будут неявно использовать используемый класс vip, полученный пользователем, без необходимости явно указывать его в командной строке для каждого тестового примера. Существует 4 аромата для функции переопределения типа. http://www.testbench.in/UT_06_UVM_FACTORY.html

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

+0

спасибо! – haykp

+0

добро пожаловать :) –

Смежные вопросы