УДК 621.38
СИДОРОВ С.А.

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

НИИСИ РАН
117218, Россия, Москва, Нахимовский пр-т, дом 36, корп.1
тел.332-48-23, факс 719-76-81, e-mail sidorov@niisi.msk.ru

При разработке программируемых микроэлектронных устройств,
таких, как микропроцессоры, системные контроллеры и контроллеры
периферии, одной их наиболее важных и трудоемких задач становится
верификация проекта на всех стадиях - от поведенческой модели до
выходного контроля образцов микросхем. Применяемые современные
САПР
дают
разработчику
широкие
возможности
проверки
разрабатываемого устройства, как логики его работы, так и электрических
и временных параметров. В то же время очевидно, что проверка
микропроцессора только средствами САПР совершенно недостаточна и
должна сопровождаться программным тестированием.
Разработка программных тестов аппаратуры - задача весьма
трудоемкая, требующая участия высококвалифицированных системных
программистов, досконально изучивших не только видимую архитектуру
микропроцессора (то, что называется программной моделью), но и
внутренние механизмы, прозрачные для обычного программиста.
Основные этапы разработки программируемых микроэлектронных
устройств, с которыми приходится иметь дело разработчику тестов,
таковы:
-
Поведенческая модель: эмуляция архитектуры и основных
внутренних механизмов устройства, позволяющая проверить
логику работы и основные временные соотношения в
проектируемом устройстве. Поведенческая модель пишется, как
правило, на языке программирования высокого уровня, может
оперативно модифицироваться и обеспечивает достаточно
высокую скорость эмуляции (до сотен КГц), что существенно при
разработке
и
отладке
программных
тестов.
Наличие
поведенческой модели позволяет на ранних стадиях разработки
всего проекта начать создание системы тестов, применяемых
затем на следующих этапах, а также найти общий язык
электронщикам и программистам.

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

граничными значениями параметров (насколько возможно создать такие
условия программно). Далее, должны быть проверены взаимовлияния
различных механизмов друг на друга. Например, в случае
микропроцессора - взаимовлияние идущих следом команд обмена с
памятью при различных сочетаниях условий (кэширование, встречные
пересылки и пр.), взаимодействие целочисленного и вещественного
арифметических устройств, виртуальная память и интенсивный поток
прерываний.
Тот же подход к разработке программных тестов применим и к
верификации проектов неинтеллектуальных устройств - контроллеров
периферии и системных контроллеров. Здесь актуальной становится
задача моделирования внешней среды - той периферии, которой управляет
контроллер. Для контроллеров часто бывает удобнее опустить этапы
программного тестирования поведенческой и логической моделей,
перейдя сразу к модели в ПЛМ - в этом случае отпадает необходимости
моделировать подыгрывающую периферию.
Наряду с разработкой программных тестов достаточно трудоемок и
сам процесс тестирования. Большое количество разнообразных тестов
требуется регулярно выполнять на развивающихся моделях и прототипах.
Поэтому
большое
значение
имеет
автоматизация
регулярного
тестирования, а это, в свою очередь, требует унификации программных
тестов по технологии выполнения, форматам входных и выходных
параметров, диагностике и т.п.
Сформулированные в докладе вопросы программного тестирования
разрабатываемых
микроэлектронных
устройств
показывают,
что
верификация проекта по трудоемкости сравнима с собственно
разработкой, а с ростом сложности устройств заметно превышает
разработку. Это необходимо учитывать при планировании разработок,
отводя на программное тестирование достаточно средств и времени.


Document Outline