Позвольте Readback на ведомых входных регистрах AXI4 смотреть записанные значения

Этот пример описывает различные методы, чтобы считать ведомые входные регистры AXI4 в вашем проекте. Это показывает процесс того, как включить readback на ведомых входных регистрах AXI4 и считать значения ведомых входных регистров AXI4 для вашего проекта.

Введение

Можно выбрать интерфейс AXI4 или AXI4-Lite в генерации ядра IP или рабочий процесс ввода-вывода FPGA Simulink Real-Time в HDL Workflow Advisor. По умолчанию ваш IP будет сгенерирован без readback возможности регистров входа AXI4 или AXI4-Lite. Когда опция readback активирована от HDL Workflow Advisor или от интерфейса командной строки, можно считать значения входных регистров. Это - очень полезный метод для отладки входных значений, которые записаны в интерфейс AXI4 или AXI4-Lite. Рисунок показывает ведомый интерфейс AXI4 и его регистры.

Включение ведомого входного регистра AXI4 Readback

1. Readback ведомых регистров AXI4 может быть выполнен, когда ваш проект содержит интерфейс AXI4 или AXI4-Lite. Можно использовать любую модель, которая имеет, они взаимодействуют через интерфейс. Используйте hdlcoder_led_blinking или hdlcoder_led_blinking_4bit модель. Откройте модель Simulink, которая реализует мигание LED с помощью команды,

open_system('hdlcoder_led_blinking');

2. Запустите все Задачи до Задачи 3.1, Опции HDL Набора.

3. Readback на ведомых входных регистрах AXI4 может быть включен при помощи интерфейса командной строки использования или HDL Workflow Advisor. В Задаче 3.2, Сгенерируйте Код RTL, и Ядро IP, по умолчанию readback на ведомом входном регистре AXI4 выключено. Чтобы включить эту опцию, выберите Enable readback на ведомых регистрах записи AXI4 в Задаче 3.2, Генерируют Код RTL и Ядро IP HDL Workflow Advisor.

Можно также включить readback опцию в интерфейсе командной строки MATLAB при помощи функции hdlset_param. Рисунок показывает команду, чтобы установить параметр 'AXI4RegisterReadback' в hdlset_param. Значением по умолчанию является 'off'.

Считайте Значения регистров входа AXI4 Slave

После установки readback опции для вашей модели Сгенерируйте код RTL и Ядро IP использование Задачи 3,2 опции в HDL Workflow Advisor или через интерфейс командной строки. Если ядро IP сгенерировано, Отчет Генерации Ядра IP сгенерирован в отчете генерации кода. Отчет Генерации Ядра IP содержит детали об Интерфейсе Целевой платформы вашей модели. Рисунок показывает интерфейс AXI-Lite, сопоставленный с hdlcoder_led_blinking портами модели. Таблица в Отчете Генерации Ядра IP показывает адрес отображения интерфейса каждого ведомого регистра AXI4. Эти адреса используются, чтобы считать ведомые входные регистры AXI4.

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

1. Используя FPGA MATLAB, моделирующий скрипт API

2. Используя MATLAB JTAG как ведущее устройство AXI

3. Используя команду Devmem, чтобы зондировать регистры от цели

Чтобы считать значение, можно использовать любой из вышеупомянутых методов. После этого необходимо завершить все шаги в HDL Workflow Advisor. Если поток битов сгенерирован и запрограммирован в целевое устройство, выполните readback входных регистров.

Readback ведомых входных регистров AXI4 Используя FPGA MATLAB, моделирующий скрипт API

Регистры входа AXI4 Slave могут быть считаны с помощью FPGA MATLAB, моделирующего скрипты API. Однажды Код RTL и ядро IP сгенерирован, скрипты Программного интерфейса MATLAB могут быть сгенерированы в Задаче 4,2 Generate Software Interface от HDL Workflow Advisor. Опция Generate MATLAB software interface scripts генерирует MATLAB, моделирующий скрипты API. Смотрите рисунок ниже.

Эта опция генерирует два скрипта, которые являются интерфейсом и устанавливают скрипты, который является как показано ниже для hdlcoder_led_blinking_4bit модели.

Функция настройки содержит команды для ведомых интерфейсов AXI4, что использование HDL Coder, чтобы управлять портами DUT в сгенерированном ядре IP HDL, которые сопоставлены с соответствующими интерфейсами.

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

Теперь сгенерируйте поток битов и программируйте целевое устройство. Для того, чтобы записать и считать данные для blink_frequency, измените интерфейсный скрипт как показано ниже и запустите скрипт. Вы видите, что значение 10 записано в blink_frequency, и axi4read показывает readback blink_frequency.

MATLAB, моделирующий API, использует MATLAB JTAG в качестве Ведущего устройства AXI для readback ведомых входных регистров AXI4. Для получения дополнительной информации смотрите, Генерируют Скрипт Программного интерфейса, чтобы Зондировать и Ядро IP HDL Быстрого прототипирования.

Readback Ведомых Входных Регистров AXI4 с помощью JTAG MATLAB в качестве Ведущего устройства AXI.

JTAG MATLAB как Ведущее устройство AXI может также использоваться отдельно для readback ведомых входных регистров AXI4. Чтобы использовать MATLAB JTAG в качестве Ведущего устройства AXI, JTAG MATLAB как, Ведущий IP AXI должен быть вставлен в исходный проект. Рисунок показывает Задачу, 1.2 Целевых Исходных проекта Набора HDL Workflow Advisor, чтобы установить вставляют MATLAB JTAG как Ведущее устройство AXI в вашем исходном проекте.

Теперь установите необходимые опции для включения readback, как упомянуто в более раннем разделе и последуйте примеру Используя MATLAB JTAG, когда Ведущее устройство AXI, чтобы управлять HDL Coder сгенерировало Ядро IP для получения дополнительной информации.

Readback ведомых входных регистров AXI4 Используя команду Devmem (Тестовые регистры от цели)

Команда Devmem может использоваться в Шпаклевке или Терминале Hyper. Если поток битов запрограммирован в целевое устройство, открытую Шпаклевку или hyper терминальный последовательный интерфейс использования. Использовать devmem команду для hdlcoder_led_blinking использования модели эти шаги.

1. Считайте данные из адреса '400D0100' использующий после команды.

   devmem 0x400D0100

вы получите значение как 0x00000000

2. Напишите некоторое значение в адресе '400D0100' использующий после команды.

   devmem 0x400D0100 w 0x1

3. Снова считайте адрес '400D0100'.

  devmem 0x400D0100

Теперь вы получите значение как 0x00000001. Для получения дополнительной информации см. рисунок ниже.

Таким образом скаляры могут быть считаны. В векторном типе данных сначала необходимо записать данные по регистру и затем записать 0x1 в адрес строба, когда в векторном стробе синхронизация сделана для записи. После записи на адресе строба клиент считывает данные на регистре с помощью того же адреса. Рисунок показывает запись и чтение значений в векторном типе данных с помощью devmem.

1. Попытайтесь считать адрес 0x400D0100 и 0x400D0104, который показывает 0, когда ничто не написано в тех регистрах.

2. Попытайтесь писать 0x2 на адресе 0x400D0100 и затем запишите, что 0x1 на стробе обращаются к 0x400D0110.

3. Теперь считайте данные на адресе 0x400D0100, и это показывает как 0x00000002.

4. Так же запишите 0x3 на адресе 0x400D0104 и затем запишите, что 0x1 на стробе обращаются к 0x400D0110.

5. Теперь считайте данные на адресе 0x400D0104, и это показывает 0x00000003.

Используя ведомый порт AXI4, чтобы конвейерно обработать отношение регистра.

Это - дополнительная опция оптимизировать ваш проект, чтобы встретить желаемой Частоте. Когда у вас есть значительное количество ведомых входных портов AXI4 в проекте, и ведомое устройство AXI4 readback входного регистра включено, проект становится комплексным, и вы не можете быть желаемы, синхронизировав требования. Чтобы оптимизировать readback возможность ведомых входных регистров AXI4, конвейерные регистры могут быть вставлены для количества ведомых портов AXI4. Можно установить ведомый порт AXI4 конвейерно обрабатывать опцию отношения регистра от HDL Workflow Advisor, Интерфейса командной строки или из свойств HDL Block подсистемы DUT. Рисунок показывает HDL Workflow Advisor для Задачи 3.2, чтобы установить ведомый порт AXI4 конвейерно обрабатывать опцию отношения регистра.

Таблица показывает выпадающие варианты, доступные в ведомом порту AXI4, чтобы конвейерно обработать отношение

Можно также установить эту опцию в интерфейсе командной строки MATLAB при помощи функции hdlset_param. Рисунок показывает команду, чтобы установить параметр 'AXI4SlavePortToPipelineRegisterRatio' в hdlset_param. Значением по умолчанию является 'auto'.

Чтобы выбрать эту опцию с помощью свойств HDL Block, щелкните правой кнопкой мыши на подсистеме DUT и выберите HDL Code> HDL Block Properties. Смотрите рисунок ниже.

В HDL Block Properties, выбрал вкладку Target Specification и установил 'AXI4SlavePortToPipelineRegisterRatio' в разделе IP Core Parameter. Смотрите рисунок ниже.

Если вы устанавливаете ведомый порт AXI4 конвейерно обрабатывать отношение регистра с помощью одной из вышеупомянутых опций, можно выполнить шаги для readback, упомянутого в разделе Read Values регистров входа AXI4 Slave.

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