С программным обеспечением HDL Coder™ можно реализовать упрощенный, передающий потоком протокол в модели. Программное обеспечение генерирует AXI4-потоковые интерфейсы в ядре IP.
Чтобы сопоставить порты DUT с AXI4-потоковыми интерфейсами, используйте упрощенный AXI4-потоковый протокол. Вы не должны моделировать фактический AXI4-потоковый протокол, и вместо этого можно использовать упрощенный протокол. Когда вы запускаете IP Core Generation
рабочий процесс, сгенерированный HDL-код содержит логику обертки, которая переводит между упрощенным протоколом и фактическим AXI4-потоковым протоколом. Упрощенный протокол требует, чтобы вы использовали меньше сигналов протокола, упрощает механизм квитирования между допустимыми и готовыми сигналами и поддерживает пакеты произвольных длин.
Используйте упрощенный AXI4-потоковый протокол и для записи и считайте транзакции. Когда это необходимо, чтобы сгенерировать интерфейс AXI4-Stream в вашем ядре IP, в вашем интерфейсе DUT, реализуют следующие сигналы:
Данные
Допустимый
Опционально, когда вы сопоставляете скалярные порты DUT с интерфейсом AXI4-Stream, можно смоделировать следующие сигналы:
Готовый
Другие сигналы протокола, такие как:
TSTRB
TKEEP
TLAST
TID
TDEST
TUSER
Когда сигнал Данных допустим, Допустимый сигнал утверждается.
Примечание
Эта схема иллюстрирует Данные и Допустимое отношение сигнала согласно упрощенному протоколу потоковой передачи. Когда вы запускаете IP Core Generation
рабочий процесс, HDL Coder добавляет модуль интерфейса потоковой передачи в ядре IP HDL, которое переводит упрощенный протокол в полный AXI4-потоковый протокол.
Если вы хотите сгенерировать аппаратное ядро IP, но не должны моделировать и симулировать взаимодействие между программным и аппаратным обеспечением, используйте скалярные порты данных в своем интерфейсе DUT. Сопоставьте порты данных с AXI4-потоковыми интерфейсами.
Смоделировать Данные и Допустимые сигналы в Simulink®:
Заключите алгоритм, который обрабатывает сигнал Данных при помощи активированной подсистемы.
Управляйте разрешать портом активированной подсистемы при помощи Допустимого сигнала.
Например, можно непосредственно соединить Допустимый сигнал с разрешать портом.
Можно также использовать контроллер в DUT, который генерирует разрешать сигнал для активированной подсистемы.
AXI4-потоковые интерфейсы в вашем DUT могут опционально включать Готовый сигнал. В интерфейсе Slave вы используете Готовый сигнал применить противодавление. В интерфейсе Master вы используете Готовый сигнал ответить на противодавление.
По умолчанию HDL Coder генерирует Готовый сигнал автоматически. Когда вы используете один канал потоковой передачи, HDL Coder также генерирует логику, которая обрабатывает противодавление. Связи логики противодавления Готовый сигнал к DUT Включают сигнал. Когда сигнал входа Master Ready идет низко, DUT отключен, и выходное ведомое устройство, Готовый сигнал управляется низко. Поэтому, когда вы используете один канал потоковой передачи, Готовый сигнал является дополнительным, и вы не должны моделировать этот сигнал в порте DUT.
Если вы используете несколько каналов потоковой передачи, HDL Coder автоматически не генерирует логику противодавления. В этом случае Готовый сигнал сгенерирован, но основной Готовый сигнал во входе проигнорирован, и ведомый Готовый сигнал при выходе связывается к высокому значению. Отсутствие логики противодавления может привести к пропускаемым выборкам. Если вы хотите, чтобы ваш проект применил противодавление на интерфейс Slave или ответил на противодавление от интерфейса Master, необходимо смоделировать Готовый сигнал для каждого дополнительного интерфейса и затем сопоставить порт с Готовым сигналом для того интерфейса. Когда вы не моделируете, задача Set Target Interface выводит предупреждение, которое обеспечивает имена интерфейсов, которые требуют порта Ready. Если ваш проект не должен применить или ответить на противодавление, можно проигнорировать это предупреждение, и вы не должны моделировать Готовый сигнал.
Если вы моделируете Готовый сигнал в своих AXI4-потоковых интерфейсах, ваш интерфейс Master игнорирует Данные и Допустимые сигналы один такт после того, как Готовый сигнал является de-asserted. Можно начать отправлять Данные и Допустимые сигналы, если Готовый сигнал утверждается. Можно отправить еще одни Данные и Допустимый сигнал после того, как Готовый сигнал будет de-asserted.
Если вы не моделируете Готовый сигнал, HDL Coder генерирует сигнал и связанную логику противодавления.
Примечание
Эта схема иллюстрирует отношение между Данными, Допустимыми, и Готовыми сигналами согласно упрощенному протоколу потоковой передачи. Когда вы запускаете IP Core Generation
рабочий процесс, HDL Coder добавляет модуль интерфейса потоковой передачи в ядре IP HDL, которое переводит упрощенный протокол в полный AXI4-потоковый протокол.
Например, если у вас есть FIFO в вашем DUT, чтобы сохранить систему координат данных, применить противодавление к восходящему компоненту, можно смоделировать Готовый сигнал на основе FIFO Полный сигнал.
Примечание
Если вы включаете балансировку задержки, кодер может вставить одну или несколько задержек на Готовом сигнале. Отключите задержку, балансирующуюся для Готового пути прохождения сигнала.
Можно опционально смоделировать другие AXI4-потоковые сигналы протокола. Если вы моделируете только необходимые Данные и Допустимые сигналы, кодер генерирует TREADY
и TLAST
AXI4-потоковые сигналы протокола.
Если вы не моделируете TLAST
сигнал, кодер генерирует программируемый регистр в ядре IP так, чтобы можно было задать пакетный размер. Детали программируемого пакетного регистра размера находятся в вашем отчете генерации ядра IP.
Если вы хотите смоделировать и симулировать системное взаимодействие между программным и аппаратным обеспечением и сгенерировать код для программного драйвера, используйте векторные порты данных в своем интерфейсе DUT. Сопоставьте порты данных с AXI4-потоковыми интерфейсами.
Когда вы сопоставляете векторные порты с AXI4-потоковыми интерфейсами, ваша модель имеет эти требования:
Соедините каждый порт данных входного вектора DUT с блоком Serializer1D.
Блок Serializer1D должен иметь порт ValidOut и набор Отношения к векторной битной ширине.
Соедините каждый порт данных выходного вектора DUT с блоком Deserializer1D.
Блок Deserializer1D должен иметь порт ValidIn и набор Отношения к векторной битной ширине.
Соедините каждый скалярный порт, который сопоставляет с интерфейсом AXI4-Lite с блоком Rate Transition.
Отношение в блоке Rate Transition должно совпадать с Отношением в блоках Deserializer1D и Serializer1D.
Каждый скалярный порт, который сопоставляет с внешним портом, должен иметь тот же шаг расчета как подсистема алгоритма потоковой передачи.
Подсистема алгоритма потоковой передачи следует за теми же Данными, и Допустимый шаблон моделирования сигнала что касается отображения скалярных портов к AXI4-потоку взаимодействует через интерфейс. Смотрите Данные и Допустимый Шаблон Моделирования Сигнала.
Для примера, который показывает, как сопоставить векторные порты с AXI4-потоковыми интерфейсами, открыть hdlcoder_sfir_fixed_vector
модель. В hdlcoder_sfir_fixed_vector
модель, symmetric_fir
подсистема алгоритма потоковой передачи.
Когда вы запускаете IP Core Generation
рабочий процесс, можно сопоставить несколько скалярных портов DUT с AXI4-потоковыми Ведущими и AXI4-потоковыми Ведомыми каналами. Когда вы используете векторные порты, можно сопоставить порты с самое большее одним AXI4-потоковым Ведущим каналом и одним AXI4-потоковым Ведомым каналом.
Примечание
Если вы используете несколько каналов потоковой передачи, HDL Coder генерирует Готовый сигнал, но не генерирует логику противодавления. Если вы хотите, чтобы ваш проект обработал противодавление, смоделируйте Готовый сигнал в своем проекте.
Чтобы узнать больше, смотрите, Генерируют Ядро IP HDL с Несколькими, AXI4-передают-потоком и Основные Интерфейсы AXI4.
Программное обеспечение HDL Coder поддерживает проекты с несколькими частотами дискретизации, когда вы запускаете IP Core Generation
рабочий процесс. Когда вы сопоставляете интерфейсные порты с AXI4-потоковыми Ведущими или AXI4-потоковыми Ведомыми интерфейсами, чтобы использовать несколько частот дискретизации, гарантировать, что порты DUT, которые сопоставляют с этими интерфейсами AXI4, запущенными на самом быстром уровне проекта после генерации HDL-кода.
Чтобы узнать больше, смотрите Многоскоростную Генерацию Ядра IP.
Когда вы сопоставляете скалярные или векторные порты DUT с AXI4-потоковыми интерфейсами:
Xilinx® Zynq®-7000 или Intel® Quartus® Prime должны быть вашей целевой платформой.
Xilinx Vivado® или Intel Куарт Прайм должны быть вашим инструментом синтеза.
Processor/FPGA synchronization должен быть Free running
.
Когда вы сопоставляете векторные порты DUT с AXI4-потоковыми интерфейсами, вы не можете использовать сигналы протокола кроме Данных и Допустимый. Например, Готовый и TLAST не поддерживаются.