Канал памяти

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

  • Библиотека:
  • 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 до алгоритма процессора.

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

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

  • 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 с произвольным доступом к памяти для записи и произвольным доступом к памяти для чтения.

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

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

Порты

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

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

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

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

Этот порт представляет протокол от производителя данных к каналу памяти. Проверки блока Канала Памяти этот сигнал при использовании 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. Для получения дополнительной информации о сущностях смотрите Сущности в Модели SoC Blockset

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

Сущность управления от контроллера памяти. wrBurstDone сигнализирует к Каналу Памяти, что пакетный запрос завершился. Соедините выходной сигнал burstDone от блока контроллера памяти до этого порта. Для получения дополнительной информации о сущностях смотрите Сущности в Модели SoC Blockset

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

Сущность управления от контроллера памяти. rdBurstDone сигнализирует к блоку Memory Channel, что пакетный запрос чтения завершился. Соедините выходной сигнал burstDone от блока Memory Controller до этого порта. Для получения дополнительной информации о сущностях смотрите Сущности в Модели SoC Blockset

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

Вывод

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

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

Примечание

Если потребитель данных является процессором, блок Memory Channel отправляет эту шину данных как сущность к процессору. Для получения дополнительной информации о сущностях смотрите Сущности в Модели SoC Blockset

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

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

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

Примечание

Если потребитель данных является процессором, блок Memory Channel отправляет эту шину данных как сущность к процессору, и именем порта является rdEvent. Для получения дополнительной информации о сущностях смотрите Сущности в Модели SoC Blockset

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

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

Настройка типа каналаТип шины
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.

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

Управляющий сигнал, запрашивающий пакетный доступ от контроллера памяти. Соедините его с входом burstReq блока Memory Controller.

Типы данных: 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 в реализации) не может превысить 32 бита. Это - временное ограничение на основе текущих ограничений преобразований байта в модели канала памяти.

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

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

Тип данных каналаРазмерности канала Разорвите длинуРазорвите размерХороший / ПлохоПочему?
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. Эта ширина данных нарушает текущий предел 32-битного 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 пакетами в размере. Размер Thebuffer является точно 1 кадром (120*160*4), как вычислено в байтах.

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

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

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

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

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

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

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

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

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

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

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

  • FIFO depth (number of bursts)

  • Almost-full depth

  • Clock Frequency (MHz)

  • Data width (bits)

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

Зависимости

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

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

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

Зависимости

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

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

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

Зависимости

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

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

Ширина данных основного 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.

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

Зависимости

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

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

Примечание

Если и читатель и средство записи используют структурированные сигналы, размерности сигнала не являются скаляром, и пиксельная синхронизация не может быть выведена. Выбор 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

Для просмотра документации необходимо авторизоваться на сайте