socMemoryProfiler

Получите и отобразите данные о производительности памяти

Описание

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

Создание

Описание

пример

profiler = socMemoryProfiler(hw,performanceMonitor) создает объект, который получает доступ к IP AXI interconnect monitor на плате, заданной socHardwareBoard объект, hardware, и использует настройку IP от базового объекта IP, performanceMonitor.

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

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

Объект Hardware в виде socHardwareBoard объект, который представляет связь с аппаратной платой SoC.

AXI соединяют базовый объект IP монитора в виде socIPCore объект, который был создан с IPCoreName набор аргумента к 'PerformanceMonitor', и затем инициализированный. Например,

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

  • AXIMasterObj socAXIMaster объект.

  • perf_mon структура, сгенерированная инструментом SoC Builder.

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

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

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

Примеры

свернуть все

AXI interconnect monitor (AIM) является ядром IP, которое собирает показатели производительности для основанного на AXI проекта FPGA. Создайте socIPCore возразите, чтобы установить и сконфигурировать IP AIM и использовать socMemoryProfiler объект получить и отобразить данные.

Для примера того, как сконфигурировать и запросить IP AIM в вашем проекте с помощью MATLAB® как Ведущее устройство AXI, смотрите, Анализируют Полосу пропускания Памяти Используя Генераторы Трафика. А именно, рассмотрите soc_memory_traffic_generator_axi_master.m скрипт, который конфигурирует и контролирует проект на устройстве.

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

Mode = 'Profile'; % or 'Trace'

Чтобы получить диагностические показатели производительности из вашего сгенерированного проекта FPGA, необходимо настроить связь JTAG с устройством из MATLAB. Загрузите .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 в IP AXI interconnect monitor, несмотря на то, что транзакции продвигаются межсоединение. Установите размер транзакции FIFO, Trace capture depth, в параметрах конфигурации модели, под Hardware Implementation> Target hardware resources> FPGA design (debug).

collectMemoryStatistics(profilerObj);

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

plotMemoryStatistics(profilerObj);

Введенный в R2019a