socMemoryProfiler

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

Описание

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

Создание

Описание

пример

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

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

расширить все

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

Соединительный монитор 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' mode собирает байт и счетчики пакетов для графиков пропускной способности и задержки. 'Trace' mode собирает данные о событиях транзакции пакета для отображения как формы волны.

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

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

Примеры

свернуть все

AXI interconnect monitor (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. Загрузка .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. The socIPCore объект предоставляет функцию, которая выполняет эту инициализацию. Затем создайте socMemoryProfiler объект, чтобы собрать метрики.

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

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

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

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

Для 'Trace' mode, вызовите collectMemoryStatistics функция один раз. Эта функция препятствует записи транзакций IP в FIFO в AXI interconnect monitor IP, хотя транзакции продолжаются в соединении. Установите размер транзакции FIFO, Trace capture depth, в параметрах конфигурации модели, под Hardware Implementation > Target hardware resources > FPGA design (debug).

collectMemoryStatistics(profilerObj);

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

plotMemoryStatistics(profilerObj);

Введенный в R2019a