socMemoryProfiler

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

Описание

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

Создание

Синтаксис

profiler = socMemoryProfiler(hw,performanceMonitor)

Описание

пример

profiler = socMemoryProfiler(hw,performanceMonitor) создает объект, который получает доступ к соединительному IP монитора AXI на плате, заданной объектом 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'. режим 'Profile' собирает байт, и пакет значит графики задержки и пропускная способность. режим 'Trace' собирает пакетные данные о событиях транзакции для отображения как формы волны.

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

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

Примеры

свернуть все

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

collectMemoryStatistics(profilerObj);

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

plotMemoryStatistics(profilerObj);

Введенный в R2019a