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