MPSU / SoCDC_RTL_2024

Задание RTL и RTL Pro треков хакатона SoC Design Challenge 2024

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AXI4-Lite Interconnect

AXI4-Lite Interconnect — это интерконнект, основанный на стандарте AXI4-Lite. Проект написан для хакатона SoC Design Challenge 2024 года трека RTL и RTL PRO. Референсный дизайн интерконнекта спроектирован в упрощенном варианте с добавленным приоритетом транзакций.

readme_interconnect_schem

Основные характеристики

  • Основан на стандарте AXI4-Lite. Подробнее о семействае стандартов в этом документе.
  • Тестовая конфигурация 20 master и 12 slave.
  • Добавлены сигналы ar_qos и aw_qos для указания приоритета транзакций.
  • Настроенное окружение под верификацию.
  • Написан на SystemVerilog с использованием интерфейсов. Об интерфейсах можно прочитать тут.

Содержимое репозитория

Директория Описание
doc Документация на проект
rtl Исходные коды ядра интерконнекта
dv Верификационное окружение
scripts Скрипты для создания проекта в Vivado

Задание

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

Предлагаемый интерконнект основан на стандарте AXI4-Lite, но имеет существенное отличие: для каждой транзакции, независимо от того, с какого master она сформирована, выставляется приоритет с точки зрения арбитража. За передачу приоритетов отвечает сигнал ar_qos для чтения и сигнал aw_qos записи. Чем больше значение в этом поле, тем более приоритетна транзакция при арбитраже для доступа к slave.

Учет приоритетов транзакций заложен в критерии оценивания и отражает уникальность задания, которое предстоит решить участникам.

В реализуемой конфигурации интерконнект использует 20 портов для master и 12 портов для slave. Референсная реализация, будучи функционально рабочей, не обеспечивает оптимальную реализацию даже без учета приоритета транзакций. Не будет ошибкой сказать, что это очень плохая реализация, которую необходимо улучшать и дорабатывать. Если совсем непонятно, о чем идет речь, то настоятельно рекомендуется ознакомиться с документом, поясняющим базовое устройство, назначение и принцип работы интерконнекта.

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

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

readme_wave

Работа с проектом

Нюансы выполнения описанных ниже пунктов можно узнать в документации, доступной в репозитории.

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

Если вы внесли изменение в проект и решили, что они верные, то вам необходимо провести следующие действия:

  • Запустите верификацию вашего решения с использованием предоставленного окружения в виртуальной машине и узнайте текущие значения метрик. Вы можете узнать, как это сделать, в соответствующей документации. Проверьте, что проект прошел тест без ошибок. Если нашли ошибки, то вернитесь к исправлению кода. Кроме того, при запуске верификационного окружения можно проверить, как обрабатываются пакеты с различным приоритетом, проанализировав временную диаграмму и логи симуляции.
  • Сделайте commit со своим решением в репозиторий и запустите проверку закрытого теста через CI. Подробнее об этом тут Получите метрики по задержке и пропускной способности. Для подробной информации по работе с gitlab-ом рекомендуется ознакомиться со следующим материалом.
  • Запустите имплементацию проекта в Vivado через скрипт или GUI. Настоятельно рекомендуется ознакомиться с материалом по работе со скриптами перед попыткой запуска чего-либо. Проверьте, что синтез прошел без ошибок. Получите результаты по частоте и площади. При возникновении вопросов в процессе работы в графической оболочке Vivado, рекомендуется ознакомиться с соответсвующим материалом.
  • Проверьте, что полученный netlist после синтеза в Vivado проходит тест. Если тест не пройдет после синтеза, значит RTL описание проекта содержит ошибки или синтезируемые конструкции. Изучайте предупреждения в Vivado, чтобы найти проблемы. Важно! Результат решения, не проходящий тест после синтеза, не принимается к оцениванию.

Отметим, что не обязательно выполнять эти шаги строго последовательно, некоторые из них можно делать параллельно.

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

Удачи в решении задачи! У вас все получится!

About

Задание RTL и RTL Pro треков хакатона SoC Design Challenge 2024


Languages

Language:SystemVerilog 90.1%Language:Tcl 4.1%Language:Makefile 1.6%Language:Python 1.5%Language:Shell 1.4%Language:Verilog 0.7%Language:Forth 0.7%