Информация о производительности памяти от выполнения FPGA

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

Чтобы включать IP Соединительного монитора AXI (AIM) в ваш проект, в параметры конфигурации модели, выбирают опцию Include AXI interconnect monitor под Hardware Implementation> Target hardware resources> FPGA design (debug). Соединительный IP монитора AXI собирает информацию из проекта, в то время как это работает на FPGA. Эта информация может быть запрошена от MATLAB® при помощи связи JTAG. Все ведущие устройства памяти в вашем FPGA соединяются с соединительным IP монитора AXI. Эти ведущие устройства могут включать блоки Генератора Трафика Канала и Памяти Памяти что вы сгенерированный HDL-код для или другие ведущие устройства в вашем проекте.

Разработчик SoC генерирует скрипт, который собирает и отображает метрики, возвращенные соединительным монитором AXI. Сгенерированные графики подобны графикам производительности памяти в симуляции, отображая пропускную способность, количество пакетов и задержки транзакции. Можно также изменить скрипт, чтобы собрать и отобразить формы волны управляющего сигнала памяти, подобные формам волны транзакции памяти от симуляции. Для получения информации об инструментах производительности памяти симуляции см. Графики Производительности Симуляции и Буферный и Пакетные Формы волны.

Для примера смотрите, Анализируют Пропускную способность Памяти Используя Генераторы Трафика, которая показывает как производительности памяти монитора и в симуляции и при работе FPGA.

Графики производительности

Скрипт, сгенерированный инструментом SoC Builder, использует связь JTAG, чтобы включить любые генераторы трафика в вашем проекте, и затем выбирает информацию о производительности памяти от соединительного IP монитора AXI с такой скоростью, как это может. Интервал выборки зависит от задержки JTAG, которая обычно является от 10 мс до 20 мс. Скрипт затем отображает графики, подобные графикам производительности от блока Memory Controller в вашей симуляции. График отображает пропускную способность, количество пакетов и задержку транзакции для каждого ведущего устройства.

Примечание

Ведущее устройство JTAG самостоятельно не соединяется с соединительным монитором AXI. Поэтому аппаратная диагностика не включает графики использования памяти для единственных испытательным стендом ведущих устройств, которые инициализируют память с предопределенными данными.

Задержка является в среднем временем от запуска пакетного запроса к передаче First Data по интервалу выборки. Это выражается как абсолютное время. Чтобы преобразовать задержку в такты, разделите временную стоимость на период часов FPGA.

Разорвите формы волны

Можно также изменить сгенерированный скрипт, чтобы сконфигурировать соединительный монитор AXI, чтобы собрать данные о событиях для каждой пакетной транзакции. Можно просмотреть эти события в средстве просмотра формы волны Logic Analyzer, чтобы исследовать арбитражное поведение. Задайте количество транзакций, чтобы получить, Trace capture depth, в параметрах конфигурации модели, под Hardware Implementation> Target hardware resources> FPGA design (debug).

Формы волны показывают тип события (BurstIdle, BurstRequest, BurstExecuting или BurstDone) и эти параметры пакетной транзакции:

  • MasterID – Идентификационный номер ведущего устройства памяти, которое выполнило запрос

  • DataWidth – Ширина данных в битах

  • BurstLength – Количество слов данных в пакетном запросе

  • BurstsTransferred – Количество пакетов в этом запросе (допустимый только с событием BurstDone)

  • BytesTransferred – Количество байтов в этом запросе (допустимый только с событием BurstDone)

Можно сравнить эти формы волны с формами волны, полученными от блока Memory Controller в симуляции.

Конфигурирование и запрос соединительного монитора AXI

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

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

Выберите Memory Monitor Mode

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

perfMonMode = 'Profile'; % or 'Trace'

Сконфигурируйте соединительный монитор AXI

Чтобы получить диагностические показатели производительности из вашего сгенерированного проекта FPGA, необходимо настроить связь JTAG с устройством от MATLAB.Load файл .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',perfMonMode);
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);

Смотрите также

| | |

Похожие темы

Похожие темы