Проблемы верификации при проектировании систем на кристалле

        
         оставить комментарий

УДК 004.315

Непомнящий Олег Владимирович — к.т.н., доцент, заведующий лабораторией МПС ИКИТ СФУ

Шуплецов Алексей Александрович — студент

Проблемы верификации при проектировании систем на кристалле

Сибирский федеральный университет, г. Красноярск

Аннотация

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

***

Степень интеграции современных сверхбольших интегральных схем (СБИС) растет экспоненциально [1]. На сегодняшний день переход к субмикронным технологическим нормам позволяет размещать на кристалле  практически любой по сложности проект. Тем не менее, имеется другой сдерживающий фактор — проблема функциональной верификации СБИС. При разработке сложнофункциональных устройств, т.е. систем включающих не только цифровые, но и аналоговые, смешанные, а также процессорные ядра со встроенным программным обеспечением означенная проблема стоит наиболее остро.

Анализ проблемы показал, что технологии верификации проекта на сегодняшний день заметно отстают от технологий и вычислительных возможностей систем проектирования. Еще более серьезным видится отставание возможностей верификации от технологических возможностей производства СБИС (рис.1).

По последним данным примерно половина всего инженерного состава, работающего над крупными проектами, занята функциональной верификацией, а временные затраты на нее в общем цикле проектирования выглядят еще более впечатляюще — более 60% [2].

Затраты на создание комплекта фотошаблонов для субмикронных СБИС настолько высоки, что их повторное изготовление из-за обнаруженных ошибок зачастую недопустимо как с точки зрения задержки выхода изделия на рынок, так и в связи с ростом его конечной стоимости [3].

Поэтому необходим поиск принципиально новых решений, разработка передовых технологий верификации и подход к новым методам анализа проекта.

Рис. 1. Динамика роста производственных возможностей в отношении к производительности средств проектирования и верификации СБИСРис. 1. Динамика роста производственных возможностей в отношении к производительности средств проектирования и верификации СБИС

Основным недостатком традиционного подхода к функциональной верификации — является общепринятый алгоритм проектирования. Дело в том, что здесь система сначала разрабатывается и лишь затем — тестируется [4]. При 60–70% загрузке по времени на верификацию, такая последовательность действий недопустима. При увеличении числа транзисторов на кристалле на первое место выходит факт резкого увеличения необходимого числа и длины тестовых векторов и, как следствие, размера и сложности программно-аппаратных средств тестирования. Параллельно усложняется процесс поиска неисправности обнаруженной тестом.

Традиционный подход к проектированию и верификации означает, что проектирование начинается с разработки спецификации на систему в целом с последующим разбиением системы сначала на крупные, а затем на меньшие блоки, реализуемые на уровне RTL-описания [4].

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

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

На современном этапе развития применение готовых модулей «интеллектуальной собственности» — IP-блоков от сторонних фирм в составе проекта также создает целый ряд проблем в области верификации. Дело в том, что IP-модули поставляются, как правило, в виде «черных ящиков», не позволяющих анализировать их внутреннее поведение  [5].

Проведенный анализ текущего состояния проектов СБИС, в том числе систем на кристалле, реализуемых ведущими компаниями, показал, что на сегодняшний день решить проблему функциональной верификации только путем повышения производительности традиционного метода моделирования на уровне RTL не представляется возможным.

В [6] рассматриваются два общих подхода к решению означенных проблем. Первый предполагает  усовершенствование средств тестирования, а второй подход заключается в изменении самой методики верификации, а именно — в переносе соответствующих процедур верификации на более ранние этапы проектирования.

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

Современные средства проектирования должны обеспечивать сквозную верификацию на всех уровнях, по преимущественным направлениям. Здесь необходимо использовать технологии имитационного моделирования, аппаратной эмуляции, интегрированной программно-аппаратной верификации и обязательно аналого-цифрового смешанного моделирования. Программные системы создания и верификации проекта должны поддерживать все стандартные языки проектирования, в том числе весь ряд HDL (VHDL, Verilog, VHDL_AMS, Verilog_A). Также должны поддерживаться системные языки  (Spice, C, C++, SystemC, System Verilog, MATLAB, PSL assertions и др.)

В плане выработки перспективных методологий верификации следует отметить создание системных тестов, моделирование на уровне транзакций, верификацию интерфейсов различных подсистем одновременно с их проектированием, т.е. возможность верификации системы, отдельные блоки которой представлены на разных уровнях абстракции. Это делает возможным проектирование на системном уровне, т.е. создания моделей высокого уровня абстракции на первоначальных этапах проекта. Такие модели могут быть созданы на основе C, C++, SystemC и System Verilog, при этом детали каждого отдельного блока не будут рассматриваются. Такой подход позволит верифицировать систему, не ожидая детальной проработки всех блоков и интерфейсов. Для реализации «узких» мест — интерфейсов между блоками  следует использовать механизм транзакций.

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

  • Разработка архитектурного плана системы верификации на первоначальных этапах при определении спецификации системы;
  • Реализация принципа нисходящего проектирования с поитерационной  детализацией блоков до уровня RTL. При этом реализуются возможности смешанного моделирования подсистем представленных на различных  уровнях;
  • Принцип нисходящей верификации проекта от системного до вентильного уровней, как в плане формального описания, так и в динамическом и статическом режимах функционирования;
  • Верификация принятых архитектурных решений на системном уровне с помощью построения моделей подсистем верхних уровней на языках C++, SystemC, SystemVerilog и организация моделей подсистемных интерфейсов на уровне транзакций;
  • Автоматическая генерация тестбенчей — виртуальных объектов содержащих тестируемый модуль и подсистему тестовых воздействий, причем как на системном, так и на RTL уровнях;
  • Возможность эмуляции отдельных модулей на аппаратном уровне, в том числе и при использовании внутрисхемных эмуляторов, при которой имеется возможность подключения моделей разного уровня абстракции с управляющим виртуальным или эмулируемым процессором;
  • Возможности создания интегрированного виртуально-аппаратного прототипа посредством интегрированной системы программно-аппаратной верификации, реализующей совместное моделирование программной и аппаратной части проекта, включающей построение моделей на языках высокого уровня и интерфейсных моделей посредством транзакций;
  • Возможность применения встроенных функций проверки истинности утверждений, характерных для правильного функционирования устройства (assertion-based verification) и возможностей оптимизации функционального покрытия (coverage driven verification);
  • Стандартизация в области представления данных и языковых средств проектирования;
  • Поддержка проектирования с помощью блоков интеллектуальной собственности — IP для организации стандартных подсистем (I2C, USB, SCSI и т.д.).

На основании вышеизложенного можно сформулировать основные требования к перспективным системам верификации. Система должна обеспечивать:

  • исключение верифицированных блоков и моделирование только новых добавляемых блоков;
  • моделирование на разных языках, т.е. система должна иметь возможность выполнять сборку наиболее сложных проектов из проектных блоков на языках VHDL, Verilog, C/C++, SystemC и им подобных, а так же списков цепей в стандартизированном формате, при этом должна быть обеспечена их полная интеграция на основе общего модельного ядра;
  • смешанное языковое моделирование, например  иметь возможность совместного моделирования тестов и проектных модулей С/С++ и SystemC вместе с модулями VHDL и Verilog. При этом, компилятор С должен встраивается в  систему моделирования, а результаты комбинированного моделирования могут просматриваться в редакторе временных диаграмм;
  • оптимизацию процесса моделирования, в том числе осуществлять компиляцию и моделирование проектов на языках описания аппаратуры и смешанных языках совместно с  тестами. Распределять системную память между модулями проекта в необходимом и достаточном объеме для верификации. Производить выгрузку неиспользуемых в процессе верификации блоков из проекта на время моделирования;
  • использовать передовые технологии верификации, например верификацию на основе утверждений с аппаратной поддержкой и поддержкой стандартов утверждения OpenVera (OVA), языка определенных свойств (PSL), библиотеки открытой верификации (OVL);
  • поддержку интерфейсов верификации в стандартах IEEE, в том числе интерфейсов PLI, VPI и VHPI, для связи с другими средствами верификации на различных этапах проектирования. Кроме того должна быть заложена возможность сопряжения со средствами проектирования сторонних фирм путем подключения нестандартизированных протоколов обмена и предоставления информации;
  • поддержку параллельных вычислений и много машинных серверных систем. Система должна быть совместима со всеми методологиями управления загрузкой многомашинных серверных систем и систем параллельных вычислений, конфигурируемых для различных операционных систем с целью разгрузки локального компьютера при моделировании;
  • защиту информации при многопользовательском проектировании в виде упаковки и кодирования библиотек исходных файлов при обмене проектными модулями между членами рабочей группы локально или по сети;
  • анализ тестового покрытия по строкам кода, по переключениям, по ветвлению, осуществлять интегральное покрытие на множестве тестов (слияние) и графическую визуализацию тестового покрытия;
  • осуществлять выявление блоков повышенного потребления ресурсов при моделировании и выполнять их оптимизацию с целью предотвращения деградации моделирования;
  • иметь в составе среды высокопроизводительный редактор временных диаграмм, использующий различные методы сжатия для обработки больших объемов данных при моделировании и ускорения визуализации временных диаграмм. Необходимым требованиям по реализуемым функциям редактора должны являются функции редактирования диаграмм с возможностью модификации цепей, поддержку форматов VCD, отображение источников событий, функцию сравнения временных диаграмм и др.;
  • поддержку встроенного многоуровневого текстового редактора языков описания аппаратуры, интегрированного с компилятором и ядром моделирования, обеспечивающего весь спектр функций отладки от генерации точек останова до локализации ошибок компиляции;
  • поддержку аппаратных ускорителей с целью увеличения скорости и эффективности моделирования за счет соединения вместе многих различных элементов проектирования и верификации в единую ускорительную платформу системного уровня.

Рассмотренные проблемы в области верификации проектов и предложенные пути их решения позволят создавать, системы верификации для более гибких интегрированных аппаратно-программных платформ класса  «аппаратный ускоритель — язык моделирования», предназначенных  для смешанного моделирования  от системного уровня до уровня регистровых передач. Такие платформы позволят выполнять процедуры длительного регрессивного тестирования и моделирования во времени, а так же применять методы и средства групповой разработки.

Библиография

  1. W. Rosenstiel, Rapid Prototyping, Emulation and Hardware/Software Co-debugging. In System-Level Synthesis, edited by A.A. Jerraya and J. Mermet, NATO Science Series, Kluwer Academic Publisher, 1999.
  2. Немудров В., Мартин Г., «Системы-на-кристалле. Проектирование и развитие», М.: Техносфера, 2004, 216 с.
  3. Стешенко В.Б., Руткевич А.В., Бумагин, и др. «Опыт разработки СБИС типа СнК на основе встроенных микропроцессорных ядер» — Компоненты и технологии, 2008 г., № 9.
  4. Жан М. Рабаи, Ананта Чандракасан, Боривож Николич, «Цифровые интегральные схемы. Методология проектирования», 2-е изд.: пер. с англ. — М.: ООО «ИД Вильямс», 2007, 912 с.
  5. Бухтеев А.В., «Методы и средства проектирования систем на кристалле», Chip news, 2003 г., №4.
  6. А. Лохов «Функциональная верификация СБИС в свете решений Mentor Graphics», ЭЛЕКТРОНИКА: Наука, технологии, бизнес 2004 г., №1.

Реклама

Комментарии

Вам будет также интересно

Синонимы к слову «кристалл»

Все синонимы к слову КРИСТАЛЛ вы найдёте на портале Викислово.

Создан пуленепробиваемый материал из человеческой кожи и паутины

В результате исследований голландского биолога Абдул Вахаба Эль-Хальбзури и художницы Джалиль Ессайди была создана сверхпрочная ткань — органическое соединение паутины и человеческой кожи.

Читать далее...

Долговечную компьютерную память сделают из стекла

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

Читать далее...

Компьютер научили читать мысли пользователя

Интересную разработку представили на завершившемся в Астрахани III Каспийском инновационном форуме молодые ученые Астраханского государственного технического университета. Компьютер считывал команды прямо из мозга человека и выполнял его задания...

Читать далее...

Разработан метод интеграции биологических компонентов в электронные схемы

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

Читать далее...

Космические технологии здоровья помогут рядовым гражданам

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

Читать далее...

Добавить статью

Приглашаем вас добавить статью и стать нашим автором

Поделитесь с друзьями

Статистика

©  Интернет-журнал «Серый Волк» 2010-2016

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