Верификация интерфейса AXI между универсальной частью и DSP кластером системы-на-кристалле «Эльбрус S2» Выполнил: Скрябин Иван, 513 Научный руководитель: Тихорский В.В. Проблемы Эльбрус core 0 core 1 Универсальная часть (УЧ) ЗАО «МЦСТ» core 0, core1 – процессорные ядра «Эльбрус» SIC – системный коммутатор AXI Box – контроллер интерфейса AXI SIC AXI Box IO DMA Интерфейс AXI Системные сигналы AXI коммутатор dsp 0 dsp 1 dsp 2 dsp 3 DSP кластер ГУП НПЦ «Элвис» Разработка verilog-описания DSP кластера выполнялась другой фирмой одновременно с разработкой универсальной части, поэтому требовались: Verilog-модель имитатора DSP кластера для ускорения разработки verilogописания модуля AXI Box и его верификации Средство проверки корректности реализации протокола AXI Способ для передачи тестов, выявляющих ошибки в DSP кластере, его разработчикам без необходимости передавать все Verilog-описание УЧ Постановка задачи core 0 core 1 Универсальная часть SIC AXI Box monitor/ checker DMA monitor/ checker IO Разработать: Имитатор DSP кластера, включающий master и slave устройства с интерфейсом AXI Модуль, проверяющий корректность реализации протокола AXI (AXI checker) Модуль-монитор для отображения информации о транзакциях через интерфейс AXI (AXI monitor) Модуль записи и воспроизведения временных диаграмм AXI для передачи разработчикам DSP кластера информации об ошибках AXI коммутатор axi slave DSP emulator dsp 0 dsp 1 axi master DSP кластер dsp 2 dsp 3 AXI системные сигналы Недостатки существующих решений для верификации AXI • Излишняя сложность: – Поддержка большого набора протоколов – Поддержка совместимости с разными языками описания оборудования и симуляторами – Введение дополнительных уровней абстракции (методологии VMM/OVM, использование языка описания аппаратуры SystemVerilog) • Не бесплатные – зашифрованный код Недостатки существующих решений для верификации AXI DesignWare AMBA/AXI Verification IP Suite (Synopsys) – Необходим САПР моделирования VCS Native Testbench или Vera – Излишняя сложность тестового окружения – Использование сложной VMM методологии AMBA 3 AXI nVS (nSys) – Излишняя сложность тестового окружения Questa Multi-View Verification Component Library (Mentor Graphics) – Необходим САПР моделирования Questa MVC – Использование сложной OVM методологии Incisive Verification IP for AMBA Protocols (Cadence) – Использование сложной OVM методологии Имитатор DSP кластера В результате анализа возможностей интерфейса AXI было принято решение реализовать: 1. Все базовые возможности 2. Следующие дополнительные возможности: «Узкая передача» - размер передачи меньше размера шины данных Чтение/запись по не выровненному относительно размера передачи адресу Интерливинг по чтению/записи Имитатор DSP кластера Задачи Решения • Простота в использовании • Реализован дружественный пользовательский интерфейс (управление с помощью вызовов функций) • Имитация задержек в реальном устройстве • Введение буферов FIFO со случайной задержкой в заданном интервале на всех каналах • Поддержка различных приоритетов между чтением/записью при доступе к памяти • Мультиплексор, позволяющий задать случайный или фиксированный приоритет • Возможность отслеживать конфликты между чтением и записью • Логика, контролирующая пересечения между всеми запросами на чтение/запись в очередях устройства MIN:MAX FIFO memory_mux aw buffer Collision logic ar buffer Схема модуля имитатора DSP кластера AXI Master (DMA обмен) AXI Slave (IO обмен) master_writer do_write() … buffer memory_reader FIFO AW FIFO FIFO W FIFO FIFO B FIFO memory Collision logic buffer slave_writer memory memory_mux memory_mux Collision logic set_mem() … memory_reader do_read() … buffer FIFO AR FIFO buffer master_reader FIFO R FIFO slave_reader Применение имитатора DSP кластера для верификации Реализовано два способа управления имитатором: Непосредственно из verilog описания – удобно для массового тестирования с произвольными параметрами запросов Из командного файла – удобно при разработке, так как не требуется перекомпиляция модулей Алгоритм верификации на примере DMA обмена На каждом шаге: 1. Выбор случайного адреса в памяти 2. Последовательное выполнение команд записи и чтения со случайными параметрами передачи по этому адресу 3. Сравнение считанных и эталонных данных AXI checker / monitor Существующий модуль AXI protocol checker от ARM не позволял прозрачно связать передаваемые данные с адресами и формировал недостаточно полную информацию о транзакциях Доработки: • Каждому запросу присваивается уникальный идентификатор для прозрачной связи данных с адресами • Вычисление адреса для данных чтения/записи • Вычисление информация об активных стробах для «узких» операций чтения RIdCam WBurstCam RLenCam WCountCam RExclCam WLastCam Checker logic Monitor logic RUidCam WAddrCam AXI BRespCam WUidCam RSizeCam RAddrAlCam ассоциативная память с информацией о транзакциях - Модули записи и воспроизведения временных диаграмм AXI • • • ЗАО «МЦСТ» core 0 core 1 SIC AXI Box recorder IN recorder OUT adapter • Адаптер разделяет сигналы взаимодействия на входные и выходные относительно DSP кластера Модули recorder сохраняют временные диаграммы входных и выходных сигналов в файлах Эти файлы и модуль для воспроизведения AXI player передаются ГУП НПЦ «Элвис» Модуль player воспроизводит значения входных сигналов Модуль comparator сравнивает отклик от DSP кластера с записанными значениями выходными сигналов. Несовпадение означает использование разных версий DSP кластера при записи и воспроизведении AXI коммутатор AXI recorder dsp0 dsp1 dsp2 dsp3 ГУП НПЦ «Элвис» player comparator IN OUT AXI player adapter • AXI коммутатор dsp0 dsp1 dsp2 dsp3 Модули записи и воспроизведения временных диаграмм AXI • Запись сигналов - по фронту синхросигнала • Точное воспроизведение – с помощью неблокирующего присваивания Verilog, выполняемого на такт раньше, чем запись этих сигналов • Сравнение – по фронту синхросигнала CLK IN OUT IN OUT Результаты работы • Разработано Verilog-описание имитатора DSP кластера. • Доработан Verilog-модуль AXI Protocol Checker от ARM: добавлена возможность получения подробной информации о всех транзакциях через интерфейс AXI • Разработано Verilog-описание модуля записи и воспроизведения временных диаграмм AXI для передачи разработчикам DSP кластера информации об ошибках • Разработанные средства были своевременно переданы разработчикам универсальной части, что позволило сократить время разработки контроллера интерфейса AXI примерно на месяц