Вы здесь

Трудности модульной верификации аппаратуры на примере буфера команд микропроцессора "Эльбрус-2S"

Описывается опыт автономной верификации буфера команд микропроцессора «Эльбрус-2S» с использованием инструмента C++TESK. На этом примере формулируются общие проблемы, возникающие в промышленной верификации аппаратуры, и предлагаются пути их решения. Дается краткое описание буфера команд и его особенностей, затрудняющих верификацию. Рассматриваются применяемые в проекте технические и организационные решения. Многие из затронутых проблем имеют общий характер, что позволяет применять предложенные решения для верификации других устройств.

Обеспечение корректности работы микропроцессоров и другой аппаратуры является фундаментальной проблемой, для решения которой применяют разные методы функциональной верификации [1, 2]. Суть проблемы состоит в том, что сложность микропроцессоров возрастает быстрее, чем позволяют возможности методов верификации, в результате чего проверка корректности (и так являющаяся самым узким местом процесса проектирования) требует все больше ресурсов. Чтобы повысить эффективность верификации, применяют проверенный принцип «разделяй и властвуй»: микропроцессор декомпозируется на множество относительно простых модулей (устройств), каждый из которых проверяется автономно. Таким образом, помимо обязательной системной верификации, оценивающей работоспособность микропроцессора в целом, применяют еще и модульную верификацию для более тщательной проверки отдельных устройств.

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

В процессе разработки микропроцессора «Эльбрус-2S» применялись оба типа верификации. Статья основана на опыте автономной верификации буфера команд, одного из наиболее критичных компонентов микропроцессора. На наш взгляд, этот опыт показателен: сложное устройство (более 25 000 строк кода на языке Verilog) документировано не достаточно полно. Мы полагаем, что опыт окажется полезным при верификации других устройств и будет способствовать общему повышению качества проектирования аппаратуры.

Подробнее... Загрузить файл 

Содержание:

Введение

1. Организация буфера команд

2. Используемый подход к верификации

3. Организация процесса верификации

4. Статистические данные по верификации буфера команд

5. Выводы и рекомендации по итогам проекта

Заключение

Литература

Р.А. Баратов
А.С. Камкин
В.М. Майорова
А.Н. Мешков
А.А. Сортов
М.А. Якушева