Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cris_diss_21_07_last.docx
Скачиваний:
9
Добавлен:
18.12.2018
Размер:
10.16 Mб
Скачать

Раздел 1 Технологии тестирования и верификации цифровых систем на кристаллах

Три миллиарда цифровых систем на кристаллах, используемых в мире, составляют серьезную конкуренцию универсальным персональным компьютерам. Ввиду высокой рыночной привлекательности компактных и энергосберегающих SoC в работе рассматривается проблема повышения качества и уменьшения времени проектирования и верификации цифровых систем, входящая в топ-десять актуальных проблем электронной индустрии от Gartner Group research. Весь мир видит будущее в цифровых системах на кристаллах. Десять лучших за 2010 год изделий (Apple iPad, Samsung Galaxy S, Apple MacBook Air, Logitech Revue, Google Nexus One (HTC Desire), Apple iPhone 4, Apple TV, Toshiba Libretto W100, Microsoft Kinect, Nook Color) реализованы в виде SoC. Появляются новые технологии в наноэлектронике, такие как 3D-транзистор, которые заставляют ученых по-другому рассматривать процессе синтеза цифровых изделий. В 2012 году рынок мобильной и беспроводной связи будет использовать 20 нм кристалл. Уже в 2015 году 55% сотовых телефонов станут смартфонами, планшетные компьютеры заменят ноутбуки и нетбуки. В связи со сказанным интерес представляет проблема создания новых технологий, моделей и методов, формирующих инфраструктуру тестирования и верификации системных моделей, ориентированных на ускорение процессов диагностирования HDL-кода, путем использования механизма ассерций на основе введения тестопригодности программного кода по графу транзакций.

Цель – аналитический обзор технологий тестирования и верификации цифровых систем на кристаллах, ориентированный на поиск существенных решений в части моделей, методов и средств, направленных на повышение качества проектирования и увеличение выхода годной продукции. Для достижения поставленной цели в разделе решаются следующие основные задачи: 1) Анализ современных методов проектирования, тестирования и верификации систем на кристаллах [1-58, 63, 64, 66, 68-75, 111]. 2) Моделирование на уровне транзакций [59-62, 65]. 3) Верификация на основе ассерций [67, 76-110]. 4) Промышленные системы проектирования и верификации SoC [25-27]. 5) Выбор перспективного направления исследования в области тестирования и верификации цифровых систем на кристаллах [3, 4, 9-38, 41-111].

1.1. Современные проблемы верификации систем-на-кристаллах

В последние годы стоимость программного обеспечения стала доминирующим фактором, определяющим эффективность создания электронных устройств. Программная инженерия кардинально изменила структуру электронной промышленности, включающей сегодня не только производителей больших интегральных схем (БИС), но и группы тесно взаимодействующих компаний, реализующих сложные проектные и технологические цепочки, связанные с разработкой программно-аппаратных средств (software/hardware). Поставщики аппаратных модулей (IP-cores) предлагают стандартизированные блоки и подсистемы, реализуемые в виде кристаллов или печатных плат и используемые различными производителями компьютерных и коммуникационных систем, что еще больше увеличивает дифференциацию программного обеспечения. Производители аппаратных средств взаимодействуют с поставщиками программного обеспечения, предлагающими разнообразные средства от низкоуровневых драйверов до сложных приложений, ориентированных на конечного пользователя [15].

В соответствии с законом Мура разработчики аппаратных средств участвуют в непрекращающейся гонке за сложностью и производительностью вычислительных устройств, одной из главных составных частей которых является программное обеспечение. На рис. 1.1 показано, что при технологии производства кристаллов по нормам менее 90 нм затраты на производство software уже превышают затраты на производство hardware.

Рис. 1.1. Процентное соотношение затрат на разработку программного обеспечения

При разработке программного обеспечения затраты на верификацию и валидацию составляют более 40% от общей стоимости software проекта. В гибридных аппаратно-программных системах 70% затрат, связанных с тестированием, составляет верификация аппаратного обеспечения [17]. В настоящее время широкое распространение приобрели многопроцессорные системы на кристалле (Multi-Processor Systems on Chip, MPSoC) в состав которых входит несколько процессоров с одним или несколькими ядрами. MPSoC аппаратные платформы позволяют создавать сложные подсети для взаимодействия процессоров, включающие локальную сеть, устройства ввода/вывода (например, статическая и динамическая память, ЦАП и АЦП), шины или арбитры, программное обеспечение, особенности реализации которых зависят от программно-аппаратного интерфейса. Затраты на тестирование и верификацию программных приложений MPSoC составляют существенную часть стоимости многопроцессорной системы на кристалле. Это объясняется наличием аппаратно-программного интерфейса между hardware и software. Аппаратная и программная части системы имеют различные спецификации и необходимо поверить их на совместимость друг с другом.

Задача верификации программного обеспечения, функционирующего на заданной аппаратной платформе, наряду с верификацией интерфейса между software и hardware, может быть разделена на несколько подзадач:

  • генерация тестовых последовательностей для программной подсистемы, удовлетворяющих критерию покрытия;

  • проверка программных модулей в условиях функционирования на заданной аппаратной платформе путем использования абстракций различного уровня (компонентного, функционального и архитектурного).

Функциональные требования к программно-аппаратной системе часто не адекватно отражают сложные взаимозависимости между программными и аппаратными компонентами. Для решения данной проблемы используется стратегия ко-моделирования (comodeling), позволяющая формализовать и интегрировать исходные естественно-языковые требования, необходимые для получения исполняемой спецификации, которая в сочетании с моделью аппаратной платформы используется для разработки компонентных моделей интегрированного исполняемого программного и аппаратного обеспечения [18, 19, 20, 31]. Стратегия ко-моделирования применяет общепризнанные принципы ко-проктирования (codesign) на более ранней стадии и более высоком уровне абстракции, что позволяет выявить и решить проблему программно-аппаратной интеграции, когда это проще и дешевле. Comodeling преследует две основные цели: определить дополнительные формальные требования к интеграции программных и аппаратных средств для решения проблем несовместимости, неполноты или неточности; исследовать как различные компоненты программного и аппаратного обеспечения взаимодействуют с системной средой. Использование гибридного моделирования позволяет определить влияние реализации функциональности в виде программных и аппаратных модулей на производительность и сложность отдельных компонентов и поведение интегрированной системы в целом. Пример использования стратегии ко-моделирования для раздельного моделирования программного и аппаратного обеспечения системы приведен на рис. 1.2 [18].

а) мэппинг функциональности и аппаратной платформы

б) виртуальная среда, содержащая программные и аппаратные компоненты

Рис. 1.2. Стратегия ко-моделирования

Совместное проектирование программного и аппаратного обеспечения системы на кристалле позволяет получить заданные значения наиболее важных параметров: быстродействие, вес, потребление энергии, надежность и стоимость. Для достижения указанной цели определяется соответствие (мэппинг) между функциональностью системы и программно-аппаратной платформой, включающей набор программных средств, функционирующих на центральном процессоре общего назначения и специализированных аппаратных средствах, таких как цифровой сигнальный процессор (DSP), программируемые логические интегральные схемы (FPGA) и заказные СБИС (ASIC). Двумя основными задачами ко-проектирования являются выделение функциональных модулей системы, реализуемых программно и аппаратно, и разработка аппаратной платформы.

Современные средства автоматизации проектирования позволяют генерировать описание программных компонентов на языке С и аппаратных – на языке описания аппаратуры (HDL). Зачастую процесс выделения программной и аппаратной частей SoC выполняется, когда проектирование аппаратной платформы еще не завершено. В этом случае используются виртуальные платформы, которые позволяют эмулировать выполнение выделенной функциональности. На рис. 1.2 BE (Behavior Engineering) – метод программной и системной инженерии для построения системы, удовлетворяющей заданным требованиям. Modelica – объектно-ориентированное средство математического моделирования, основанное на уравнениях, предназначенное для моделирования сложных физических систем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]