140 likes | 448 Views
Верификация интерфейса AXI между универсальной частью и DSP кластером системы-на-кристалле «Эльбрус S2 ». Выполнил: Скрябин Иван, 513 Научный руководитель: Тихорский В.В. Проблемы. Эльбрус. Универсальная часть (УЧ) ЗАО «МЦСТ» core 0, core1 – процессорные ядра «Эльбрус»
E N D
Верификация интерфейса AXI между универсальной частью и DSP кластеромсистемы-на-кристалле «Эльбрус S2» Выполнил: Скрябин Иван, 513 Научный руководитель: Тихорский В.В.
Проблемы Эльбрус Универсальная часть (УЧ) ЗАО «МЦСТ» core 0, core1 – процессорные ядра «Эльбрус» SIC – системный коммутатор AXI Box – контроллер интерфейса AXI Разработка verilog-описания DSP кластера выполнялась другой фирмой одновременно с разработкой универсальной части, поэтому требовались: • Verilog-модель имитатора DSP кластера для ускорения разработки verilog-описания модуля AXI Box и его верификации • Средство проверки корректности реализации протокола AXI • Способ для передачи тестов, выявляющих ошибки в DSP кластере, его разработчикам без необходимости передавать все Verilog-описание УЧ core 0 core 1 SIC AXI Box Интерфейс AXI IO DMA Системные сигналы AXI коммутатор DSP кластер ГУП НПЦ «Элвис» dsp 0 dsp 1 dsp 2 dsp 3
Постановка задачи Разработать: • Имитатор DSP кластера, включающий master и slave устройства с интерфейсом AXI • Модуль, проверяющий корректность реализации протокола AXI (AXI checker) • Модуль-монитор для отображения информации о транзакциях через интерфейс AXI (AXI monitor) • Модуль записи и воспроизведения временных диаграмм AXI для передачи разработчикам DSP кластера информации об ошибках core 0 core 1 Универсальная часть SIC monitor/ checker monitor/ checker AXI Box IO DMA DSP emulator axi slave AXI коммутатор axi master DSP кластер dsp 0 dsp 1 dsp 2 dsp 3 AXI системные сигналы
Недостатки существующих решений для верификации AXI • Излишняя сложность: • Поддержка большого набора протоколов • Поддержка совместимости с разными языками описания оборудования и симуляторами • Введение дополнительных уровней абстракции (методологии VMM/OVM, использование языка описания аппаратуры SystemVerilog) • Не бесплатные – зашифрованный код
Недостатки существующих решений для верификации AXI • DesignWare AMBA/AXIVerification IPSuite (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 было принято решение реализовать: • Все базовые возможности • Следующие дополнительные возможности: • «Узкая передача» - размер передачи меньше размера шины данных • Чтение/запись по не выровненному относительно размера передачи адресу • Интерливинг по чтению/записи
Имитатор DSP кластера Решения Реализован дружественный пользовательский интерфейс (управление с помощью вызовов функций) Введение буферов FIFO со случайной задержкой в заданном интервале на всех каналах Мультиплексор, позволяющий задать случайный или фиксированный приоритет Логика, контролирующая пересечения между всеми запросами на чтение/запись в очередях устройства Задачи • Простота в использовании • Имитация задержек в реальном устройстве • Поддержка различных приоритетов между чтением/записью при доступе к памяти • Возможность отслеживать конфликты между чтением и записью aw buffer FIFO MIN:MAX memory_mux ar buffer Collision logic
Схема модуля имитатора DSP кластера AXI Master (DMA обмен) AXI Slave (IO обмен) master_writer slave_writer do_write() … buffer FIFO FIFO buffer AW FIFO FIFO W memory_reader FIFO FIFO B memory memory Collision logic memory_mux memory_mux Collision logic set_mem() … slave_reader memory_reader master_reader do_read() … buffer FIFO FIFO buffer AR FIFO FIFO R
Применение имитатора DSP кластера для верификации Реализовано два способа управления имитатором: • Непосредственно из verilog описания – удобно для массового тестирования с произвольными параметрами запросов • Из командного файла – удобно при разработке, так как не требуется перекомпиляция модулей Алгоритм верификации на примере DMA обмена На каждом шаге: • Выбор случайного адреса в памяти • Последовательное выполнение команд записи и чтения со случайными параметрами передачи по этому адресу • Сравнение считанных и эталонных данных
AXI checker / monitor Существующий модуль AXI protocol checker от ARM не позволял прозрачно связать передаваемые данные с адресами и формировал недостаточно полную информацию о транзакциях Доработки: • Каждому запросу присваивается уникальный идентификатор для прозрачной связи данных с адресами • Вычисление адреса для данныхчтения/записи • Вычисление информация обактивных стробах для «узких» операций чтения RIdCam WBurstCam RLenCam WCountCam RExclCam Checker logic WLastCam AXI WAddrCam BRespCam Monitor logic RUidCam WUidCam RSizeCam RAddrAlCam - ассоциативная память с информацией о транзакциях
Модули записи и воспроизведения временных диаграмм AXI • Адаптер разделяет сигналы взаимодействия на входные и выходные относительно DSP кластера • Модули recorder сохраняют временные диаграммы входных и выходных сигналов в файлах • Эти файлы и модуль для воспроизведения AXI player передаются ГУП НПЦ «Элвис» • Модуль player воспроизводит значения входных сигналов • Модуль comparator сравнивает отклик от DSP кластера с записанными значениями выходными сигналов. Несовпадение означает использование разных версий DSP кластера при записи и воспроизведении ЗАО «МЦСТ» core 0 core 1 SIC AXI Box IN recorder recorder player adapter OUT AXI recorder AXI коммутатор AXI коммутатор dsp0 dsp1 dsp2 dsp3 dsp0 dsp1 dsp2 dsp3 ГУП НПЦ «Элвис» IN adapter comparator OUT AXI player
Модули записи и воспроизведения временных диаграмм AXI • Запись сигналов - по фронту синхросигнала • Точное воспроизведение – с помощью неблокирующего присваивания Verilog, выполняемого на такт раньше, чем запись этих сигналов • Сравнение – по фронту синхросигнала CLK IN OUT IN OUT
Результаты работы • Разработано Verilog-описание имитатора DSP кластера. • Доработан Verilog-модуль AXI Protocol Checker от ARM: добавлена возможность получения подробной информации о всех транзакциях через интерфейс AXI • Разработано Verilog-описание модуля записи и воспроизведения временных диаграмм AXI для передачи разработчикам DSP кластера информации об ошибках • Разработанные средства были своевременно переданы разработчикам универсальной части, что позволило сократить время разработки контроллера интерфейса AXI примерно на месяц