Memory Channel

Потоковые данные через канал памяти

  • Библиотека:
  • SoC Blockset / Память

Описание

Потоковые данные о блоке Memory Channel через внешнюю память. Концептуально, это моделирует передачу данных между одним алгоритмом и другим через общую память. Алгоритм может быть аппаратной логикой (HW), модель процессора или устройства ввода-вывода. Алгоритм средства записи запрашивает доступ к памяти от блока Memory Controller. После того, как доступ предоставляется записи алгоритма средства записи к буферу памяти. В модели хранение данных моделируется как буферы в канале. При развертывании на оборудовании данные направляются к внешней общей памяти.

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

  • AXI4-Stream to Software via DMA – Смоделируйте связь между аппаратной логикой и программной задачей через внешнюю память. Средство записи помещает данные в канал с помощью упрощенного потокового протокола MathWorks® AXI, и читатель получает данные из интерфейса драйвера DMA. Канал моделирует datapath и программный стек той связи включая FIFO, механизм DMA, взаимосвязанную и внешнюю память, прерывания, организацию буферизации данных ядра драйвера DMA и передачи данных к программной задаче. Для получения дополнительной информации об упрощенном потоковом протоколе MathWorks AXI, смотрите AXI4-потоковый Интерфейс.

    Это изображение является концептуальным представлением блока Memory Channel, передавая данные потоком от алгоритма FPGA до алгоритма процессора.

    Conceptual view of Memory Channel block, streaming data from an
                                FPGA Algorithm, through a FIFO, to memory. The data stream is then
                                read by the processor via a DMA Driver block.

  • AXI4-Stream FIFO – Смоделируйте связь между двумя алгоритмами FPGA через внешнюю память. Средство записи помещает данные в канал, когда ведущее устройство, использующее MathWorks, упростило потоковый протокол AXI, и читатель получает данные из канала как ведомое устройство с помощью того же протокола. Канал ведет себя как память метода "первым пришел - первым вышел" (FIFO). Канал моделирует datapath связи. Блок Memory Channel включает промежуточный пакетный уровень FIFO, механизм DMA, межсоединение и внешняя память. Сама внешняя память управляема как кольцевой буфер, где буфер должен быть записан, прежде чем он сможет быть считан. Для получения дополнительной информации об упрощенном потоковом протоколе MathWorks AXI, смотрите AXI4-потоковый Интерфейс.

    Это изображение является концептуальным представлением блока Memory Channel, передавая данные потоком от одного алгоритма FPGA до другого алгоритма FPGA.

    Conceptual view of Memory Channel block, streaming data from an
                                FPGA Algorithm, through a FIFO, to memory. The data stream is then
                                read by a receiving FPGA algorithm from the memory through a DMA
                                Controller and a FIFO.

  • AXI4-Stream Video FIFO – Смоделируйте связь между двумя аппаратными алгоритмами через внешнюю память. Эта структура канала похожа на настройку AXI4 Stream FIFO, но средство записи и читатель используют MathWorks, передающий пиксельный протокол потоком, наряду с сигналом противодавления. Для получения дополнительной информации смотрите AXI4-потоковый Видеоинтерфейс.

  • AXI4-Stream Video Frame Buffer – Смоделируйте связь между двумя аппаратными алгоритмами через внешнюю память, с помощью полных буферов видеокадра. Протоколом является MathWorks, передающий пиксельный протокол потоком с противодавлением. Кроме того, читатель может гарантировать, что кадровый буфер синхронизируется с нисходящими видео синхронизациями путем утверждения сигнала протокола FSYNC. datapath включает видео DMA (VDMA), механизм и буферы внешней памяти управляемы как кольцевой буфер полных видеокадров. Структура канала идентична структуре типа канала AXI4 Stream FIFO.

  • AXI4-Random Access – Смоделируйте связь между двумя аппаратными алгоритмами через внешнюю память, с помощью MathWorks упрощенный AXI4-основной протокол. И средство записи и читатель являются ведущими устройствами, канал является ведомым устройством в обоих случаях. Внешняя память неуправляема (нет никаких логических буферов и никакого кольцевого буфера). Это до читателя и средства записи, чтобы скоординировать синхронизацию на доступах, чтобы гарантировать целостность данных. Для получения дополнительной информации смотрите Упрощенный Основной Интерфейс AXI4

    Это изображение является концептуальным представлением блока Memory Channel с произвольным доступом к памяти для записи и произвольным доступом к памяти для чтения.

Для получения дополнительной информации о доступных протоколах см. Протоколы Канала Внешней памяти.

Порты

Входной параметр

развернуть все

Управляйте данными от производителя данных к подсистеме памяти.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Этот порт представляет протокол от производителя данных к каналу памяти. Проверки блока Memory Channel этот сигнал при использовании wrData. Сигналы на шине зависят от Channel type параметр. Используйте блок SoC Bus Creator, чтобы создать эту шину управления. Для получения дополнительной информации о типах шины, см. Протоколы Канала Внешней памяти.

Настройка типа каналаТип шины
AXI4-Stream to Software via DMAStreamM2SBusObj
AXI4 Stream FIFOStreamM2SBusObj
AXI4 Stream Video FIFOpixelcontrol
AXI4 Stream Video Frame Bufferpixelcontrol
AXI4 Random AccessWriteControlM2SBusObj

Типы данных: StreamM2SBusObj | pixelcontrol | WritecontrolM2SBusObj

Шина от потребительского блока данных, сигнализируя, что это готово принять считанные данные. Для протоколов потоковой передачи rdCtrlIn является сигналом противодавления от потребителя данных с блоком канала памяти. Для протокола AXI4 Random Access это - запрос чтения от читателя. Сигналы на шине зависят от Channel type параметр. Используйте блок SoC Bus Creator, чтобы создать эту шину управления.

Настройка типа каналаТип шины
AXI4-Stream to Software via DMAСообщение, несущее Boolean
AXI4 Stream FIFOStreamS2MBusObj
AXI4 Stream Video FIFOStreamVideoS2MBusObj
AXI4 Stream Video Frame BufferStreamVideoFSyncS2MBusObj
AXI4 Random AccessReadControlM2SBusObj

Примечание

Если потребитель данных является процессором, эту шину несут на сообщении от процессора, и именем порта является rdDone. Для получения дополнительной информации о сообщениях см. сообщения (Simulink).

Типы данных: Boolean | StreamS2MBusObj | StreamVideoS2MBusObj | StreamVideoFSyncS2MBusObj | ReadControlM2SBusObj

Этот порт сообщения получает управляющие сообщения от связанного блока Memory Controller что требуемая пакетная завершенная транзакция. Соедините выходной сигнал burstDone от блока Memory Controller до этого порта. Для получения дополнительной информации о сообщениях см. сообщения (Simulink).

Типы данных: BurstRequest2BusObj

Этот порт сообщения получает управляющие сообщения от связанного блока Memory Controller что требуемая пакетная завершенная транзакция. Соедините выходной сигнал burstDone от блока Memory Controller до этого порта. Для получения дополнительной информации о сообщениях см. сообщения (Simulink).

Типы данных: BurstRequest2BusObj

Вывод

развернуть все

Эта шина содержит данные, считанные из канала памяти.

Примечание

Когда соединено с подсистемой процессора, этот порт отправляет выходные данные, как сообщение, со связанным блоком Stream Read. Для получения дополнительной информации о сообщениях см. сообщения (Simulink).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | SoCData

Управляющий сигнал от канала до потребителя данных. Его содержимое зависит от Channel type параметр. Соедините этот сигнал с потребителем данных. Используйте блок SoC Bus Selector, чтобы разделить сигнал от шины.

Настройка типа каналаТип шины
AXI4-Stream to Software via DMArteEvent
AXI4 Stream FIFOStreamM2SBusObj
AXI4 Stream Video FIFOpixelcontrol
AXI4 Stream Video Frame Bufferpixelcontrol
AXI4 Random AccessReadControlS2MBusObj

Примечание

Когда соединено с подсистемой процессора, этот порт отправляет выходные данные, как сообщение, со связанным блоком Task Manager. Для получения дополнительной информации о сообщениях см. сообщения (Simulink).

Типы данных: StreamM2SBusObj | ReadControlS2MBusObj | pixelcontrol | rteEvent

Эта шина представляет шину протокола от канала памяти до производителя данных. Сигналы на шине зависят от Channel type параметр. Используйте блок SoC Bus Selector, чтобы разделить сигнал от шины.

Настройка типа каналаТип шины
AXI4-Stream to Software via DMAStreamS2MBusObj
AXI4 Stream FIFOStreamS2MBusObj
AXI4 Stream Video FIFOStreamVideoS2MBusObj
AXI4 Stream Video Frame BufferStreamVideoS2MBusObj
AXI4 Random AccessWriteControlS2MBusObj

Типы данных: StreamS2MBusObj | WriteControlS2MBusObj | StreamVideoS2MBusObj

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

Типы данных: BurstRequestBusObj

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

Типы данных: BurstRequestBusObj

Параметры

развернуть все

Это свойство доступно только для чтения.

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

Чтобы узнать больше о параметрах конфигурации, см. проект FPGA (каналы мадам).

Это свойство доступно только для чтения.

Этот параметр показывает ссылку на информацию о реализации, характерную для модели. Щелкните по ссылке, чтобы просмотреть информацию (открывается в новом окне).

Основной

Задайте протокол для канала. Выберите одно из следующих значений:

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

  • Поток AXI4 FIFO

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

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

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

Для получения дополнительной информации о протоколах канала памяти см. Протоколы Канала Внешней памяти.

Это свойство доступно только для чтения.

Размер в байтах области. Это значение вычисляется как количество буферов, умноженных на buffer size.

Пример: Если Buffer size 1024, и номер буферов определяется к 8, то размер области 8192.

Задайте размер в байтах каждого буфера в области.

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

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

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

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

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

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

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

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

Разорвитесь и Буферные примеры параметра

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

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

  • Определение 1 – С одним буфером доступом управляют, чтобы гарантировать, что буфер записан, затем это читается, затем следующий буфер записан и так далее.

  • Определение 2: С двумя буферами доступ к памяти переключается в назад и вперед шаблон. Средство записи пишет первый буфер, затем, в то время как читатель читает его, средство записи может записать второй буфер.

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

Усовершенствованный

Длина пакетов для этой связи на шине памяти в модулях скалярных данных. Скалярный модуль является упакованным типом данных. Задайте пакетный размер и для Writer и для доступа Reader к каналу.

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

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

При установке пакетной длины необходимо рассмотреть Buffer size (байты) параметр.

Зависимости

Этот параметр не отображается, когда Channel type установлен в AXI4 Random Access.

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

Зависимости

Этот параметр не отображается, когда Channel type установлен в AXI4 Random Access.

Выберите это поле, чтобы использовать ту же соединительную установку в читателе и средстве записи этого канала. Очистите поле, чтобы настроить различные настройки для читателя и средства записи. Очистка Reader/Writer use same values позволяет вам вводить значение для стороны средства записи и значение для стороны читателя для следующих параметров:

  • FIFO depth (number of bursts)

  • Almost-full depth

  • Clock Frequency (MHz)

  • Data width (bits)

Зависимости

Этот параметр не отображается, когда Channel type установлен в AXI4 Random Access.

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

Зависимости

  • Чтобы включить этот параметр, снимите флажок Use hardware board settings.

  • Когда Reader/Writer use same values очищен, существует два текстовых поля: один для Writer и один для Reader.

  • Этот параметр не отображается, когда Channel type установлен в AXI4 Random Access.

Задайте номер, который утверждает сигнал противодавления от канала до источника данных. Чтобы постараться не пропускать данные, установите высокий водяной знак, позволив производителю данных достаточно времени, чтобы реагировать на противодавление. Этот номер должен быть меньшим, чем глубина FIFO.

Зависимости

  • Чтобы включить этот параметр, снимите флажок Use hardware board settings.

  • Когда Reader/Writer use same values очищен, существует два текстовых поля: один для Writer и один для Reader.

  • Этот параметр не отображается, когда Channel type установлен в AXI4 Random Access.

Частота основного datapath взаимосвязанному контроллеру в МГц.

Зависимости

  • Чтобы включить этот параметр, снимите флажок Use hardware board settings.

  • Когда Reader/Writer use same values очищен, существует два текстовых поля: один для Writer и один для Reader.

  • Этот параметр не отображается, когда Channel type установлен в AXI4 Random Access.

Ширина данных основного datapath, чтобы соединить контроллер в битах.

Зависимости

  • Чтобы включить этот параметр, снимите флажок Use hardware board settings.

  • Когда Reader/Writer use same values очищен, существует два текстовых поля: один для Writer и один для Reader.

Атрибуты сигнала

Запишите данные сигнал

wrData может быть многомерным массивом. Задайте размерность для массива в целом номер.

Пример: 1 – скалярная выборка.

Пример: [10 1] – вектор десяти скаляров.

Пример: [1080 1920 3] – система координат на 1 080 пунктов. Система координат включает 1 080 линий 1 920 пикселей на строку, и каждый пиксель представлен тремя значениями (для красного, зеленого и синего цвета).

Задайте тип данных порта wrData. Для справки нажмите кнопку .... Это расширяет меню и показывает Data Type Assistant.

Задайте дискретное время, в которое блок принимает входные данные в секундах.

Считайте сигнал данных

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

rdData может быть многомерным массивом. Задайте размерность для массива в целом номер.

Пример: 1 – скалярная выборка.

Пример: [10 1] – вектор десяти скаляров.

Пример: [1080 1920 3] – система координат на 1 080 пунктов. Система координат включает 1 080 линий 1 920 пикселей на строку, и каждый пиксель представлен тремя значениями (для красного, зеленого и синего цвета).

Зависимости

Чтобы включить этот параметр, снимите флажок Output data signal matches input.

Задайте тип данных порта rdData. Для справки нажмите кнопку .... Это расширяет меню и показывает Data Type Assistant.

Зависимости

Чтобы включить этот параметр, снимите флажок Output data signal matches input.

Задайте дискретное время, в которое блок принимает входные данные в секундах.

Зависимости

Чтобы включить этот параметр, снимите флажок Output data signal matches input и установите Channel type как AXI4 Random Access.

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

Примечание

Если и читатель и средство записи используют структурированные сигналы, размерности сигнала не являются скаляром, и пиксельная синхронизация не может быть выведена. Выбор Use pixel clock sample times в этом случае создает ошибку.

Зависимости

Чтобы включить этот параметр, установите Channel type на AXI4-Stream Video FIFO или AXI4-Stream Video Frame Buffer.

Для приложений потоковой передачи видео может часто выводиться Frame size, и этот параметр показывает значением только для чтения. Когда это не сможет быть выведено, выберите Frame size из выпадающего меню.

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

  • Когда Channel type установлен в AXI4-Stream Video Frame Buffer и и читатель и средство записи используют скалярные размерности в пиксельных потоках, Frame size выведен из BufferSize и TDATA, и это - затем значение только для чтения.

  • Когда Channel type установлен в AXI4-Stream Video FIFO и и читатель и средство записи используют скалярные размерности в пиксельных потоках, выбирают Frame size как одно из этих значений:

    • 160x120p

    • 480p SDTV (720x480p)

    • 576p SDTV (720x576p)

    • 720p HDTV (1280x720p)

    • 1080p HDTV (1920x1080p)

    • 320x240p

    • 640x480p

    • 800x600p

    • 1024x768p

    • 1280x768p

    • 1280x1024p

    • 1360x768p

    • 1400x1050p

    • 1600x1200p

    • 1680x1050p

    • 1920x1200p

    • 16x12p (test mode)

Зависимости

Чтобы включить этот параметр, установите Channel type на AXI4-Stream Video FIFO или AXI4-Stream Video Frame Buffer, и выберите Use pixel clock sample times.

Производительность

Нажатие кнопки открывает графики Производительности для канала памяти в новом окне. Для получения дополнительной информации о графиках производительности, смотрите Диагностику Симуляции.

Расширенные возможности

Преобразование фиксированной точки
Спроектируйте и симулируйте системы фиксированной точки с помощью Fixed-Point Designer™.

Введенный в R2019a