exponenta event banner

socMemoryProfiler

Извлечение и отображение данных о производительности памяти

Описание

Этот объект собирает и отображает данные о производительности памяти двух типов из IP-адреса межсоединений памяти AXI, работающего на плате SoC. Можно собрать среднюю задержку транзакций и количество байтов и пакетов, а затем построить график полосы пропускания, количества пакетов и задержки транзакций или собрать подробные данные о событиях транзакций в памяти и просмотреть данные в виде формы сигнала.

Создание

Описание

пример

profiler = socMemoryProfiler(hw,performanceMonitor) создает объект, который обращается к IP-адресу монитора соединений AXI на плате, указанной socHardwareBoard объект, hardwareи использует конфигурацию IP из базового объекта IP, performanceMonitor.

Входные аргументы

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

Аппаратный объект, указанный как socHardwareBoard объект, представляющий подключение к аппаратной плате SoC.

AXI interconnect monitor IP core object, указанный как socIPCore , который был создан с помощью IPCoreName аргумент имеет значение 'PerformanceMonitor', а затем инициализирован. Например,

apmCoreObj = socIPCore(AXIMasterObj,perf_mon,'PerformanceMonitor','Mode',perfMonMode);
initialize(apmCoreObj);

  • AXIMasterObj является socAXIMaster объект.

  • perf_mon - структура, созданная инструментом SoC Builder.

  • perfMonMode - строка, равная 'Profile' или 'Trace'. 'Profile' режим собирает счетчики байтов и пакетов для графиков пропускной способности и задержек. 'Trace' режим собирает данные о событии пакетной транзакции для отображения в виде сигналов.

Функции объекта

collectMemoryStatisticsПолучение данных о производительности с монитора межсоединений AXI
plotMemoryStatisticsГрафик данных о производительности, полученных с монитора межсоединений AXI

Примеры

свернуть все

Монитор межсоединений AXI (AIM) - это ядро IP, которое собирает метрики производительности для конструкции FPGA на основе AXI. Создание socIPCore для установки и конфигурирования IP AIM и использования socMemoryProfiler для извлечения и отображения данных.

Пример настройки и запроса AIM IP в конструкции с использованием MATLAB ® в качестве AXI Master см. в разделе Анализ пропускной способности памяти с использованием генераторов трафика. В частности, просмотрите soc_memory_traffic_generator_axi_master.m сценарий, который настраивает и контролирует конструкцию на устройстве.

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

Mode = 'Profile'; % or 'Trace'

Чтобы получить показатели производительности диагностики из созданной конструкции FPGA, необходимо настроить соединение JTAG с устройством из MATLAB. Загрузить a .mat файл, содержащий структуры, полученные из параметров конфигурации платы. Этот файл был создан инструментом SoC Builder. Эти структуры описывают межсоединение памяти и основные конфигурации, такие как размеры буфера и адреса. Используйте socHardwareBoard объект для настройки соединения JTAG.

load('soc_memory_traffic_generator_zc706_aximaster.mat');
hwObj = socHardwareBoard('Xilinx Zynq ZC706 evaluation kit','Connect',false);
AXIMasterObj = socAXIMaster(hwObj);

Сконфигурируйте AIM. socIPCore объект предоставляет функцию, выполняющую эту инициализацию. Затем создайте socMemoryProfiler объект для сбора метрик.

apmCoreObj = socIPCore(AXIMasterObj,perf_mon,'PerformanceMonitor','Mode',Mode);
initialize(apmCoreObj);
profilerObj = socMemoryProfiler(hwObj,apmCoreObj);

Извлеките метрики производительности или данные сигналов из проекта, запущенного в FPGA, с помощью socMemoryProfiler функции объекта.

Для 'Profile' режим, вызовите collectMemoryStatistics функция в цикле.

NumRuns = 100;
for n = 1:NumRuns
    collectMemoryStatistics(profilerObj);
end
Время настройки конструкции JTAG является большим относительно времени транзакций FPGA, и, если в конструкции имеется небольшое количество транзакций, они могут быть уже завершены к моменту запроса монитора. В этом случае график полосы пропускания показывает только одну выборку, и вычисление пропускной способности не является точным. В этом случае увеличьте общее количество транзакций, выполняемых конструктором.

Для 'Trace' режим, вызовите collectMemoryStatistics функция один раз. Эта функция останавливает IP от записи транзакций в FIFO в мониторе межсоединений AXI IP, хотя транзакции продолжаются на межсоединении. Задайте размер транзакции FIFO, глубину отслеживания в параметрах конфигурации модели по пути Аппаратная реализация > Целевые аппаратные ресурсы > FPGA design (debug).

collectMemoryStatistics(profilerObj);

Визуализация данных о производительности с помощью plotMemoryStatistics функция. В 'Profile' эта функция запускает инструмент графика производительности, и его можно настроить для построения графика пропускной способности, количества пакетов и средней задержки транзакций. В 'Trace' эта функция открывает инструмент Logic Analyzer для просмотра данных о событиях пакетной транзакции.

plotMemoryStatistics(profilerObj);

Представлен в R2019a