Опубликован: 19.04.2025 | Доступ: свободный | Студентов: 1 / 0 | Длительность: 07:05:00
Лекция 11:

Подключение периферийных устройств и расширение системы

Возможные значения ответа в канале ответа на запись:

OKAY (0b00): Обычный доступ завершен успешно. Указывает, что обычный доступ был выполнен успешно.

EX_OKAY (0b01): Исключительный доступ в порядке.

SLVERR (0b10): Ошибка ведомого устройства. Соединение с подчиненным устройством было достигнуто успешно, но подчиненное устройство хочет вернуть исходному ведущему устройству сообщение об ошибке (например, недопустимые считанные данные).

DECERR (0b11): Ошибка декодирования. Генерируется, как правило, компонентом арбитром шины, чтобы указать, что по адресу транзакции нет подчиненного устройства.

Примечание: Транзакции чтения также имеют значение ответа, но этот ответ передается в канале как часть ответа на чтение.

В спецификации AXI4 задокументированы некоторые требования. Ключевые требования следующие:

  • выставлен сигнал VALID (AxVALID/ VALID), он должен оставаться высоким до положительного фронта тактового сигнала, после выставления ведомым сигналов AxREADY/xREADY;
  • сигнал READY интерфейса AXI, передающей стороны, не должен зависеть от сигнала READY интерфейса AXI, принимающей стороны. Однако состояние сигнала READY может зависеть от сигнала VALID;
  • ответ на запись всегда должен следовать за последней передачей записи в транзакции записи, частью которой он является;
  • данные для чтения всегда должны следовать за адресом, к которому относятся данные;
  • ведомый должен дождаться пока оба сигнала как ARVALID, так и ARREADY будут выставлены, прежде чем он выставит RVALID, чтобы указать, что данные действительны.

Каналы являются носителями транзакций по каналам. AXI4 реализует 5 каналов:

  • Адрес для чтения - AR - канал от ведущего к подчиненному;
  • Данные для чтения: - R - канал от ведомого к ведущему;
  • Адрес для записи - AW - канал от ведущего к подчиненному;
  • Данные для записи - W - канал от ведущего к подчиненному;
  • Ответ на запись - B - канал от ведомого устройства к ведущему.

Каждый канал соответствует правилам канального протокола. Возможны варианты только для чтения и записи. Это достигается путем реализации только каналов, необходимых конкретному устройству. Спецификация AXI также определяет протокол AXI4-Lite, который устанавливает более строгие правила для транзакций, генерируемых ведущим устройством. К ведущему устройству AXI4-Lite может быть подключено любое подчиненное устройство AXI4, однако к подчиненным устройствам AXI4-Lite могут быть подключены только ведущие устройства AXI4, следующие правилам AXI4-Lite.

Правила протокола

Каждый канал имеет сигнал готовности/подтверждения (VALID/READY) и сигналы полезной нагрузки.

Каналы имеют свое направление, которое соответствует направлению сигнала VALID. Приемная сторона оперирует сигналом готовности READY, которое противоположно сигналу VALID. Для каждого канала требуется, чтобы было подтверждено значение VALID, сигнализирующее о начале транзакции по каналу. Принимающая сторона подтверждает сигнал READY, чтобы сообщить ведущему каналу, что транзакция по каналу принята и можно запускать следующую транзакцию по каналу. Транзакция по одному каналу определяется как выставление данных, стробируемых сигналом VALID, подтверждение приема определяется по сигналу READY, выставленному приемной стороной - на этом цикл обмена по шине считается завершённым. Сигналы полезной нагрузки канала (данных) не должны изменяться, пока транзакция активна, и сигналVALID не должен зависеть от значения сигнала READY. VALID не может быть отменен до тех пор, пока не будет подтвержден READY.

Пример трех циклов транзакций

Рис. 11.6. Пример трех циклов транзакций

Преимущества разделения групп сигналов на каналы заключаются в упрощении пересечения доменов синхронизации, питания и сброса, а также в разделении регистров ("разделении периодов"). Это также дополнительно проясняет соотношение сигналов, поскольку разные каналы имеют разные допустимые сигналы и префиксы, трудно случайно неправильно понять, какие сигналы допустимы на каком этапе.

Сигналы AXI4

AXI4 требует, чтобы интерфейс реализовывал ACLK, который передает тактовый сигнал, и требовал, чтобы сигналы в каждом канале были действительны на восходящем фронте этого тактового сигнала. Также требуется реализовать ARESETn, который при низком уровне сигнала сбрасывает сигналы. Пока выполняется сброс, и через один цикл после сброса требуется понизить уровень сигналов допустимости/готовности всех каналов.

Таблица 11.1. Сигналы каналов AW/AR от ведущего к ведомому
Канал AW, название сигнала Канал AR, название сигнала Описание
AWVALID ARVALID Сигналы стробирования/подтверждения приема
AWREADY AWVALID
AWID ARID Идентификатор несущей
AWADDR ARADDR Генерация адреса транзакции и сигналов, связанных с ним и параметрами транзакции
AWLEN ARLEN
AWSIZE ARSIZE
AWBURST ARBURST
AWPROT ARPROT
AWLOCK ARLOCK Сигналы атомарных операций
AWCACHE ARCACHE Сигналы кеширования
Таблица 11.2. Сигналы канала записи (W) - от ведущего к ведомому
Сигнал Описание
WVALID Стробирующие/подтверждающие сигналы
WREADY
WDATA Запись данных
WSTRB Строб записи (активный уровень - высокий)
WLAST Signals last channel transaction for this transaction
Таблица 11.3. Сигналы канала B - от ведомого к ведущему
Сигнал Описание
BVALID Стробирующие/подтверждающие сигналы
BREADY
BID Описание несущей
BRESP Ответ
Таблица 11.4. Сигналы канала R - от ведомого к ведущему
Сигнал Описание
RVALID Стробирующие/подтверждающие сигналы
RREADY
RID Идентификатор
RDATA Данные ответа
RRESP Строб ответа
RLAST Сигнал последней транзакции по каналу

Запросы на чтение

Запросы на чтение AXI4 поступают по каналам AR и R. Канал AR используется ведущим устройством для отправки запросов на чтение подчиненному устройству. Ведущий сначала устанавливает сигналы канала AR, такие как RADDR, ARSIZE, ARBURST ARLEN и другие сигналы.

Затем выставляется сигнал ARVALID, сигнализирующий о запуске новой транзакции. Ведомое устройство подтверждает, что транзакция готова, сообщая ведущему устройству, что транзакция принята, и ответ будет возвращен по каналу R. Подчиненный после завершения цикла принимает транзакцию по каналу AR и устанавливает сигналы по каналу R, такие как RRESP, RDATA и RID (рис.11.2).