Подробная информация о времени задержки каждого подкомпонента (SDAccel и Vivado HLS)

В настоящее время я работаю над дизайном FPGA с использованием SDaccel (и Vivado HLS). В моем проекте есть несколько подкомпонентов, и задержка (тактовые циклы) каждого подкомпонента будет зависеть от входных данных во время выполнения (поэтому окно анализа Vivado HLS не сможет дать мне точные значения задержки). Как мне измерить время каждого компонента в моем проекте, чтобы я мог выяснить, где мои узкие места?

Я нашел директиву pragma (трассировка pragma SDS), но я не уверен, как ее использовать, чтобы получить подробное представление о том, что происходит в системе во время выполнения различных входных данных.

Есть ли в Vivado_HLS прагмы, позволяющие это сделать? Если да, то как их использовать?

Спасибо В


person OLUWOLE JAIYEOBA    schedule 03.04.2018    source источник


Ответы (2)


Прагма SDS применима только в том случае, если вы используете SDSoC, который поддерживает Zynq и Zynq MPSOC.

Если вы просто используете Vivado HLS, похоже, вам нужно включить код трассировки и измерения более ручным способом.

В моделировании вы можете использовать представление сигнала, чтобы увидеть, когда каждый подкомпонент получает данные и производит вывод.

Для этой цели я часто добавляю логику трассировки или счетчика в свой RTL, чтобы я мог также измерять задержку и пропускную способность на FPGA.

Обычный шаблон, который у меня есть, состоит в том, чтобы иметь событие FIFO, в которое я ставлю в очередь метку времени, тип события и значение события. Чтобы сделать его неблокирующим, ставьте в очередь только в том случае, если в FIFO есть место.

person Jamey Hicks    schedule 04.04.2018

В дополнение к методам, описанным в ответе Джейми, в руководстве пользователя Vivado HLS описывается прагма TRIPCOUNT, которая указывает количество итераций, которое должен выполнять цикл.

Кроме того, при использовании совместного моделирования C/RTL отчет должен содержать измеренные значения задержки и пропускной способности на основе входных выборок, которые использовались во время моделирования.

person haggai_e    schedule 07.04.2018