Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000429.doc
Скачиваний:
23
Добавлен:
30.04.2022
Размер:
4.02 Mб
Скачать
      1. SoC-проектирование и верификация c SystemC

        1. Построение модели функционального виртуального прототипа

Процесс определения проекта на высоком уровне - задание архитектуры, основных компонентов, архитектуры коммуникаций на чипе — также определяет природу модели функционального виртуального прототипа. В этом случае проектирование на высоком уровне и системная верификация на основе 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 кода можно начать настройку временных задержек на основе детализированных моделей процессора (с точностью до такта) и системы в целом.