- •Введение
- •Обзор современного состояния субмикронной и глубоко-субмикронной технологий
- •Проектирование цифровых интегральных схем
- •Задачи и методы схемотехнического моделирования сбис
- •Этапы проектирования сбис
- •Общие вопросы характеризации цифровых библиотек
- •Характеризация логических элементов
- •Характеризация элементов памяти
- •Анализ переходных процессов
- •Описание характеристик ячеек из библиотеки
- •Языки моделирования цифровых библиотек
- •Обзор средств, существующих в настоящее время
- •Средства проектирования компании cadence
- •Системное проектирование
- •Аппаратное проектирование и верификация
- •Математическое макетирование
- •Топологическое проектирование
- •Средства проектирования компании synopsys
- •Средства проектирования компании mentor graphics
- •Системный уровень
- •Уровень регистровых передач
- •Логический уровень
- •Заказное проектирование аналоговых и смешанных схем
- •Топологическое проектирование
- •Краткое описание возможностей SystemC
- •Контекст SystemC
- •Аспекты SystemC
- •Точность моделирования
- •Модели вычислений
- •Функциональное моделирование
- •Моделирование на уровне транзакций
- •Уровень rtl и связь с реализацией
- •Верификационные расширения
- •Построение модели функционального виртуального прототипа
- •Модели использования fvp
- •Создание встроенных программ
- •Функциональная верификация
- •Анализ fvp с помощью транзакций
- •Программы для характеризации цифровых библиотек
- •Spice-подобные программы моделирования
- •Интерфейс к пользовательским моделям
- •Программная система Charisma
- •Характеризация цифровой ячейки по помехоустойчивости
- •Помехоустойчивость цифровых бис к воздействию внешних помех
- •Устойчивость цепей питания цифровых бис
- •Анализ устойчивости цифровых бис к воздействию внутренних помех
- •Влияние помех в шинах питания на входы бис
- •Рекомендуемые схемотехнические методы борьбы с помехами в шинах питания бис
- •Помехи, генерируемые в сигнальных шинах из-за перекрестного взаимодействия
- •Помехи в сигнальных шинах, вызванные «состязаниями» сигналов
- •Конечная верификация проекта
- •Электрическая верификация
- •Временная верификация
- •Функциональная верификация
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
SoC-проектирование и верификация c SystemC
Построение модели функционального виртуального прототипа
Процесс определения проекта на высоком уровне - задание архитектуры, основных компонентов, архитектуры коммуникаций на чипе — также определяет природу модели функционального виртуального прототипа. В этом случае проектирование на высоком уровне и системная верификация на основе SystemC дополняют друг друга и могут выполняться параллельно. То, что уже задано, должно быть верифицировано; то, что верифицировано, нужно исследовать и проверить на соответствие архитектуре, чтобы убедиться в соответствии требованиям к продукту по функциональности и производительности. Мы сразу видим двойственность этого процесса - исследование пространства проектирования и функциональная верификация просто являются двумя сторонами одного и того же процесса проектирования и верификации. Конечно, в процессе проектирования верификация и проектирование начинают отличаться уровнем детализации. Проектирование является итерационным процессом, детализирующим компоненты и архитектуру коммуникаций до уровня реализуемости - например, до синтезопригодного RTL кода. Модель функциональной верификации — FVP (functional verification model) - необязательно детализировать до такого уровня. Например, в случае ядра (core) встроенного микропроцессора, которое может быть заранее реализовано на физическом или синтезопригодном RTL уровне, может потребоваться только конфигурирование используемой высокоуровневой функциональной модели ядра в рамках FVP. Такой моделью может быть модель, симулирующая набор инструкций (instruction set simulation model - ISS) процессора [6].
На рис. 22. приведен Функциональный Виртуальный Прототип проекта-примера.
Функциональный Виртуальный Прототип построен на основе комбинации SystemC моделей основных компонентов проекта - многоуровневой АНВ шины, компонентов памяти, моста шины и LCD контроллера; при этом функциональность процессора симулируется ISS моделью ARM 920T (ARM 920T Instruction Set Simulator Model (ISS)). Такая ISS модель обладает значительными преимуществами по сравнению, например, с более низкоуровневой моделью процессора (RTL-уровня), даже если она доступна в форме SystemC:
- она напрямую, без модификаций, выполняет скомпилированные или собранные потоки ARM кода;
- она более быстрая. ISS модели процессоров обычно от 100 до 10000 раз быстрее моделей RTL уровня, так как от них требуется только функциональная корректность, а не точное отображение работы аппаратной части;
- она напрямую соединена с соответствующими отладочными программами, которые используются позже при разработке программ для данного процессора;
- она может взаимодействовать с остальными частями системы, написанными на SystemC.
Рис. 22. Функциональный Виртуальный Прототип примера на основе ARM.
ISS можно рассматривать как модель процессора «на уровне транзакций», где основной транзакцией является корректное выполнение отдельной инструкции. Существует несколько типов ISS моделей, которые могут отличаться по временной точности и скорости симуляции. В случае нашего ARM-примера используется Cycle-Callable модель, с точностью до такта; но ф. ARM работает вместе с другими компаниями из Open SystemC консорциума над заданием стандартных «моделей на уровне транзакций» (Transaction-Level Models — TLM моделей) разных уровней абстракции, таких как Programmer's View (на уровне программиста) и Programmer's View with Timing (на уровне программиста, с временными задержками).
Интерфейсный код, связывающий в нашем примере ISS со всей системой, создан на основе ARM API. SW код, выполняемый на FVP примере, также может выполняться и на конечном реальном устройстве, или на плате (board support package - BSP), представляющей реальное устройство. Таким образом FVP позволяет программистам создавать и отлаживать программы до появления реального устройства. Это особенно важно при отладке аппаратно-зависимого SW (Hardware-dependent SW-HdS). После отладки HdS кода можно начать настройку временных задержек на основе детализированных моделей процессора (с точностью до такта) и системы в целом.