Когда вы запускаете типовой рабочий процесс генерации IP-ядра для своего Simulink® моделируйте или нацеливайте свой собственный пользовательский исходный проект, который вы создали, можно сгенерировать HDL-ядро IP с несколькими интерфейсами AXI4-Stream, AXI4-Stream Video интерфейсами или AXI4 Master интерфейсами. Сведения об этих интерфейсах см. в разделе Интерфейсы целевой платформы.
Можно использовать несколько потоковых интерфейсов, чтобы облегчить высокоскоростную передачу данных в различных приложениях, таких как:
Передача данных между A/D и D/A конвертерами
Программно определяемые радио, которые обрабатывают несколько каналов приемопередатчика
Алгоритмы зрения, которые выполняют аннотацию изображения или обнаружение объектов
Чтобы задать несколько AXI4-Stream, AXI4-Stream Video или AXI4 Master:
В Set Target Device and Synthesis Tool задаче выберите IP Core Generation
как Target workflow и Generic Xilinx Platform
или Generic Altera Platform
как Target platform. Запустите эту задачу.
Чтобы добавить несколько целевых интерфейсов, в Set Target Interface задаче, в Target Platform Interfaces разделе таблицы интерфейсов целевой платформы, выберите Add more ....
Затем можно добавить больше интерфейсов в диалоговом окне Add New Target Interfaces. Укажите тип интерфейса, который вы хотите добавить, количество интерфейсов и пользовательское имя для каждого дополнительного интерфейса.
После применения настроек созданные интерфейсы появляются в таблице интерфейсов целевой платформы. После запуска этой задачи указанные дополнительные интерфейсы сохраняются в подсистеме DUT как AdditionalTargetInterfaces свойства блоков.
Если вы измените дополнительные интерфейсы, которые уже были сопоставлены с портами DUT, такие как удаление или переименование интерфейса, который уже был сопоставлен, предыдущая информация о отображении интерфейса может быть потеряна. Порты затем становятся несопоставленными с интерфейсами, а раздел Target platform interfaces отображений No interface specified
. Поэтому, если вы вносите изменения в дополнительные целевые интерфейсы, проверьте, что порты DUT сопоставлены с правильными целевыми интерфейсами.
Когда вы создаете свой собственный пользовательский исходный проект, можно добавить несколько AXI4-Stream, AXI4-Stream Video и AXI4 Master интерфейсов. В зависимости от типа интерфейса, который вы хотите добавить, задайте дополнительные интерфейсы при помощи addAXI4StreamInterface
, addAXI4StreamVideoInterface
, или addAXI4MasterInterface
методы hdlcoder.ReferenceDesign
класс.
Чтобы добавить больше интерфейсов, в plugin_rd
файл, вызывать метод интерфейса каждый раз, когда вы хотите добавить больше интерфейсов. В этом примере показано, как добавить два AXI4-Stream интерфейса.
function hRD = plugin_rd() % Reference design definition % Copyright 2017-2019 The MathWorks, Inc. % Construct reference design object hRD = hdlcoder.ReferenceDesign('SynthesisTool', 'Xilinx Vivado'); hRD.ReferenceDesignName = 'Multiple Interface Reference Design'; hRD.BoardName = 'ZedBoard'; % Tool information hRD.SupportedToolVersion = {'2019.1'}; % ... % ... % Add AXI4-Stream interface 1 hRD.addAXI4StreamInterface (... 'MasterChannelEnable', true, ... 'SlaveChannelEnable', true, ... 'MasterChannelConnection', 'axi_dma_s2mm/S_AXIS_S2MM', ... 'SlaveChannelConnection', 'axi_dma_mm2s/M_AXIS_MM2S', ... 'MasterChannelDataWidth', 32, ... 'SlaveChannelDataWidth', 32, ... 'InterfaceID', 'AXI4-Stream1'); % Add AXI4-Stream interface 2 hRD.addAXI4StreamInterface (... 'MasterChannelEnable', true, ... 'SlaveChannelEnable', true, ... 'MasterChannelConnection', 'ADC/S_AXIS_S2MM', ... 'SlaveChannelConnection', 'DAC/M_AXIS_MM2S', ... 'MasterChannelDataWidth', 32, ... 'SlaveChannelDataWidth', 32, ... 'InterfaceID', 'AXI4-Stream2'); % ... % ...
Когда вы запускаете IP Core Generation
рабочий процесс и нацелен на пользовательский исходный проект Multiple Interface Reference Design
в Set Target Interface задаче можно сопоставить порты DUT с AXI4-Stream1 ведущими и ведомыми каналами и AXI4-Stream2 ведущими и ведомыми каналами.
Примечание
Когда вы нацелены на свой собственный пользовательский исходный проект и сопоставляете дополнительные интерфейсы с портами DUT в Set Target Interfaces задаче, дополнительные интерфейсы не сохраняются в модели как AdditionalTargetInterfaces свойство блока. Вместо этого дополнительные интерфейсы сохраняются в пользовательском исходном проекте в plugin_rd.m
файл.
Можно также динамически настраивать исходный проект, задавая количество добавляемых интерфейсов и свойства интерфейса.
В plugin_rd
Файл создайте параметр исходного проекта для количества дополнительных интерфейсов, которые вы хотите добавить.
Создайте функцию обратного вызова, которая имеет различные варианты для количества интерфейсов, которые вы хотите добавить, и затем ссылку на функцию в plugin_rd
файл при помощи CustomizeReferenceDesignFcn
метод hdlcoder.ReferenceDesign
класс.
Дополнительные сведения см. в разделе Настройка Исходном проекте на основе параметров Исходного проекта.
Когда вы используете один потоковый канал, HDL Coder™ автоматически генерирует сигнал Ready и связанную логику давления.
Если вы используете несколько потоковых каналов, HDL Coder не генерирует автоматически логику обратного давления. В этом случае сигнал Ready генерируется, но главный сигнал Ready на входе игнорируется, и ведомый сигнал Ready на выходе привязывается к высокому значению. Отсутствие логики обратного давления может привести к сбросу выборок. Если вы хотите, чтобы ваш проект применил обратные давления к интерфейсу Slave или ответил на обратные давления от интерфейса Master, необходимо смоделировать сигнал Ready для каждого дополнительного интерфейса, а затем сопоставить порт с сигналом Ready для этого интерфейса. Когда вы не моделируете, задача Set Target Interface отображает предупреждение, которое предоставляет имена интерфейсов, которые требуют порта Ready. Если вашему проект не нужно применять или отвечать на задние давления, вы можете игнорировать это предупреждение, и вам не нужно моделировать сигнал Ready.
При использовании нескольких AXI4-Stream интерфейсов, если вы хотите, чтобы ваш проект применил обратные давления к интерфейсу Slave или ответил на задние давления от интерфейса Master, вы должны смоделировать сигнал Ready для каждого дополнительного интерфейса, а затем сопоставить порт с сигналом Ready для этого интерфейса. Чтобы узнать, как генерируется логика давления для одного потокового канала и как смоделировать сигнал Ready, смотрите Сигнал готовности (необязательно).
При запуске типового рабочего процесса генерации ядра IP можно задать тип интерфейса и пользовательский идентификатор интерфейса для каждого дополнительного интерфейса. Другие свойства интерфейса, такие как ширина данных, не могут быть настроены и использовать значения по умолчанию. Когда вы создаете свой собственный пользовательский исходный проект, можно настроить имя интерфейса и свойства интерфейса.
При сопоставлении портов DUT с несколькими AXI4-Stream каналами интерфейса можно использовать только скалярные порты. Векторные порты могут иметь не более одного AXI4-Stream главного канала и одного AXI4-Stream ведомого канала.
Xilinx® Zynq®-7000 или Intel® Куарт® Прайм, должно быть, ваша целевая платформа.
Processor/FPGA synchronization должны быть Free running
.
Силинкс-Вивадо® или Intel Quartus Prime должен быть вашим инструментом синтеза.