Возможности использования виртуальных платформ для верификации 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