научная статья по теме ОБЗОР СОВРЕМЕННЫХ ТЕХНОЛОГИЙ ИМИТАЦИОННОЙ ВЕРИФИКАЦИИ АППАРАТУРЫ Математика

Текст научной статьи на тему «ОБЗОР СОВРЕМЕННЫХ ТЕХНОЛОГИЙ ИМИТАЦИОННОЙ ВЕРИФИКАЦИИ АППАРАТУРЫ»

ПРОГРАММИРОВАНИЕ, 2011, No 3, с. 42-49

ТЕСТИРОВАНИЕ, ВЕРИФИКАЦИЯ И ВАЛИДАЦИЯ ПРОГРАММ

УДК 681.3.06

ОБЗОР СОВРЕМЕННЫХ ТЕХНОЛОГИЙ ИМИТАЦИОННОЙ ВЕРИФИКАЦИИ АППАРАТУРЫ

© 2011 г. А.С. Камкин, М.М. Чупилко Институт системного программирования РАН 109004 г. Москва, ул. Солженицына, 25 E-mail: kamkin@ispras.ru, chupilko@ispras.ru Поступила в редакцию 15.09.2010 г.

Работа представляет собой сравнительный анализ современных подходов к имитационной верификации (тестирования) моделей аппаратуры: AVM (Advanced Verification Methodology) от компании Mentor Graphics, OVM (Open Verification Methodology) - совместной разработки Mentor Graphics и Cadence Design Systems - и технологии UniTESK (Unified TEsting and Specification tool Kit), разработанной в Институте Системного Программирования РАН. В статье анализируются сильные и слабые стороны различных подходов, сопоставляются архитектуры тестовых систем, даются рекомендации по развитию технологии UniTESK и ее унификации с методологией OVM, набирающей все большее распространение и претендующей на то, чтобы стать стандартом в области верификации аппаратного обеспечения.

1. ВВЕДЕНИЕ

Увеличение сложности аппаратного обеспечения неизбежно влечет за собой развитие технологий разработки тестовых систем, предназначенных для имитационной верификации (simulation-based verification). В настоящее время сложность аппаратуры достигла такого уровня, что ее тестирование немыслимо без применения методов автоматизации. Такие методы позволяют разрабатывать тестовые системы, которые автоматически генерируют тестовые последовательности, оценивают правильность поведения системы и собирают информацию о достигнутом уровне тестового покрытия. Однако следует понимать, что автоматизация это далеко не все, что требуется от современной технологии разработки тестов.

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

подходы к построению тестовых систем, такие как AVM (Advanced Verification Methodology), URM (Universal Reuse Methodology), OVM (Open Verification Methodology) и UniTESK (Unified TEsting and Specification tool Kit), в той или иной степени решают обозначенные задачи, но многообразие существующих подходов усложняет взаимодействие между разными группами разработчиков.

Стандартизация технологий разработки тестов является необходимым шагом в развитии полупроводниковой индустрии. Появление стандартов создаст предпосылки для отчуждения тестов, что окажет стимулирующее воздействие на рынок готовых компонентов (IPs, Intellectual Property Cores). Если тесты к компоненту аппаратного обеспечения разработаны с использованием общепринятого подхода, сторонние инженеры могут без труда разобраться в них и при необходимости дополнить.

В последнее время в области тестирования моделей аппаратуры все большее распространение получает технология OVM, совместно разработанная компаниями Metor

Graphics и Cadence Design Systems. Предшественниками OVM являются два основных подхода: AVM (от Mentor Graphics) и URM (от Cadence Design Systems). В данной работе технология OVM вместе со своими предшественниками сравнивается с технологией UniTESK, разработанной в Институте Системного Программирования РАН. В статье анализируются сильные и слабые стороны указанных подходов, сопоставляются архитектуры тестовых систем, даются рекомендации по развитию инструментов UniTESK и их унификации с подходом OVM.

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

2. ОСНОВНЫЕ ПОНЯТИЯ

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

- языки описания аппаратуры (HDLs, Hardware Description Languages), с помощью которых разрабатываются модели уровня регистровых передач (RTL, Register Transfer Level). Среди таких языков можно выделить Verilog [1] и VHDL [2];

- языки проектирования системного уровня (system-level design languages), позволяющие описывать аппаратную систему на более высоком уровне абстракции и поддерживающие разработку программной части системы. К таким языкам относятся SystemC [3] и System Verilog [4].

В дальнейшем для удобства будем называть языками описания аппаратуры или HDL-языками обе указанные разновидности языков.

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

Перед описанием технологий AVM, OVM и UniTESK (технология URM, упомянутая во введении, не описывается в виду почти полного отсутствия документации по ней) отметим следующее. В названии подходов AVM и OVM содержится слово ,,методология", в то время как UniTESK, по мнению ее создателей, является технологией. В рамках данной статьи мы не различаем эти два термина и понимаем под ними совокупность принципов, методов и инструментов для разработки набора тестов.

3. ОБЗОР ТЕХНОЛОГИИ AVM

Технология AVM (от англ. advanced verification methodology - передовая методология верификации) была создана в компании Mentor Graphics и распространяется под лицензией Apache 2.0. На настоящий момент она никак не стандартизирована, и вся информация по ней находится в „книге рецептов" [5] и пользовательской инструкции по эксплуатации.

3.1. Основные принципы AVM

С помощью технологии AVM реализуется возможность разработки сложных тестовых систем на SystemVerilog или SystemC. Основным средством AVM являются библиотеки классов, разработанные на этих языках. При разработке тестовых систем используются следующие базовые принципы: объектно-ориентированный подход, моделирование на уровне транзакций (TLM, Transaction-Level Modeling) и генерация случайных стимулов на основе ограничений (constraint-random generation).

TLM - это подход к моделированию пересылки данных в цифровых системах, при котором организация связи между модулями системы отделена от их реализации. Под

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

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

3.2. Архитектура тестовой системы AVM

Тестовые системы, создаваемые с использованием технологии AVM, должны быть разбиты на несколько слоев (см. рис. 1). Самый нижний уровень - это RTL-модель тестируемого устройства (DUT, Design Under Test). Над ним находится прослойка транзакторов (transactors) - компонентов тестовой системы, осуществляющих преобразование потока входных транзакций во входные сигналы тестируемой модели, и наоборот, преобразование выходных сигналов тестируемой модели в поток выходных транзакций.

Примерами транзакторов являются:

- драйвер (driver) - конвертирует поток транзакций во входные сигналы тестируемой модели;

- ответчик (responder) - отвечает на запросы со стороны тестируемой модели относительно подачи дополнительных данных;

- монитор (monitor) - осуществляет наблюдение за выходами тестируемой модели, не оказывая на нее влияния.

Следующим слоем является так называемый слой операций (operational layer). Компоненты этого уровня образуют тестовое окружение необходимое тестируемой модели. К ним относятся:

1. Генератор стимулов (stimulus generator) -создает поток входных транзакций (стимулов) на тестируемую модель. Для генерации стимулов используется подход на основе разрешения ограничений с использованием рандомизации (CRV, Constraint-Random Verification). Связь генератора с тестируемой моделью осуществляется через драйвер;

2. Главный модуль (master) - элемент окружения тестируемой модели, инициирующий взаимодействие с ней. Главный модуль посылает последовательности транзакций (случайные или направленные на достижение какой-либо ситуации) и может использовать обратную связь для определения своих следующих действий. Связь главного модуля с тестируемой моделью осуществляется через драйвер;

3. Подчиненный модуль (slave) - как и главный модуль моделирует окружение тестируемой модели, но, в отличие от него, является пассивным компонентом, отвечающим на запросы тестируемой модели. Связь подчиненного модуля с тестируемой моделью осуществляется через ответчик.

Далее следует слой анализа (analysis layer), компоненты которого проверяют корректность поведения тестируемой модели, оценивают полноту тестирования и выполняют некоторые другие функции. Основными компонентами этого уровня являются:

- компонент проверки (scoreboard) - проверяет корректность поведения тестируемой модели в ответ на входные транзакции;

- сборщик покрытия (coverage collector) -оценивает полноту тестирования путем подсчета числа событий заданных типов, возникающих в процессе тестирования.

На самом верху находится слой управления, включающий в себя один единственный компонент - контроллер теста (test controller), который осуществляет координацию работы других компонентов тестовой системы.

Рис. 1 илл

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком