Автоматическая итеративная оптимизация позволяет вам оптимизировать свою частоту часов, не задавая отдельные опции оптимизации, такие как конвейеризация ввода или вывода, распределенная конвейеризация или развертывание цикла.
Существует два способа использовать hdlcoder.optimizeDesign
, чтобы оптимизировать вашу частоту часов:
Лучшая частота часов: Вы задаете максимальное количество итераций, которые вы хотите, чтобы HDL Coder™ выполнил, и кодер выполняет итерации, чтобы минимизировать критический путь в вашем проекте.
Целевая частота часов: Вы задаете цель частоты часов для своего проекта и максимального количества итераций, которые вы хотите, чтобы HDL Coder выполнил. Кодер выполняет итерации, пока это не встречает вашей целевой частоте часов или достигает максимального количества итераций.
HDL Coder может также решить, что ваша целевая частота часов не достижима, потому что ваш целевой период часов является меньше, чем задержка самой многочисленной атомарной комбинационной группы логики в вашем проекте.
Вы задаете свою цель частоты часов и максимальное количество итераций. HDL Coder выполняет следующие шаги для каждой итерации:
Анализирует логику в вашем проекте.
Генерирует код.
Использует инструмент синтеза, чтобы анализировать сгенерированный код и получает посткарту, синхронизирующую аналитические данные.
Назад аннотирует проект аналитическими данными о синхронизации.
Вставляет конвейерные регистры, чтобы повредить критический путь.
Задержки балансов.
Сохраняет данные об итерации в новой папке.
Когда HDL Coder удовлетворил вашей цели частоты часов, или это достигло максимального количества итераций, это сохраняет сгенерированный код и данные об итерации в новой папке и генерирует отчет, который описывает итоговый критический путь.
Когда HDL Coder выходит из цикла оптимизации, он сохраняет результаты в папке итоговой итерации,
.hdlsrc/your_model_name/hdlexpl/Final-timestamp
Итоговая папка итерации содержит:
Сгенерированный HDL-код, в hdlsrc/your_model_name
Файл данных, cpGuidance.mat
, который можно использовать с исходной моделью, чтобы регенерировать код, не повторно выполняя итеративную оптимизацию.
Отчет оптимизации, summary.html
.
HDL Coder также сохраняет
HDL Coder генерирует отчет для итоговой итерации оптимизации и сохраняет ее в итоговой папке итерации,
.hdlsrc/your_model_name/hdlexpl/Final-timestamp
Итоговый отчет оптимизации, summary.html
, содержит следующее:
Итоговый раздел, с:
Итоговая задержка критического пути.
Задержка критического пути и прошедшее время для каждой итерации.
Диагностический раздел, с:
Причина остановки в итоговой итерации.
Модель или настройки блока, которые могут уменьшать точность анализа критического пути.
Если ваша модель имеет эти настройки, удалите их, если это возможно, и повторно выполните hdlcoder.optimizeDesign
. Некоторая оптимизация, такой, как распределено конвейеризация и ограниченный выходной конвейер, изменяет размещение конвейерных регистров после того, как кодер будет анализировать критический путь.
Описание критического пути, которое показывает сигналы и компоненты в обоих исходная модель и сгенерированная модель, которые являются частью критического пути.
Можно видеть сообщение, в котором говорится, что сигнал или компонент на критическом пути не могут быть прослежены до исходной модели. HDL Coder не может смочь сопоставить свое внутреннее представление вашего проекта назад к первоначальному проекту. Каждая итерация оптимизации изменяет внутреннее представление, таким образом, итоговое представление может иметь структуру, которая отличается от вашего первоначального проекта.
Вашим инструментом синтеза должен быть Xilinx® ISE или Xilinx Vivado®, и ваше целевое устройство должно быть FPGA Xilinx.
В текущем релизе автоматическая итеративная оптимизация не поддерживает оборудование Altera®.
Выполнение автоматической итеративной оптимизации может занять много времени, в зависимости от сложности вашего проекта. Чтобы помочь смягчить стоимость времени, hdlcoder.optimizeDesign
может регенерировать код от предыдущего выполнения или возобновиться от прерванного выполнения.
Автоматическая итеративная оптимизация доступна из командной строки только.
HDL Coder использует посткарту, синхронизирующую информацию, которую инструмент синтеза генерирует прежде, чем выполнить место и маршрут. Информация о синхронизации посткарты менее точна, чем синхронизация информации, которую инструмент синтеза генерирует после места и маршрута, но быстрее, чтобы получить.