Научная статья на тему 'ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ УСКОРЕНИЯ ФУНКЦИОНАЛЬНОЙ ВЕРИФИКАЦИИ СИСТЕМ НА КРИСТАЛЛЕ'

ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ УСКОРЕНИЯ ФУНКЦИОНАЛЬНОЙ ВЕРИФИКАЦИИ СИСТЕМ НА КРИСТАЛЛЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
126
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕРИФИКАЦИЯ / ЭМУЛЯЦИЯ / СИСТЕМА НА КРИСТАЛЛЕ / ПЛИС / SYSTEMVERILOG / ИНТЕРФЕЙС DPI

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Солодовников Андрей Павлович, Переверзев Алексей Леонидович, Силантьев Александр Михайлович

Для решения задачи ускорения процесса верификации цифровых устройств ведущие разработчики САПР создают специализированные программно-аппаратные комплексы - эмуляторы, позволяющие воспроизводить функционал RTL-описания аппаратуры со скоростью симуляции единицы мегагерц. Такая скорость обеспечивает на несколько порядков меньшее время выполнения тестов по сравнению с логической симуляцией. Однако в связи с высокой стоимостью эмуляторы могут использовать только крупные компании. В работе предложена структура и прототип технической реализации программно-аппаратного комплекса для ускорения функциональной верификации сложнофункциональных блоков и систем на кристалле на основе доступных для разработчиков средств проектирования, что позволит снизить стоимость решений для ускорения верификации и упростить их применение. Ускорение достигнуто за счет переноса вычислений результатов воздействий тестируемого устройства из симулятора в эмулируемое в ПЛИС устройство и взаимодействия симулятора и тестируемого устройства посредством программного интерфейса. С использованием предложенной структуры программно-аппаратного комплекса реализован прототип, оценка производительности которого показала восьмикратное сокращение времени моделирования. Полученный результат свидетельствует о перспективности продолжения исследований в данном направлении.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOFTWARE-HARDWARE COMPLEX FOR SYSTEM ON CHIP DESIGN VERIFICATION ACCELERATION

Speeding up the process of verification of digital devices is a relevant task, which is being tackled by leading CAD developers who create specialized software-hardware complexes - emulators that can reproduce the functionality of RTL hardware descriptions at simulation speeds in the megahertz range. Such speed provides several orders of magnitude faster test execution times compared to logical simulation. However, due to high cost of emulators they can only be used by large companies. In this work, a structure and a prototype of a software-hardware complex have been proposed for accelerating functional verification of complex functional IP blocks and systems on chip based on available design tools, which will reduce the cost of verification acceleration solutions and simplify their use. The acceleration is achieved by transferring the calculations of the results of the device under test’s actions from the simulator to the emulated device in the FPGA and by interacting between the simulator and the device under test through a software interface. A prototype has been implemented based on the proposed structure, and its performance evaluation has shown an eight-fold reduction in simulation time. The obtained result indicates the prospects of further research in this line of study.

Текст научной работы на тему «ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ УСКОРЕНИЯ ФУНКЦИОНАЛЬНОЙ ВЕРИФИКАЦИИ СИСТЕМ НА КРИСТАЛЛЕ»

СХЕМОТЕХНИКА И ПРОЕКТИРОВАНИЕ CIRCUIT ENGINEERING AND DESIGN

Научная статья УДК 004.052

doi:10.24151/1561-5405-2023-28-4-441-451 EDN: NULBAQ

Программно-аппаратный комплекс для ускорения функциональной верификации систем на кристалле

А. П. Солодовников, А. Л. Переверзев, А. М. Силантьев

Национальный исследовательский университет «МИЭТ», г. Москва, Россия

pal@olvs.miee.ru

Аннотация. Для решения задачи ускорения процесса верификации цифровых устройств ведущие разработчики САПР создают специализированные программно-аппаратные комплексы - эмуляторы, позволяющие воспроизводить функционал RTL-описания аппаратуры со скоростью симуляции единицы мегагерц. Такая скорость обеспечивает на несколько порядков меньшее время выполнения тестов по сравнению с логической симуляцией. Однако в связи с высокой стоимостью эмуляторы могут использовать только крупные компании. В работе предложена структура и прототип технической реализации программно-аппаратного комплекса для ускорения функциональной верификации сложнофункциональных блоков и систем на кристалле на основе доступных для разработчиков средств проектирования, что позволит снизить стоимость решений для ускорения верификации и упростить их применение. Ускорение достигнуто за счет переноса вычислений результатов воздействий тестируемого устройства из симулятора в эмулируемое в ПЛИС устройство и взаимодействия симулятора и тестируемого устройства посредством программного интерфейса. С использованием предложенной структуры программно-аппаратного комплекса реализован прототип, оценка производительности которого показала восьмикратное сокращение времени моделирования. Полученный результат свидетельствует о перспективности продолжения исследований в данном направлении.

Ключевые слова: верификация, эмуляция, система на кристалле, ПЛИС, SystemVerilog, интерфейс DPI

Для цитирования: Солодовников А. П., Переверзев А. Л., Силантьев А. М. Программно-аппаратный комплекс для ускорения функциональной верификации систем на кристалле // Изв. вузов. Электроника. 2023. Т. 28. № 4. С. 441-451. https://doi.org/10.24151/1561-5405-2023-28-4-441-451. - EDN: NULBAQ.

© А. П. Солодовников, А. Л. Переверзев, А. М. Силантьев, 2023

Original article

Software-hardware complex for system on chip design verification acceleration

A. P. Solodovnikov, A. L. Pereverzev, A. M. Silantyev

National Research University of Electronic Technology, Moscow, Russia pal@olvs.miee.ru

Abstract. Speeding up the process of verification of digital devices is a relevant task, which is being tackled by leading CAD developers who create specialized software-hardware complexes - emulators that can reproduce the functionality of RTL hardware descriptions at simulation speeds in the megahertz range. Such speed provides several orders of magnitude faster test execution times compared to logical simulation. However, due to high cost of emulators they can only be used by large companies. In this work, a structure and a prototype of a software-hardware complex have been proposed for accelerating functional verification of complex functional IP blocks and systems on chip based on available design tools, which will reduce the cost of verification acceleration solutions and simplify their use. The acceleration is achieved by transferring the calculations of the results of the device under test's actions from the simulator to the emulated device in the FPGA and by interacting between the simulator and the device under test through a software interface. A prototype has been implemented based on the proposed structure, and its performance evaluation has shown an eight-fold reduction in simulation time. The obtained result indicates the prospects of further research in this line of study.

Keywords: verification, emulation, system on chip, SoC, FPGA, SystemVerilog, DPI

For citation: Solodovnikov A. P., Pereverzev A. L., Silantyev A. M. Software-hardware complex for system on chip design verification acceleration. Proc. Univ. Electronics, 2023, vol. 28, no. 4, pp. 441-451. https://doi.org/ 10.24151/1561-5405-2023-28-4441-451. - EDN: NULBAQ.

Введение. Увеличение степени интеграции систем на кристалле и усложнение сложнофункциональных блоков обеспечили значительный рост производительности и расширение функциональных возможностей конечных систем. В то же время это привело к трудностям при их проектировании и при этом затраты на верификацию являются основной частью от общих затрат на разработку систем на кристалле. Согласно результатам исследований компании Mentor Graphics [1], верификация занимает до 53 % времени проектирования.

На протяжении многих лет сложность создаваемых устройств растет по крайней мере на 58 % в год. Однако совершенствование средств верификации позволяет верифицировать с прежней скоростью проекты, усложнившиеся на 21 % в год [2]. Таким образом, имеется значительный разрыв между ростом сложности устройств и возможностями инструментов верификации.

В настоящей работе проводится сравнение способов функциональной верификации, описывается предложенная структура программно-аппаратного комплекса для ускорения верификации, дается оценка обеспечиваемой им производительности и его

применимости в зависимости от сложности тестируемого устройства. Для сравнения эффективности разных способов функциональной верификации используется величина Fm, равная отношению общего числа промоделированных синхроимпульсов к реальному времени, затраченному на моделирование.

Способы функциональной верификации. Симуляция. Логическая симуляция -процесс программного моделирования разрабатываемого устройства, который может вестись на поведенческом уровне, уровнях межрегистровых передач и логических вентилей. Выделяют симуляцию, основанную на событиях (event based simulation), и по-тактовую симуляцию (cycle accurate simulation). Потактовая симуляция позволяет моделировать поведение устройства с точностью до тактового синхроимпульса и не может предоставить информацию о переходных процессах между ними. Симуляция, основанная на событиях, может предоставить более детальную информацию о поведении моделируемого устройства с точки зрения временных задержек. Тем не менее симуляция, основанная на событиях, не может заменить статический временной анализ.

Современные симуляторы используют механизм, основанный на событиях, работают с программной моделью верифицируемого устройства, построенной по его HDL-описанию, и выполняют следующие задачи:

- построение программной модели моделируемого устройства;

- генерация тестовых воздействий посредством верификационного окружения;

- отображение внутренних и внешних сигналов моделируемого устройства на временной диаграмме;

- сравнение сигналов моделируемого устройства с результатами эталонной модели (golden reference model).

К преимуществам данного способа верификации можно отнести относительно низкую стоимость (103-104 долл., здесь и далее приведен приблизительный порядок цен) программных средств и простоту создания верификационной инфраструктуры, которая в минимальной конфигурации состоит из рабочей станции, оснащенной симулятором. Современными симуляторами, используемыми в индустрии, являются Cadence Xcelium, Synopsys VCS, Siemens Questa. Отметим, что существуют бесплатные симуля-торы с открытым исходным кодом, например Icarus Verilog. Основным недостатком использования программной модели при логической симуляции является экспоненциальный рост времени симуляции по мере увеличения количества логических элементов в верифицируемом устройстве.

Эмуляция. Недостатки симуляции могут быть устранены посредством эмуляции -процесса построения модели устройства в специальном программно-аппаратном комплексе (эмуляторе). Современными эмуляторами, используемыми в индустрии, являются Cadence Palladium, Synopsys Zebu, Siemens Veloce.

Преимущество эмуляции - на несколько порядков более высокое значение Fm, которое может достигать единиц мегагерц [3]. При этом сохраняется возможность использования функционала симулятора: генерация тестовых воздействий, отображение временной диаграммы, сравнение результатов модели с эталоном. Важно отметить, что эмулятор не способен воспроизвести временные задержки моделируемого устройства, поэтому эмуляция позволяет вести моделирование только с точностью до тактов (даже при использовании симулятора, основанного на событиях). Кроме того, эмуляторы -это специализированные аппаратно-программные комплексы, имеющие высокую стоимость (106-107 долл.).

Прототипирование на ПЛИС. При функциональной верификации устройства применяется прототипирование на ПЛИС - аппаратный способ ускорения моделирования. Однако в отличие от эмуляции этот способ не предполагает использования симу-лятора. Тестовые воздействия подаются на модель, воспроизведенную в ПЛИС по физическим интерфейсам.

Преимущество данного способа заключается в относительно низкой стоимости, которая в основном определяется ценой отладочной платы с одной или несколькими ПЛИС, на которой будет вестись прототипирование (10-105 долл.). Такой прототип работает на частотах ПЛИС, поэтому частота подобного моделирования может достигать десятков и сотен мегагерц [4]. К недостаткам прототипирования можно отнести необходимость адаптации RTL-описания устройства под реализацию в ПЛИС, проектирование тестового окружения с физическими интерфейсами, интеграцию прототипа с физическими устройствами, например с SATA-диском, датчиком изображения и т. д. Решение этих задач требует много времени, что может свести на нет выигрыш в скорости проверки устройства [4]. Кроме того, прототипирование на ПЛИС имеет ограниченные ресурсы по отладке верифицируемого устройства [5] ввиду невозможности отображения внутреннего состояния устройства и ограничений по логированию внешних сигналов. Например, невозможно сохранить подробный trace-лог работы кластера процессорных ядер при запуске операционной системы Linux.

По сравнению с логической симуляцией эмуляция и прототипирование в ПЛИС сокращают время моделирования при верификации цифровых устройств. Однако эмуляторы имеют высокую стоимость, в настоящее время затруднена их техническая поддержка и лицензирование, а прототипирование на ПЛИС требует больших трудозатрат на создание прототипа и тестового окружения и ограничивает возможности по отладке устройства.

Таким образом, ускорение процесса моделирования является актуальной задачей. Кроме того, важно создание отечественных аппаратно-программных комплексов, что обеспечит развитие технологически независимых средств проектирования.

Разработка программно-аппаратного комплекса. При предлагаемом способе аппаратное ускорение симуляции происходит за счет переноса вычислений результатов воздействий на тестируемое устройство из симулятора в реальную либо эмулируемую в ПЛИС аппаратуру посредством программного интерфейса. Это обеспечивает значительное сокращение времени моделирования при относительно низкой стоимости средств верификации. Идея ускорения моделирования посредством эмуляции в ПЛИС не нова. Однако в результате анализа литературных источников не обнаружены данные о конкретных способах реализации аппаратного ускорителя моделирования, по оценке производительности и применимости в зависимости от сложности тестируемого устройства (количества логических вентилей). При этом в индустрии отсутствуют open-source-аналоги эмуляторов от коммерческих компаний.

В процессе разработки программно-аппаратного комплекса для ускорения функциональной верификации необходимо решить следующие задачи:

- имитация верифицируемого устройства (DUT) специальным нефункциональным модулем, соединенным с эмулируемым устройством;

- реализация способа обмена данными между хостом (рабочая станция, оснащенная симулятором) и эмулируемым устройством;

- реализация модуля контроллера эмулируемого устройства, подающего принятые из теста входные воздействия и отправляющие обратно выходные сигналы с эмулируемого устройства.

Кроме того, необходимо реализовать вспомогательный программный компонент, отвечающий за подсчет реального времени, затраченного на выполнение симуляции, и количество симулированных тактовых синхроимпульсов для оценки производительности комплекса. На рис. 1 представлена предлагаемая структура программно-аппаратного комплекса, которая состоит из двух устройств: рабочей станции, на которой запускается симулятор, и отладочной платы с ПЛИС, подключенного к компьютеру через высокоскоростной интерфейс.

Рис. 1. Структура программно-аппаратного комплекса Fig. 1. Structure of the software-hardware complex

Для передачи данных по интерфейсу используются программные и аппаратные компоненты. Формирование тестовых воздействий и отображение результатов функционирования верифицируемого устройства осуществляются стандартными средствами симулятора. Для обмена информацией с симулятором используется интерфейс DPI (Direct Programming Interface), что налагает ограничения на применяемые симуляторы, в частности DPI поддерживают симуляторы QuestaSim, Xcelium, VCS. Данный интерфейс позволяет подключить к симулятору библиотеки, написанные на языке Си. При вызове функций из этих библиотек типы передаваемых аргументов языка SystemVerilog интерпретируются как стандартные типы языка Си. Кроме того, при вызове функции можно использовать и статические массивы, передаваемые через указатель [6]. Подключенные к симулятору библиотеки могут содержать функции, производящие обмен данными через какой-либо физический интерфейс между компьютером и отладочной платой с ПЛИС. Таким образом, подобные функции могут стать посредником в обмене данными между симулятором и ПЛИС.

Ускорение симуляции достигается за счет замены вычисления состояний проверяемого устройства эмуляцией этого устройства в ПЛИС. Верификационное окружение полностью реализовано в симуляторе и взаимодействует с несинтезируемым модулем, имитирующим тестируемое устройство. По каждому такту синхроимпульса этот модуль будет передавать в ПЛИС входные воздействия посредством вызова программы через DPI, а по завершении этого вызова выставлять принятые от отладочной платы с ПЛИС данные на выходных сигналах устройства в верификационном окружении.

Для того чтобы на время обмена данными между отладочной платой и симулято-ром эмулируемое устройство оставалось в неизменном состоянии, подаваемый на него тактовый сигнал отключается до прихода очередного набора входных воздействий.

После выставления данных на входах устройства на него подается один тактовый синхроимпульс, после чего тактовый сигнал снова отключается до следующей порции входных воздействий. Управление тактовым синхроимпульсом проверяемого устройства, а также задача приема данных от симулятора и формирование из них входных воздействий на управляемое устройство возлагаются на специальный модуль - приемопередатчик (см. рис. 1).

Реализация прототипа программно-аппаратного комплекса. В основе прототипа - отладочная плата Zynq ZC702 на базе системы на кристалле Zynq 7000, содержащей два домена: процессорную систему и программируемую логику (рис. 2). Прием и передача данных реализованы в домене процессорной системы, которая имеет доступ к интерфейсу Ethernet. Передача данных из домена процессорной системы в домен программной логики происходит через память DDR3, подключенную к домену программной логики через интерконнект на основе интерфейса AXI4.

ТСР-клиент

Ethernet

TCP-сервер mmap

AXI4

Контроллер входных-выходных воздействий Тестируемое

устройство

Программируемая логика

Xilinx ZC702 Evaluation kit

Рис. 2. Структурная схема прототипа программно-аппаратного комплекса Fig. 2. Block diagram of the software-hardware complex prototype

Внутри процессорной системы на плате Zynq ZC702 запущено ядро Linux, на котором работает tcp-сервер. После старта симуляции на очередном тактовом синхроимпульсе входные воздействия, сгенерированные верификационным окружением, передаются через программный интерфейс DPI внутрь библиотеки на языке C++, реализующей tcp-клиент. Последний упаковывает данные и передает их tcp-серверу через интерфейс Ethernet. На стороне платы Zynq ZC702 tcp-сервер распаковывает данные и записывает в память по адресам, к которым в домене программируемой логики через интерконнект AXI4 обращается IP-блок, отвечающий за выставление входных воздействий на верифицируемое устройство, генерацию тактового синхроимпульса, снятие и

Пространство пользователя

Пространство ядра Процессорная система

запись в память выходных сигналов. После этого выходные сигналы устройства возвращаются в симулятор тем же маршрутом.

В ходе исследования прототипа программно-аппаратного комплекса определено, что среднее время передачи данных от симулятора до тестируемого устройства и обратно составляет около 300 мс. Это означает, что в данной реализации программно-аппаратный комплекс может моделировать порядка 3,3 тыс. тактовых синхроимпульсов в секунду. Ограничением при передаче данных в первую очередь является память DDR3, на обмен через которую требуется половина всего времени передачи. Кроме того, установлено, что производительность существенно зависит от задержки при передаче сигнала по физическому интерфейсу. Иными словами, при выборе интерфейса важнее не пропускная способность интерфейса, а то, сколько времени необходимо, чтобы единичный пакет данных дошел от отправителя к получателю.

Улучшение структуры программно-аппаратного комплекса. Применение интерфейса PCI-E. Для улучшения общей производительности комплекса необходимо сократить время задержки передачи данных (latency) и исключить из канала передачи лишние обращения к памяти. Сокращение времени задержки сигнала предлагается реализовать за счет перехода на доступный в рабочих станциях интерфейс общего пользования - PCI-E. В отладочной плате контроллер PCI-E реализован в виде сложнофунк-ционального блока ПЛИС [7] с программными библиотеками драйвера (XDMA) [8]. В связи с этим нет необходимости в использовании домена процессорной системы и передачи данных через память DDR3.

Библиотека XDMA предоставляет модуль ядра Linux, реализующий программный драйвер PCI-E, а также примеры программного обеспечения, использующие этот драйвер из пространства пользователя. Схема взаимодействия представлена на рис. 3.

Рис. 3. Связь интерфейса PCI-E с пользовательским приложением через XDMA Fig. 3. PCI-E to host application connection via XDMA

Контроль утечек дескрипторов. Важно отметить, что конечная точка PCI-E (node) может применяться только в монопольном режиме. Это значит, что открытое устройство может быть использовано только по дескриптору, возращенному при открытии. Устройство не сможет быть повторно открыто, пока не будет освобожден предыдущий дескриптор. Поэтому крайне важно избегать утечки дескрипторов при работе прикладного программного обеспечения, в противном случае возникнет необходимость в перезагрузке компьютера либо принудительном закрытии дескриптора средствами операционной системы (если таковые имеются). Для решения данной проблемы следует воспользоваться концепцией RAII (Resource Acquisition Is Initialization - получение ресурса есть инициализация).

Концепция RAII подразумевает, что получение ресурса какого-либо объекта (область памяти, файл или устройство) должно быть неразрывно связано с инициализацией объекта (дескриптора), а освобождение ресурса - с уничтожением этого объекта [9]. Иными словами, создание дескриптора обязательно совмещается с получением доступа к ресурсу, и если этот дескриптор будет уничтожен (по причине выхода программы за пределы области видимости этого объекта либо завершения, исключения или сигнала прерывания программы), то в момент уничтожения объекта должна быть проведена процедура освобождения ресурса. В языке C++ данная задача может быть решена с помощью конструкторов / деструкторов.

Оптимизация многократных вызовов. Работа комплекса подразумевает десятки (сотни) тысяч вызовов функции отправки и приема транзакций по PCI-E. В самом простом случае эта функция может быть реализована по следующему алгоритму:

Шаг 1. Создание дескриптора.

Шаг 2. Получение доступа к устройству PCI-E.

Шаг 3. Создание указателя на выровненную область памяти.

Шаг 4. Выделение выровненной области памяти.

Шаг 5. Перемещение отправляемых данных в выровненную область памяти.

Шаг 6. Отправка транзакции по PCI-E.

Шаг 7. Прием транзакции по PCI-E.

Шаг 8. Перемещение принятых данных из выровненной области памяти.

Шаг 9. Освобождение выровненной области памяти.

Шаг 10. Возвращение доступа к устройству PCI-E.

Шаг 11. Автоматическое уничтожение объектов указателей и дескрипторов по выходу из функции.

Шаги 1 и 2, 3 и 4, 9-11 могут быть совмещены благодаря принципу RAII, но это не ускорит работу программы, так как операции будут инкапсулированы. Проблемой является многократное получение и освобождение ресурсов. Поскольку программа подключается к симулятору в виде скомпилированной библиотеки, данная проблема может быть решена с помощью статических переменных библиотеки. В момент загрузки библиотеки будут созданы статические переменные дескрипторов устройств и указателей на выровненные участки памяти. В момент создания этих переменных произойдет получение доступа к соответствующим ресурсам (в соответствии с RAII). Эти переменные будут доступны всем функциям библиотеки на протяжении всего времени работы программы. По завершении программы перед выгрузкой библиотеки статические переменные будут автоматически уничтожены, что приведет к освобождению ресурсов.

Таким образом, получение и освобождение ресурсов будет связано лишь с загрузкой-выгрузкой программной библиотеки, что происходит единожды за симуляцию.

Методика оценки производительности программно-аппаратного комплекса.

Для оценки производительности комплекса предложено использовать количество моделируемых в секунду тактовых синхроимпульсов:

N

Р _N clk

T / T

clk

T

T

где Nclk - количество промоделированных тактовых синхроимпульсов; Tr - реальное время, затраченное на моделирование; Tm - время моделирования; Tclk - период тактового синхроимпульса, который задается в верификационном окружении.

Время моделирования Tm может быть получено верификационным окружением в конце моделирования путем вызова системной функции $realtime. Для измерения времени Tr в верификационном окружении вызывается функция, написанная на языке С++, которая возвращает текущее время рабочей станции и вычисляет разность времени на момент начала и конца моделирования. Погрешность измерения времени Tr, обеспечиваемая рабочими станциями, не превышает одной десятой секунды. Существуют руководства по измерению времени на Linux-системах с точностью до микросекунд [10]. Для снижения времени вклада Tr в результат измерений время моделирования увеличено.

Для оценки производительности комплекса разработан синтетический тест с конвейеризируемым устройством, сложностью (количеством эквивалентных логических вентилей) которого можно управлять с помощью параметризации количества стадий конвейера.

В ходе экспериментов измеряли время моделирования посредством симуляции, использующей программную модель устройства на поведенческом уровне, а также модель, воспроизведенную в комплексе для устройств с различным количеством вентилей. Результаты сравнения представлены на рис. 4. Применение программно-аппаратного комплекса на основе интерфейса PCI-E по сравнению с использованием интерфейса Ethernet дает восьмикратное увеличение параметра Fm. Кроме того, применение комплекса становится эффективнее логической симуляции для устройств, состоящих из 100 тыс. логических вентилей и больше.

Заключение. Предложенные структура и вариант технической реализации программно-аппаратного комплекса позволяют ускорить функциональную верификацию, функционирование и производительность которых проверены на двух прототипах. Результаты измерения производительности прототипов комплекса по сравнению с логической симуляцией показали восьмикратное ускорение моделирования для устройств, состоящих из 550 тыс. логических вентилей, и на порядок быстрое моделирование устройств, состоящих из десятков миллионов логических вентилей.

Сложность устройства.

Рис. 4. Сравнение параметра Fm для логической симуляции и моделирования с помощью эмуляции, использующей разные высокоскоростные интерфейсы: 1 - эмуляция с PCI-E; 2 - эмуляция

с Ethernet; 3 - симуляция Fig. 4. Fm parameter comparison between program modeling and emulation using different high-speed interfaces: 1 - emulation with PCI-E; 2 - emulation with Ethernet; 3 - simulation

Полученные результаты свидетельствуют о возможности создания отечественных программно-аппаратных комплексов для ускорения функциональной верификации, для чего потребуется решить ряд научно-технических задач. В частности, необходимо разработать способ моделирования метастабильных состояний в устройствах с несколькими тактовыми доменами, способы деления проектов на изолированные части для эмуляции устройств с использованием нескольких ПЛИС, исследовать возможность усовершенствования комплекса путем более тесной интеграции с САПР с открытым исходным кодом и создаваемом на его основе отечественном маршрутом проектирования цифровых СБИС.

Материалы статьи доложены на Российском форуме «Микроэлектроника 2022» (2-8 октября 2022 г., г. Сочи).

Литература

1. Foster H. The weather report: 2018 study on IC/ASIC verification trends // Semiconductor Engineering [Электронный ресурс]. 11.04.2019. URL: https://semiengineering.com/the-weather-report-2018-study-on-ic-asic-verification-trends (дата обращения: 22.05.2023).

2. Farooq U., Mehrez H. Pre-silicon verification using multi-FPGA platforms: A review // J. Electron. Test. 2021. Vol. 37. Iss. 1. P. 7-24. https://doi.org/10.1007/s10836-021-05929-1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Cadence Palladium Z1 enterprise emulation platform // Cadence [Электронный ресурс]. URL: https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/system-design-verification/palladium-z1-ds.pdf (дата обращения: 20.10.2022).

4. Юрлин С. В., Бычков И. Н. Прототипирование на основе ПЛИС для верификации многоядерных микропроцессоров // Проблемы разработки перспективных микро- и наноэлектронных систем (МЭС). 2014. № 4. С. 45-50. EDN: SSZKGH.

5. SinghalM. What is emulation? // Universal Verification Methodology [Электронный ресурс]. 31.10.2016. URL: https://learnuvmverification.com/index.php/2016/10/31/what-is-emulation (дата обращения: 22.05.2023).

6. Zhang K. VPI and DPI // SystemVerilog: RTL Modeling, Simulation and Verification [Электронный ресурс]. URL: https://systemverilog.dev/9.html#9.2 (дата обращения: 22.05.2023).

7. DMA/Bridge subsystem for PCI Express v4.1: product guide // Xilinx [Электронный ресурс]. 16.11.2022. URL: https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/xdma/v4_1/ pg195-pcie-dma.pdf (дата обращения: 22.05.2023).

8. Xilinx DMA IP Reference drivers // GitHub [Электронный ресурс]. URL: https://github.com/Xilinx/ dma_ip_drivers (дата обращения: 22.05.2023).

9. Получение ресурса есть инициализация // CardinalPeak [Электронный ресурс]. URL: https://www.cardinalpeak.com/blog/raii-introduction (дата обращения: 22.05.2023).

10. Gettimeofday speedup // RedHat Enterprise MRG [Электронный ресурс]. URL: https://web.archive.org/web/20160812215344/https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_MRG/1.3/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-General_System_Tuning-gettimeofday_speedup.html (дата обращения: 22.05.2023).

Статья поступила в редакцию 07.03.2023 г.; одобрена после рецензирования 04.05.2023 г.;

принята к публикации 31.05.2023 г.

Информация об авторах

Солодовников Андрей Павлович - аспирант Института микроприборов и систем управления имени Л. Н. Преснухина Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), hepoh@org.miet.ru

Переверзев Алексей Леонидович - доктор технических наук, доцент, директор Института микроприборов и систем управления имени Л. Н. Преснухина, проректор по инновационному развитию Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), pal@olvs.miee.ru

Силантьев Александр Михайлович - начальник научно-исследовательской лаборатории «Энергоэффективные системы на кристалле» Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), silantiev@org.miet.ru

References

1. Foster H. The weather report: 2018 study on IC/ASIC verification trends. Semiconductor Engineering. 11.04.2019. Available at: https://semiengineering.com/the-weather-report-2018-smdy-on-ic-asic-verification-trends (accessed: 22.05.2023).

2. Farooq U., Mehrez H. Pre-silicon verification using multi-FPGA platforms: A review. J. Electron. Test., 2021, vol. 37, iss. 1, pp. 7-24. https://doi.org/10.1007/s10836-021-05929-1

3. Cadence Palladium Z1 enterprise emulation platform. Cadence. Available at: https://www.cadence.com/ content/dam/cadence-www/global/en_US/documents/tools/system-design-verification/palladium-z1-ds.pdf (accessed: 20.10.2022).

4. Yurlin S. V., Bychkov I. N. FPGA prototyping for functional verification of multi-core processors.

Problemy razrabotki perspektivnykh mikro- i nanoelektronnykh sistem (MES) = Problems of Advanced Micro-and Nanoelectronic Systems Development (MES), 2014, no. 4, pp. 45-50. (In Russian). EDN: SSZKGH.

5. Singhal M. What is emulation? Universal Verification Methodology. 31.10.2016. Available at: https://learnuvmverification.com/index.php/2016/10/31/what-is-emulation (accessed: 22.05.2023).

6. Zhang K. VPI and DPI. SystemVerilog: RTL Modeling, Simulation and Verification. Available at: https://systemverilog.dev/9.html#9.2 (accessed: 22.05.2023).

7. DMA/Bridge subsystem for PCI Express v4.1: product guide. Xilinx. 16.11.2022. Available at: https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/xdma/v4_1/pg195-pcie-dma.pdf (accessed: 22.05.2023).

8. Xilinx DMA IP Reference drivers. GitHub. Available at: https://github.com/Xilinx/dma_ip_drivers (accessed: 22.05.2023).

9. Resource acquisition is initialization. CardinalPeak. Available at: https://www.cardinalpeak.com/ blog/raii-introduction (accessed: 22.05.2023). (in Russian).

10. Gettimeofday speedup. RedHat Enterprise MRG. Available at: https://web.archive.org/ web/20160812215344/https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_MRG/1.3/html/ Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-General_System_Tuning-gettimeofday_speedup.html (accessed: 22.05.2023).

The article was submitted 07.03.2023; approved after reviewing 04.05.2023;

accepted for publication 31.05.2023.

Information about the authors

Andrey P. Solodovnikov - PhD student of the Institute of Micro-Devices and Control Systems, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1), hepoh@org.miet.ru

Alexey L. Pereverzev - Dr. Sci. (Eng.), Assoc. Prof., Director of the Institute of MicroDevices and Control Systems, Vice-Rector for Innovative Development, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1), pal@olvs.miee.ru

Alexander M. Silantyev - Head of the Research Laboratory "Energy-efficient systems on a chip", National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1), silantiev@org.miet.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.