Верификация интерфейса AXI между универсальной

advertisement
Верификация интерфейса 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 примерно на
месяц
Download