«Случай — это псевдоним Бога, когда Он не хочет подписываться своим собственным именем.» А. Франс

Coverage Cookbook/Executable Testplan Format/ru

Материал из Wiki
Перейти к: навигация, поиск
Aqua pencil.png Эта статья требует перевода на русский язык
Проект Диплом

Литература

Coverage Cookbook (en)

OVM методология

* OS-VVM *

A testplan is a document which captures the important features of a design and how they will be verified.

Содержание

Motivation for Creating a Testplan

Functional Verification has been described as a major challenge in SoC Designs with many citing inadequate visibility into the verification process as a major factor contributing to this challenge. This lack of visibility impacts design quality, schedule predictability and cost (resource/tools/infrastructure). Typical questions that verification managers need answers to are: When are we done with verification? Are all critical requirements of the system verified? Are we using all verification resources adequately to meet project schedules?

By putting an executable plan in place that captures a prioritized list of our verification intent, we are able to do the following:

  • Organize ourselves better. It is not possible to completely verify all states of a design however we can identify all critical, important and nice to have features, then put a plan in place where we ensure that all critical and some important features are fully verified within schedule. If schedule permits, other features can be verified as well
  • During Day to Day execution of the Verification project, an executable plan can help give you insight into current status. Progress can now be tracked instantly because you can see exactly where you are relative to what you intended to verify. You can visualize this progress against Milestones, priority of feature, or even resource
  • Helps manage function coverage closure as the project is being executed. Verification Engineers can focus their coverage closure efforts on the critical features that have been identified as holes, followed by important features and then by the nice to have features.

Создание тестового плана

Во многих случаях характеристики будут проверены в моделировании и записаны как проверенные, используя покрытие кода и функциональное покрытие. Тестовый план может также включать информацию о лаборатории и программное/аппаратное интеграционное тестирование. Для тестовых планов, которые включают в себя покрытие кода и функциональное покрытие, связь между тестовым планом и моделированием может быть автоматизирована. Чтобы выполнить тестовый план должен быть соблюден определенный формат документа. Формат, который Questa's Verification Management solution использует, описан ниже.

Запись тестового плана

Гибкость является ключевым фактором, когда речь идет о подключении тестового плана к тренажеру. В случае Questa Verification Management существуют несколько различных форматов исходных документов. Единственным требованием является то, чтобы исходный документ можно было экспортировать в документ XML. Например, Microsoft Word, Microsoft Excel, OpenOffice Writer, OpenOffice Calc и Adobe FrameMaker могут легко вывести XML документ, который может быть обработан и сделан исполняемым. На самом деле, вполне приемлемо записать одну часть вашего тестового плана в Word, а другую в Excel. Эти различные секции могут быть затем объединены вместе, как описано ниже в разделе Повторное использование существующих тестовых планов.

Из различных вариантов входа таблицы являются наиболее распространенным и хорошо подходят типу данных, используемом в тестовом плане. Формат таблицы обеспечивает понятные и сжатые средства визуализации целей верификации. В остальной части этой статье будут описана необходимая информация для таблиц и как гибко добавлять дополнительную информацию для использования протяжении всего жизненного цикла тестового плана.

Содержание тестового плана

Запись требований к тестированию в плане процесс. Этот процесс определен в статье Спецификация для тестового плана. Процесс включает в себя тщательный анализ спецификаций, сотрудничество между архитектурными, проектными и верификационными командами и обзоры, помогающие убедиться, что ничего не упущено. Все требования, которые выходят из этого процесса должны быть записаны в тестовый план с некоторой необходимой структурой. Требуемая структура позволяет стать тестовому плану исполняемым и стать частью цикла верификации.

Требуемая структура плана

Questa's Verification Management solution требует четырех различных фрагментов информации для записи каждого требования. Это Раздел, Название, Ссылка и Тип. Кроме того, другая информация понимается из box. Дополнительная информация по каждому требованию включает в себя Описание, Вес и Цель. Хотя эти дополнительные поля не являются обязательными, они используются в большинстве случаев. Questa's Verification Management solution также достаточно гибкая, что позволяет использовать поля, определенные пользователем.

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

Plan Structure

Каждая строка в таблице соответствует требованию записанному в процессе создания тестового плана. Каждая колонка имеет особое значение в Questa's Verification Management solution.

Раздел и название

Столбцы Раздел и Название используются совместно для создания имен и иерархии в тестовом плане.

Раздел

Столбец раздел это, как правило, число, используемое для создания иерархии в рамках тестового плана и группы связанных с ним элементов тестового плана вместе в отношениями родитель/ребенок. В таблицах, пользователь отвечает за ввод этой информации. Обычно вы начнете нумерацию разделов с номера '1 'и продолжает последовательно. Подраздел этой секции будут обозначаться как "1,1" и так далее, где каждый дополнительный уровень иерархии будет представлен добавлением "." между номерами разделов.

Название

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

Когда тестовый план экстрагируется Questa, он использует информацию из столбцов Раздел и Название для создания иерархического имени и уникальную метку для каждой строки тестового плана. Например, Раздел 1.1 будет иметь иерархическое имя /testplan/Parent_1/Child_1.

Описание

Столбец описание позволяет добавлять в таблицу более подробную информацию. Это могут быть ссылки на другие документы, чтобы позволить инженерам собирать больше информации или это может быть простое объяснение, почему эти требование нужны. Любой текст может быть записан в эту колонку. Технически это опционально, но на практике требование в тестовый план должны быть записаны в столбце Описание.

Ссылка и тип

Столбцы Ссылка и тип используются для указания покрытия кода или функционального покрытия элементов, которые будут связаны с требованиями. Требование может быть связано с несколькими различными метриками покрытия, включая метрики различных типов. Questa поддерживает ссылки на группы покрытия, точки покрытия, пересечения, утверждения, директивы покрытия, направленные тесты и типы метрик покрытия кода. Эти столбцы также позволяют импортировать другие тестовые планы, как описано в разделе Повторное использование существующих тестовых планов.

Ссылка

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

Тип

Это столбец, в котором вы указываете тип объекта покрытия, указанного в столбце Ссылка.

Вместе информация столбцов Link и Тип используется для эффективного поиска соответствующих объектов покрытия в базе данных покрытия и создания связи между тестовым планом и определенными объектами покрытия. Эти столбцы дают возможность тестовому плану стать исполняемым.

Вес

В столбец Вес записывается целое число, которое отражает относительную важность текущего элемента тестового плана среди аналогичных элементов, в его родительский раздел тестового плана. Если не указано, то по умолчанию он равен 1. Когда покрытие для тестового плана вычисляется в Questa, которая использует "средневзвешенной" алгоритм расчета, эти веса учитывается. Для получения дополнительной информации о том, как Questa рассчитывает покрытие тестового плана смотрите документации на Questa Verification Management.

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

Цель

В этом столбце указывается цель верификации для конкретного раздела тестового плана. Допустимые значения от 1 до 100, если не задано, то по умолчанию составляет 100. Questa использует эту информацию, чтобы определить точку, в которой раздел/элемент тестового плана считается покрытым. Это не зависит от того, каким образом рассчитывается покрытие.

Other Columns Understood By Questa

There are other special purpose columns which can be used in a coverage testplan. These columns are all optional however when they are present Questa leverages their content.

Path

When linking to a specific instance of a covergroup, two options exist. Optionally, the full hierarchical path to the covergroup could be added into the Link column. This works very well if only one coverge item is being accessed at that level of design hierarchy. If however, multiple coverage items are being linked to in the same level of design hierarchy, the Path column allows for the specification of the design path which will be prepended to the entry in the link column to create a fully qualified reference.

Unimplemented

As testplans are being defined, it is common for requirements to be captured where corresponding coverage items don't yet exist in a testbench or design. To handle this situation, a requirement can be maked as unimplemented by either adding a value of 'yes' or a number greater than zero to the Unimplmented column. This will cause testplan coverage calculations to accurately reflect that a requirement exists which is not yet covered by showing zero coverage for that requirement. By default, it is assumed that coverage for a requirement is implemented unless this column is specified.

User Defined Columns

To ensure users have the flexibility to record other vital information related to a requirement, Questa's Verification Management solution allows user defined columns to be created as well. This allows for the specification of anything that needs to be tracked. It can also give you better visibility into the verification process. Some columns which are routinely added include which engineer is responsible for testing a requirement and what the priority of the requirement or design feature is.

These added columns help to answer questions such as:

  • How am I doing on my high priority testplan items?
  • Where am I with regards to meeting my current project milestones?
  • How are my doing in terms of my resources?

The spreadsheet used in the System Level Functional Coverage Example adds Owner and Priority user defined columns.

Повторное использование существующих тестовых планов

Often it is useful to be able to make use of existing testplan's in other contexts. A few common situations where this becomes useful are:

  • Testplans were developed at the block level and need to be incorporated into the chip or system level testplan.
  • A testplan is delivered with a piece of IP or verification IP. For example, protocol specific Verification IP should contain a complete protocol testplan to ensure a protocol is completely verified.
  • Incorporate auto generated testplans into our sub-system or SoC level plan. For example, for power aware simulations simulators should be able to create a testplan to ensure the power scenarios are completely
  • Combine testplans captured by different editing tools into one master testplan.

In these situations, existing testplans can be hierarchically imported into the top-level testplan being created, allowing for visualization of the full depth of the verification effort.

When creating such a testplan, the Type column will be given a value of "XML" to inform Questa that this section does not reference a coverage object, but rather it refers to another testplan document. The Link column will be used to specify the actual testplan file that contains the testplan being imported (via either a relative or full-path to the file).