RTL - MES conference

advertisement
Возможности использования
виртуальных платформ для верификации
RTL-моделей сложно-функциональных
блоков в составе «Систем на кристалле»
И.И. Шагурин, Е.И. Литвинов, Г.Ю. Жихарев
МЭС-2014 VI Всероссийская научно-техническая конференция
Национальный исследовательский ядерный университет «МИФИ»
НИЯУ «МИФИ» 2014
Новые инструменты и подходы к
разработке цифровых систем
Параллельная
разработка
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
• Растущая сложность разрабатываемых систем,
многопроцессорные/многоядерные системы
• Необходимость разработки ПО на ранних этапах
• Необходимость ускорения моделирования
2
Виртуальные платформы
• Решаемые задачи
• Содержимое ВП
• Набор моделей, которые используются для представления
различных СФ-блоков системы
• Комплекс правил для создания новых моделей
• Поведенческие модели, написанные на высокоуровневых
языках (С/С++)
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
• Симуляция аппаратной реализации проекта
• Разработка и отладка ПО (драйвера, ОС, приложения)
3
Виртуальные платформы
• Simics (Intel)
• Device Modeling Language
• Коммерческая
• Использование симуляторов ModelSim, VCS и
интегрированных средств разработки
программ, например RealView (ARM)
• Коммерческая
• Open Virtual Platforms (Imperas)
• Технология создания моделей
• CpuManager, OVPSim
• Open Source*
Данные платформы позволяют моделировать выполнение ПО
с использованием RTL-моделей СФ-блоков, входящих в состав СнК
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
• Seamless (Mentor Graphics)
4
• Совокупность моделей отдельных устройств связанных
интерфейсами API
• Стандартизированные интерфейсы написанные на языке С
• Полная документация
• Модульность, иерархичность (моделируется не только процессоры
но и шины, модель память и периферия)
• Библиотека открытых моделей и платформ
• Набор готовых моделей на языке С
• Модели процессоров ARM, Synopsys ARC, MIPS, OpenRisk OR1K,
Xilinx MicroBlaze, PowerPC
• Модели периферийных устройств (C, C++, SytemC, TLM-2.0)
Примеры платформ для встроенного применения
• OVPSim симулятор, бесплатный для некоммерческого использования
• С точностью до инструкций
• ~ 100 MIPS
• Моделирования многоядерных/многопроцессорных систем в
однотактном режиме
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Open Virtual Platforms
5
• Innovative CPU Manager (ICM)
• Virtual Machine Interface (VMI)
• Behavioral Hardware
Model (BHM)
• Peripheral Programming Model
(PPM)
Imperas предоставляет
заголовочные файлы .h
и документацию на
интерфейсы
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
OVP API
6
OVP API
• Virtual Machine Interface (VMI)
• Behavioral Hardware
Model (BHM)
• Peripheral Programming Model
(PPM)
обеспечивает связь модели
процессора, с ведущим
компьютером
служат для подключения к
модели системы периферии
и других устройств,
представленных в виде
поведенческих моделей
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
• Innovative CPU Manager (ICM)
формирует общую модель
системы, реализуя
взаимосвязь и контроль
моделей отдельных
устройств
7
• Динамически-подключаемая библиотека (so/dll), которая
содержит реализации функций интерфейсов
• Встроенные инструменты отладки и возможность
подключить внешний отладчик, если он поддерживает
протокол GNU GDB RSP
• Возможность использования симулятора внутри других
окружений, например SystemC
Варианты симулятора:
• CpuManager - коммерческий симулятор с полным набором
функциональных возможностей
• OVPSim – свободно распространяемый симулятор,
имеющий относительно небольшую производительность
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Симулятор OVP
8
Применение ВП для
верификации аппаратуры
Для создания гибридной модели необходимо:
• Обработать исходные Си файлы платформы и прикладной
программы
• Скомпилировать файлы RTL-модели и тестового
окружения
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Предлагается использование гибридной модели СнК:
• Комплексная модель, состоящая из поведенческого
описания на языках С/С++ и RTL-описания СФ-блока
9
С/С++
компилируется
специальными
инструментами для
запуска на ВП
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Применение ВП для
верификации аппаратуры
10
• Получение исполняемого
файла прикладной
программы
• Исполняемый файл для
конкретной платформы
• GСС и набор утилит cross
compilers
• Создание динамическиподключаемой
библиотеки ВП
ASRC
application.c
PSRC
platform.c
platform_help.c
AOBJ
application.o
POBJ
platform.o
platform_help.o
AEXE
application.OR1K.elf
PSO
platform.so
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Обработка всех исходных Си файлов:
платформы и прикладной программы
• GCC
11
• SSRC – исходные файлы тестового окружения,
global_inc.sv – включает
SVSRС
VSRC
все файлы UVM компонент,
global_inc.sv
dut.inc.v
ovp_tb_top.sv
интерфейсов и т.п.,
ovp_tb_top.sv – модуль верхнего уровня
• VSRC – исходные файлы RTL-модели СФ-блока, dut.inc.v –
файл включает все исходные RTL- файлы.
Инструменты:
• Questasim, VCS
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Компиляция файлов RTL-модели и
тестового окружения
12
Компиляция файлов
RTL-модели и
тестового окружения
Обработка всех исходных
Си файлов: платформы и
прикладной программы
Запуск моделирования
(Questasim, VCS)
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Процедуры создания гибридной
модели СнК
13
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Схема тестового окружения
14
• Тестовое окружение взаимодействует с виртуальной
платформой посредством вызовов функций, которые
осуществляются с помощью стандартного интерфейса
Direct Programming Interface (DPI) языка SystemVerilog.
• Шаблоны функций, написанные на языке SystemVerilog,
входят в состав создаваемого тестового окружения, а
реализация этих функций обеспечивается библиотекой,
имеющейся в составе используемой виртуальной
платформы.
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Взаимодействие ВП и
тестового окружения
15
Предложенная методика позволяет:
• Верифицировать RTL-модель разрабатываемых
аппаратных средств СнК
• Использовать мощные средства, доступные для
виртуальных платформ, и современные методологии
верификации аппаратуры
• Запускать и отлаживать программное обеспечение
• Сократить трудоёмкость и время разработки СнК
Использование единого тестового комплекса позволяет
избежать применения различных моделей и версий
тестового окружения для решения задач тестирования
Григорий Жихарев - МИФИ
(gregory.zhiharev@gmail.com)
Заключение
16
Download