Научный руководитель – , к. т.н.
НИИ системных исследований РАН
МАРШРУТ ФУНКЦИОНАЛЬНОЙ ВЕРИФИКАЦИИ
СЛОЖНЫХ СБИС
В статье рассмотрены основные проблемы функциональной верификации и предложен маршрут, позволяющий формализовать процесс верификации и повысить его качество.
Наиболее важной и значимой проблемой проектирования сложных микропроцессорных СБИС является функциональная верификация. В настоящее время считается, что затраты на верификацию сложных схем класса микропроцессоров превышают 70 % от общих трудозатрат на разработку. Не смотря на это, ошибки логической модели остаются наиболее распространенной причиной необходимости дополнительных итераций изготовлений микросхем [1]. Если же проектируется СБИС, представляющая собой систему на кристалле (СнК), состоящую из нескольких микропроцессорных элементов, проблема верификации становится основной.
В настоящий момент каждый разработчик вправе выбирать набор средств и инструментов отладки в зависимости от масштабности проекта и финансовых возможностей. Для логической верификации относительно простых микропроцессорных систем (МС) вполне возможно обойтись написанием логической модели (на языке Verilog, VHDL) и моделированием поведения микропроцессора с помощью программных средств на самостоятельно разработанных тестах с использованием несложной программы инициализации. Данный подход неприменим к верификации сложных микросхем. С увеличением производительности и сложности проектируемых микросхем, возрастает стоимость и трудоемкость их разработки, а также стоимость аппаратно-программных средств верификации. Система тестов должна позволять отлаживать как отдельные блоки (ядро процессора, память, контроллеры, периферийные устройства), так и всю систему в целом.
На рынке постоянно появляются новые аппаратные и программные средства, направленные на облегчение и ускорение процесса верификации, однако формализованной методики их внедрения в общий маршрут разработки СБИС отсутсвует. Необходимость применения тех или иных программных и аппаратных средств верификации определялся разработчиком интуитивно, исходя из собственного опыта. В результате ошибка при выборе средств верификации на раннем этапе проектирования может обернуться недостаточным качеством отладки, либо неоправданными временными и материальными затратами.
Встала задача изучить и проанализировать возможные предложения в данной области, на основе чего предложить наиболее оптимальный маршруте верификации, обеспечивающий достаточную полноту верификации при минимальных трудовых и материальных затратах. В таблице приведен маршрут верификации, полученный на основе такого анализа.
№ | Действие |
1 | Разработка поведенческой модели на языке SystemC |
2 | Прямая верификация RTL-модели |
3 | Функциональная верификация RTL-модели |
4 | Верификация с помощью утверждений (assertions) |
5 | Верификация с помощью случайных последовательностей |
6 | Оценка коэффициента покрытия тестов (code coverage) |
7 | Запуск ограниченной версии ОС на аппаратном ускорителе в режиме симуляции |
8 | Запуск полной версии ОС и драйверов внешних устройств на аппаратном ускорителе в режиме внутрисхемной эмуляции |
9 | Запуск полной версии ОС и максимально возможного набора прикладных задач на технологической плате на базе ПЛИС (Altera) |
10 | Проверка функциональной эквивалентности RTL и gate-level моделей |
В результате формализации отдельный шагов по прохождению маршрута, включая выбор программных и аппаратных средств, сформулирована методика верификации и проведена ограниченная апробация данной методики на примере отладки модели специализированного процессора К128, способного выполнять до 32-х операции за такт рабочей частоты. Показано, что применение данной модели позволит значительно повысить коэффициент покрытия при сокращении времени верификации.
Список литературы
1. http://dac.com/41st/41exebitorArea.nsf/companysearch


