Протоколы канала внешней памяти

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

Для FPGA или дюйм/с ASIC, типичные протоколы включают данные о потоковой передаче, данные о потоковом видео и адресуемые передачи данных. Для программного обеспечения типичные протоколы, представленные алгоритму, включают простой буфер данных, с деталями о прерываниях, организации буферизации данных и планировании задач, оставленном базовой ОС.

Сконфигурируйте блок Memory Channel, чтобы поддержать различные протоколы.

Поток AXI4 к программному обеспечению через DMA

Настройка AXI4-Stream Software предоставляет программное обеспечение, передающее протокол потоком. Выберите эту настройку, когда процессор будет действовать как читатель/средство записи к памяти. Этот протокол включает триггерную настройку, которую блок Task Manager получает и читает. Триггер сигнализирует, что буфер памяти готов к записи или чтению. Для получения дополнительной информации о AXI4-потоковом протоколе, смотрите Интерфейс AXI4-Stream.

Поток AXI4 FIFO

AXI4-потоковая настройка предоставляет простым данным допустимый и готовый протокол для потоковой передачи данных. Можно сгенерировать полностью совместимый интерфейс AXI4-Stream из этого протокола с помощью HDL Coder™.

Для каналов потока данных обращение памяти является автоматическим. Канал ответственен за преобразование потока, чтобы буферизовать адреса, как ядро DMA было бы. Отношение потока к управляемым буферам во внешней памяти через ‘конец буферного’ сигнала, известного как tlast для AXI4-потока. Для получения дополнительной информации о AXI4-потоковом протоколе, смотрите AXI4-потоковый Интерфейс.

Потоковое видео AXI4 FIFO

AXI4-потоковое Видео настройка FIFO предоставляет данным допустимый и готовый протокол, подобный Потоку AXI4 FIFO. Этот протокол также имеет дополнительную сигнализацию, чтобы отметить запуск или конец видео строки и запуститься или конец кадра видео. Этот протокол совместим с Rx HDMI и HDMI блоки Tx, доступен с Пакетом Поддержки SoC Blockset™ для Устройств Xilinx®. Можно сгенерировать полностью совместимый AXI-потоковый интерфейс потоковой передачи видео из этого протокола с помощью HDL Coder. Для получения информации о блоках HDMI см. документацию для пакетов поддержки SoC Blockset.

Для каналов данных о потоковом видео обращение памяти является автоматическим. Канал ответственен за преобразование потока, чтобы буферизовать адреса, как ядро DMA было бы. Поток относится к управляемым буферам во внешней памяти через пиксельные сигналы шины управления, которые разграничивают строки и кадры. Для получения дополнительной информации смотрите AXI4-потоковый Видеоинтерфейс.

Потоковый буфер кадра видео AXI4

AXI4-потоковая Буферная настройка Кадра видео обеспечивает ту же сигнализацию как Потоковое Видео AXI4 FIFO с дополнительными управляющими сигналами для синхронизации кадрового буфера. Этот протокол совместим с Rx HDMI и HDMI блоки Tx, доступен с Пакетом Поддержки SoC Blockset для Устройств Xilinx. Можно сгенерировать полностью совместимый AXI-потоковый интерфейс потоковой передачи видео из этого протокола с помощью HDL Coder. Для получения информации о блоках HDMI см. документацию для пакетов поддержки SoC Blockset.

Для каналов данных о потоковом видео обращение памяти является автоматическим. Канал ответственен за преобразование потока, чтобы буферизовать адреса, как ядро DMA было бы. Отношение потока к управляемым буферам во внешней памяти через пиксельные сигналы шины управления, которые разграничивают строки и кадры.

Произвольный доступ AXI4

Настройка AXI4 обеспечивает простой, прямой интерфейс к межсоединению памяти. В отличие от предыдущих двух протоколов потоковой передачи, этот протокол позволяет алгоритму действовать как ведущее устройство памяти путем обеспечения адресам и управлению пакетной передачи непосредственно. Этот протокол представляет упрощенный основной протокол. Можно сгенерировать полностью совместимый интерфейс AXI-4 из этого протокола с помощью HDL Coder. Для получения дополнительной информации об упрощенном интерфейсе AXI4, смотрите Упрощенный Основной Интерфейс AXI4.

Данные о канале и пакеты памяти

Независимо от используемых протоколов не изменяется модель памяти. Данные о канале всегда передаются модели памяти с помощью пакетных транзакций. Для настройки AXI4 алгоритмическая логика ответственна за определение прорванного через сигналы протокола.

Для настроек данных о потоковой передаче параметр Burst Length определяет пакетный размер к памяти и канал, сигнал data задает размер каждой передачи в интерфейсе.

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

Инструкции для установки пакета и буферных параметров

Следующие правила применяются к подготовке пакета и буферизуют размеры. Таблица и хороших и плохих примеров следует.

  1. Пакетная Длина данного интерфейса канала, вычисленного в байтах, должна составить меньше чем 4 096 байтов. Чтобы вычислить пакетный размер в байтах, канал взаимодействует через интерфейс, скалярный тип данных преобразован в байты и затем умножен на Пакетную Длину.

  2. Пакетная Длина может быть установлена выше 256, но предупредит при генерации основанной на AXI целевой платформе. Основанные на AXI системы памяти имеют максимальное пакетное количество удара 256.

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

  4. Buffer Size должен быть целым числом пакетов. Это должно быть верно для обоих пакетный размер средства записи (после преобразования его Пакетной Длины к байтам) и пакетный размер читателя (после преобразования его Пакетной Длины к байтам).

  5. Расчетное количество пакетов в буфере не должно превышать 5000. Это - временное ограничение на основе обработки событий, внутренней к модели памяти. Это может произойти с областями общей памяти, которые имеют большие буферные размеры (такой что касается кадров 1080p видео) и интерфейсы канала, которые задают меньшие пакетные размеры. Обычно с большими кадрами, пакетные размеры около 4 096-байтового предела должны использоваться.

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

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

Установите пакет и буферизуйте параметры на маске блока Memory Channel.

Следующая таблица обеспечивает примеры хороших и плохих наборов параметра.

Разорвите и буферизуйте примеры параметра

Тип данных каналаРазмерности канала Разорвите длину Buffer SizeХороший / ПлохоПочему?
uint8[1 1]10242048ХорошийЭто - простая 8-битная транзакция данных.
uint8[1 3]10242048ХорошийЭта сила представляет пиксель RGB от блока Vision HDL Toolbox. Это преобразовано в 24-битные упакованные данные и дополнено 8 битами, чтобы стать 32-битной шиной tdata к памяти.
fixdt (0,10,0)[1 3]10241024ХорошийЭто преобразовано в 30-битный упакованный пиксель с 2 битами дополнения.
fixdt (0,12,0)[1 3]10241024ПлохоЭто приводит к 36-битному упакованному пикселю, который нарушает текущий предел 32-битного tdata.
uint8[120 160 3]10241024ПлохоСкалярные данные являются 24-битными, дополнены к 32-битному tdata. Длина канала 120*160=19200. Пакетная длина 1 024 равномерно не делится 19200.
uint8[120 160 3]12076800ХорошийСкалярные данные являются 24-битными, дополнены к 32-битному tdata. Длина канала 120*160, и поскольку Пакетная Длина равняется 120, Длина канала является 160 пакетами в размере. Buffer size является точно 1 кадром (120*160*4), как вычислено в байтах.

Смотрите также

Похожие темы