OVM/OVM методология/Повторное использование Testbench — различия между версиями
Vidokq (обсуждение | вклад) (Новая страница: «=Reuse= Построение проекта(архитектуры) тетсбенча, кодинг, отладки и тестирования драйверо…») |
Vidokq (обсуждение | вклад) (→Reuse) |
||
Строка 2: | Строка 2: | ||
Построение проекта(архитектуры) тетсбенча, кодинг, отладки и тестирования драйверов, мониторов и других компонент тестбенча может занять довольно много времени. Очевидный способ улучшения производительности верификации является повторное использование компонентов. Это звучит достаточно просто, но чтобы сделать компонент действительно многоразовым, некоторые идеи (мысли, концепты) должны быть введены в его архитектуру и конструкцию. Подумать о том, как сделать компонент многоразовым, как вы хотите повторно использовать компоненты и какую степень свободы должны поддерживать компоненты. | Построение проекта(архитектуры) тетсбенча, кодинг, отладки и тестирования драйверов, мониторов и других компонент тестбенча может занять довольно много времени. Очевидный способ улучшения производительности верификации является повторное использование компонентов. Это звучит достаточно просто, но чтобы сделать компонент действительно многоразовым, некоторые идеи (мысли, концепты) должны быть введены в его архитектуру и конструкцию. Подумать о том, как сделать компонент многоразовым, как вы хотите повторно использовать компоненты и какую степень свободы должны поддерживать компоненты. | ||
+ | |||
+ | ==6.1 Типы Повторное использование (или повторное использование типов)== | ||
+ | |||
+ | |||
+ | Основное средство, чтобы сделать компоненты пригодными для повторного использования - это инкапсуляции(объединение) всех данных и функций внутри четко определенного интерфейса. Интерфейс определяет, как вы можете изменить, обращаться и запрашивать (извлекать данные из) компонент. Всякий доступ будет запрещен кроме того, что конкретно разрешен в интерфейсе. Мы рассмотрим четыре метода для создания многоразовых элементов тестбенча: вызовы функций, параметризованные классы, наследование и конфигурации. Каждый из этих методов представляет собой разные способы изменить структуру или поведение, используя интерфейс. В каждом из этих методов, информация подаваемая снаружи вызывает изменение структуры или поведение элемента. Первые три способа сделать элементы многоразовыми упоминались в главе 2, где мы обсуждали объектно-ориентированное программирование. | ||
+ | |||
+ | * '''Вызов функций.''' - алгоритм или другая функциональность заключенная в вызове функции. Всякий раз, когда вы нуждаетесь в этой функциональности, вы можете просто вызвать функцию, а не копировать и вставить код или переписать его полностью в этом место. Функции могут принимать параметры, значения которых изменяют поведение функции. | ||
+ | |||
+ | * '''Наследование.''' Инкапсуляция данных и функциональности произвольной сложности в единый объект, который скрывает сложность, так что объект может быть опущен на место и осуществляет свою деятельность через интерфейсы. Добавление или изменение функциональности по наследству - есть способ повторного использования базового объекта и воспользоваться любой функциональностью, которая в нем содержится. | ||
+ | |||
+ | * Параметризованные классы обеспечивают способ создания повторно используемых классов. Классы с параметрами образует template1, которые могут быть созданы несколько раз с различными параметрами образуют семейство классов. Скалярные значения и типы могут быть использованы в качестве параметров. Каждый экземпляр класса параметризованных называется специализацией. Для определения специализации параметры становятся частью типа. | ||
+ | |||
+ | * Конфигурации в процессе выполнения. Настраиваемые элементы могут изменить свое поведение или структуру через установку флагов, переключателей, или конфигурации переменных. | ||
+ | |||
+ | ==6.2 Многоразовые компоненты == | ||
+ | |||
+ | Чтобы изучить, как строить повторно используемые компоненты, давайте рассмотрим пример простого memory master управляющего памятью через транспортный канал, и все это на уровне транзакций. Давайте посмотрим на каждый из этих компонентов подробно, чтобы увидеть, как они строятся с использованием методов повторного использования. |
Версия 21:26, 27 марта 2013
Reuse
Построение проекта(архитектуры) тетсбенча, кодинг, отладки и тестирования драйверов, мониторов и других компонент тестбенча может занять довольно много времени. Очевидный способ улучшения производительности верификации является повторное использование компонентов. Это звучит достаточно просто, но чтобы сделать компонент действительно многоразовым, некоторые идеи (мысли, концепты) должны быть введены в его архитектуру и конструкцию. Подумать о том, как сделать компонент многоразовым, как вы хотите повторно использовать компоненты и какую степень свободы должны поддерживать компоненты.
6.1 Типы Повторное использование (или повторное использование типов)
Основное средство, чтобы сделать компоненты пригодными для повторного использования - это инкапсуляции(объединение) всех данных и функций внутри четко определенного интерфейса. Интерфейс определяет, как вы можете изменить, обращаться и запрашивать (извлекать данные из) компонент. Всякий доступ будет запрещен кроме того, что конкретно разрешен в интерфейсе. Мы рассмотрим четыре метода для создания многоразовых элементов тестбенча: вызовы функций, параметризованные классы, наследование и конфигурации. Каждый из этих методов представляет собой разные способы изменить структуру или поведение, используя интерфейс. В каждом из этих методов, информация подаваемая снаружи вызывает изменение структуры или поведение элемента. Первые три способа сделать элементы многоразовыми упоминались в главе 2, где мы обсуждали объектно-ориентированное программирование.
- Вызов функций. - алгоритм или другая функциональность заключенная в вызове функции. Всякий раз, когда вы нуждаетесь в этой функциональности, вы можете просто вызвать функцию, а не копировать и вставить код или переписать его полностью в этом место. Функции могут принимать параметры, значения которых изменяют поведение функции.
- Наследование. Инкапсуляция данных и функциональности произвольной сложности в единый объект, который скрывает сложность, так что объект может быть опущен на место и осуществляет свою деятельность через интерфейсы. Добавление или изменение функциональности по наследству - есть способ повторного использования базового объекта и воспользоваться любой функциональностью, которая в нем содержится.
- Параметризованные классы обеспечивают способ создания повторно используемых классов. Классы с параметрами образует template1, которые могут быть созданы несколько раз с различными параметрами образуют семейство классов. Скалярные значения и типы могут быть использованы в качестве параметров. Каждый экземпляр класса параметризованных называется специализацией. Для определения специализации параметры становятся частью типа.
- Конфигурации в процессе выполнения. Настраиваемые элементы могут изменить свое поведение или структуру через установку флагов, переключателей, или конфигурации переменных.
6.2 Многоразовые компоненты
Чтобы изучить, как строить повторно используемые компоненты, давайте рассмотрим пример простого memory master управляющего памятью через транспортный канал, и все это на уровне транзакций. Давайте посмотрим на каждый из этих компонентов подробно, чтобы увидеть, как они строятся с использованием методов повторного использования.