AXI4 (Lite) Разъяснение узкого всплеска против не выровненного разрыва / Совместимость

В настоящее время я пишу мастер AXI4, который должен поддерживать AXI4 Lite (AXI4L).

Мой мастер AXI4 получает данные от 16-битного интерфейса. Это на Xilinx Spartan 6 FPGA, и я планирую использовать EDK AXI4 Interconnect IP, который имеет минимальную ширину WDATA 32 бит.

Сначала я хотел использовать узкий пакет, то есть AWSIZE = x"01" (2 байта в передаче). Однако я обнаружил, что в Справочном руководстве AXI UG761 от Xilinx говорится, что "узкие пакеты [поддерживаются], но [...] не рекомендуются". Предполагается, что невыровненные транзакции поддерживаются.

Это заставило меня задуматься. Скажем, я начинаю взрыв без выравнивания:

  • AWLEN = x "01" (2 удара)
  • AWSIZE = x"02" (4 байта в передаче ")

И сделайте следующее:

AX (32-bit word #0: send hi16)
XB (32-bit word #1: send lo16)

Где A, B - мои 16-битные слова, которые начинаются с не выровненного (выровненного по 2 байта) адреса. X означает, что WSTRB сброшен для указанных 16 бит.

  • Поддерживается ли это или относится к категории "узкий пакет" даже через AWSIZE = x"02" (4 байта при передаче), в отличие от AWSIZE = x"01" (2 байта при передаче)?

Теперь, если бы это было только для AXI4, я бы, вероятно, не заботился бы об этом случае использования, потому что периферийные устройства AXI4 должны использовать сигналы WSTRB. Однако в справочном руководстве AXI UG761 говорится, что "[SXI4L] подчиненный интерфейс может игнорировать WSTRB (допустим, все байты действительны)".

Я читал здесь, что многие (но не все; и нет списка?) Периферийные устройства Xilinx AXI4L предпочитают игнорировать WSTRB.

  • Означает ли это, что мне по существу запрещено делать узкие пакеты ("не рекомендуется"), а также невыровненные пакеты ("WSTRB можно игнорировать") или есть простой способ выгрузить часть работы по реализации из моего мастера в соединяться, гарантируя правильное поведение системы при доступе к периферийным устройствам AXI4L?

1 ответ

Решение

Ваш пример не узкий взрыв, а должен работать.

Причина, по которой узкий пакет не рекомендуется, заключается в том, что он дает неоптимальные характеристики. И узкопакетные, и данные по перестройке стоят в области и не рекомендуются ИМХО. Тем не менее, DRE имеет минимальную стоимость полосы пропускания, в то время как узкий пакет делает. Если ваш порт AXI имеет 32 Мбит / с 100 МГц, максимальная пропускная способность составляет 3,2 ГБ, если вы используете узкий пакет из 16 битов в 50% случаев, тогда ваша максимальная пропускная способность снижается до 2,4 Гбит (32 бит х 50 МГц + 16 бит х 50 МГц). Кроме того, я не уверен, что AXI-Lite поддерживает узкий пакет или преобразование данных.

В вашем примере есть 2 основных недостатка. Во-первых, для передачи 32 бит требуется 3 удара данных, что является худшим результатом, чем узкий пакет (я не думаю, что AXI достаточно умен, чтобы отменить последний пакет с WSTRB равным 0). Во-вторых, вы не можете записать более 2 16-битных данных за раз, что приведет к зависанию производительности вашей инфраструктуры AXI, если у вас есть много данных для передачи.

Лучший способ справиться с этим - объединить 16 бит вместе, чтобы сформировать 32 бита в вашем блоке. Затем вы буферизуете эти 32 бита и разбиваете их, когда вам достаточно. Это высокопроизводительный способ AXI.

Тем не менее, если вы получаете данные в 16-битном формате, вам лучше использовать AXI-Stream, который поддерживает 16-битный формат, но не имеет понятия адресов. Вы можете сопоставить AXI-Stream с AXI-4, используя IP-ядра Xilinx. Это может сделать AXI-Datamover или AXI-DMA. Оба делают то же самое (фактически, AXI-DMA включает в себя перехват данных), но AXI-DMA управляется через интерфейс AXI-Lite, в то время как перехват данных управляется через дополнительные потоки AXI.

В заключение отметим, что ядра Xilinx никогда не требуют узкой серии или DRE. Если вам требуется DRE в AXI-DMA, это выполняется ядром AXI-DMA, а не межсоединением AXI. Кроме того, эти ядра с открытым исходным кодом, так что вы можете проверить, как они работают легко.

Другие вопросы по тегам