intel-логотип

Intel AN 903 Ускорение закрытия времени

intel-AN-903-Ускорение-Время-Закрытие-ПРОДУКТ

AN 903: Ускорение закрытия времени в Intel® Quartus® Prime Pro Edition

Плотность и сложность современных конструкций FPGA, которые сочетают в себе встроенные системы, IP и высокоскоростные интерфейсы, создают все более сложные задачи для замыкания по времени. Поздние архитектурные изменения и проблемы с проверкой могут привести к длительным итерациям проектирования. В этом документе представлены три шага по ускорению закрытия временных интервалов с использованием проверенной и воспроизводимой методики в программном обеспечении Intel® Quartus® Prime Pro Edition. Эта методология включает в себя первоначальный анализ и оптимизацию RTL, а также автоматизированные методы для минимизации времени компиляции и снижения сложности проектирования и итераций, необходимых для закрытия времени.

Шаги по ускорению закрытия тайминга

intel-AN-903-Ускорение-Время-Закрытие-FIG-1

Шаги по ускорению закрытия тайминга

Шаг закрытия времени Сроки закрытия деятельности Подробная информация
Шаг 1: Анализ и оптимизация RTL •    Исправление нарушений в Design Assistant на странице 4

•    Уменьшить логические уровни на странице 7

•    Уменьшить высокие разветвленные сети на странице 9

•    Intel Квартус Прайм Про Руководство пользователя издания: Дизайн Оптимизация

•    Intel Квартус Прайм Про Руководство пользователя издания: Дизайн рекомендации

Шаг 2: Примените оптимизацию компилятора •    Применение режимов оптимизации компилятора и стратегии на странице 13

•    Уменьшите перегрузку для высокой загрузки на странице 16

•    Intel Квартус Прайм Про Руководство пользователя издания: Дизайн Сборник

•    Intel Квартус Прайм Про Руководство пользователя издания: Дизайн Оптимизация

Шаг 3: Сохраните удовлетворительные результаты •    Заблокируйте часы, RAM и DSP на странице 20

•    Сохранить результаты раздела дизайна на странице 21

•    Intel Квартус Прайм Про Руководство пользователя издания: Block- Основанный дизайн

•    AN-899: Сокращение компиляции Время с быстрым сохранением

Шаг 1. Анализ и оптимизация дизайна RTL

Оптимизация исходного кода проекта обычно является первым и наиболее эффективным методом повышения качества результатов. Помощник по дизайну Intel Quartus Prime помогает быстро исправить основные нарушения правил проектирования и рекомендует изменения RTL, которые упрощают оптимизацию проекта и сокращение времени.

Проблемы со сроками закрытия

  • Чрезмерные логические уровни влияют на порядок обработки Fitter, продолжительность и качество результатов.
  • Сети с высоким разветвлением вызывают перегрузку ресурсов и добавляют дополнительную нагрузку на пути данных, без необходимости повышая критичность пути и усложняя замыкание по времени. Это напряжение представляет собой силу притяжения, притягивающую путь (и все пути, которые разделяют этот сигнал с высоким разветвлением) к источнику с высоким разветвлением.

Решения для закрытия времени

  • Исправление нарушений Design Assistant на стр. 4 — для быстрого выявления и исправления основных нарушений правил проектирования, относящихся к вашему проекту.
  • Сокращение логических уровней на стр. 7 — чтобы гарантировать, что все элементы проекта могут получить одинаковые оптимизации Fitter, и сократить время компиляции.
  • Уменьшите количество цепей High Fan-Out на стр. 9 — чтобы уменьшить перегрузку ресурсов и упростить закрытие по времени.

Сопутствующая информация

  • «Проверка правил проектирования с помощью Design Assistant», Руководство пользователя Intel Quartus Prime Pro Edition: рекомендации по проектированию
  • «Оптимизация исходного кода», Руководство пользователя Intel Quartus Prime Pro Edition: оптимизация дизайна
  • «Регистры дублирования для управления разветвлением», Руководство пользователя Intel Quartus Prime Pro Edition: оптимизация дизайна

Исправление нарушений в Design Assistant

Выполнение начального анализа проекта для устранения известных проблем с синхронизацией по времени значительно повышает производительность. После запуска начальной компиляции с настройками по умолчанию вы можетеview Помощник по дизайну сообщает о первоначальном анализе. Если этот параметр включен, Design Assistant автоматически сообщает о любых нарушениях стандартного набора рекомендаций по проектированию Intel FPGA. Вы можете запустить Design Assistant в режиме Compilation Flow, что позволит вам view нарушения, относящиеся к компиляцииtagда ты бежишь. Кроме того, Design Assistant доступен в режиме анализа в Timing Analyzer и Chip Planner.

  • Режим потока компиляции— запускается автоматически в течение одной или нескольких секундtages компиляции. В этом режиме Design Assistant использует входящие (переходные) данные во время компиляции.
  • Режим анализа— запускать Design Assistant из Timing Analyzer и Chip Planner для анализа нарушений конструкции в определенный момент компиляции.tage, прежде чем двигаться вперед в потоке компиляции. В режиме анализа Design Assistant использует данные статического снимка компиляции.

Design Assistant назначает каждому нарушению правила один из следующих уровней серьезности. Вы можете указать, какие правила вы хотите, чтобы Помощник по дизайну проверял в вашем дизайне, и настроить уровни серьезности, тем самым исключая проверки правил, которые не важны для вашего дизайна.

Уровни важности правила Design Assistant

Категории Описание Цвет уровня серьезности
критический Решение проблемы для передачи. Красный
High Потенциально вызывает функциональную недостаточность. Может указывать на отсутствующие или неправильные проектные данные. Апельсин
Средний Потенциально влияет на качество результатов для fMAX или использования ресурсов. коричневый
Низкий Правило отражает лучшие практики для руководств по кодированию RTL. Синии

Настройка помощника по дизайну
Вы можете полностью настроить Design Assistant в соответствии с вашими индивидуальными характеристиками проекта и требованиями к отчетности. Щелкните «Назначения» ➤ «Настройки» ➤ «Настройки правил Design Assistant», чтобы указать параметры, определяющие, какие правила и параметры применяются к различнымtages компиляции дизайна для проверки правил проектирования.

Настройки правила помощника по дизайнуintel-AN-903-Ускорение-Время-Закрытие-FIG-2

Помощник по дизайну
Если этот параметр включен, Design Assistant запускается автоматически во время компиляции и сообщает о включенных нарушениях правил проектирования в отчете о компиляции. Кроме того, вы можете запустить Design Assistant в режиме анализа для определенного моментального снимка компиляции, чтобы сфокусировать анализ только на этом снимке.tagе. Чтобы включить автоматическую проверку Design Assistant во время компиляции:

  • Включите параметр «Включить выполнение Design Assistant во время компиляции» в настройках правила Design Assistant. Чтобы запустить Design Assistant в режиме анализа для проверки конкретного снимка на соответствие любым правилам проектирования, применимым к этому снимку:
  • Щелкните Report DRC на панели задач Timing Analyzer или Chip Planner.

ViewСоздание и коррекция результатов Design Assistant
Отчеты Design Assistant позволили выявить нарушения правил проектирования в различных областях.tages Отчета о компиляции.

Результаты Design Assistant в синтезе, планировании, размещении и завершении отчетовintel-AN-903-Ускорение-Время-Закрытие-FIG-3

к view результаты для каждого правила, щелкните правило в списке правил. Появится описание правила и рекомендации по его исправлению.

Рекомендация о нарушении правил Design Assistant

intel-AN-903-Ускорение-Время-Закрытие-FIG-4

Измените свой RTL, чтобы исправить нарушения правил проектирования.

Уменьшить логические уровни

Чрезмерные логические уровни могут повлиять на качество результатов Fitter, поскольку критический путь проектирования влияет на порядок и продолжительность обработки Fitter. Слесарь-установщик размещает и прокладывает конструкцию с учетом запаса времени. Слесарь сначала укладывает более длинные дорожки с наименьшим провисанием. Установщик обычно отдает приоритет путям более высокого логического уровня по сравнению с путями более низкого логического уровня. Как правило, после слесаряtage завершена, оставшиеся критические пути не являются путями самого высокого логического уровня. Fitter дает предпочтительное размещение, маршрутизацию и повторное определение времени логике более высокого уровня. Уменьшение логического уровня помогает гарантировать, что все элементы проекта получат одинаковый приоритет Fitter. Выполнить отчеты ➤ Пользовательские отчеты ➤ Отчет о времени в анализаторе времени для создания отчетов, показывающих уровни логики в пути. Если путь не синхронизирован и количество логических уровней велико, рассмотрите возможность добавления конвейерной обработки в эту часть проекта для повышения производительности.

Логическая глубина в отчете о путях

intel-AN-903-Ускорение-Время-Закрытие-FIG-5

Отчет о глубине логического уровня
После того, как план компилятораtage, вы можете запустить report_logic_depth в Tcl-консоли Timing Analyzer, чтобы view количество логических уровней в домене часов. report_logic_depth показывает распределение логической глубины между критическими путями, позволяя вам определить области, в которых вы можете уменьшить логические уровни в вашем RTL.

report_logic_depth - имя_панели -от [get_clocks ] \ -to [get_clocks ]

report_logic_depth Выводintel-AN-903-Ускорение-Время-Закрытие-FIG-6

Чтобы получить данные для оптимизации RTL, запустите report_logic_depth после того, как план компилятораtage, перед запуском оставшихся Fitter stagэ. В противном случае отчеты post-Fitter также включают результаты физической оптимизации (восстановление синхронизации и повторный синтез).

Сообщение о соседних путях
После запуска Fitter (Finalize) stage, вы можете запустить report_neighbor_paths, чтобы помочь определить основную причину критического пути (например,ampфайл, высокий логический уровень, ограничение восстановления синхронизации, неоптимальное размещение, пересечение столбцов ввода-вывода, исправление задержки и т. д.): report_neighbor_paths -to_clock -нпути -panel_name

report_neighbor_paths сообщает о наиболее критичных ко времени путях в проекте, включая связанные резервы, дополнительную сводную информацию о путях и ограничивающие рамки пути.

report_neighbor_paths Выводintel-AN-903-Ускорение-Время-Закрытие-FIG-7

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

Чтобы включить повторное определение времени, убедитесь, что включены следующие параметры:

  • Для регистров — включите «Назначения» ➤ «Параметры» ➤ «Параметры компилятора» ➤ «Оптимизация регистров» ➤ «Разрешить повторную синхронизацию регистров».
  • Для конечных точек ОЗУ — включите «Назначения» ➤ «Настройки» ➤ «Настройки компилятора» ➤ «Настройки Fitter (дополнительно)» ➤ «Разрешить повторную синхронизацию ОЗУ».
  • Для конечных точек DSP — включите «Назначения» ➤ «Настройки» ➤ «Настройки компилятора» ➤ «Настройки Fitter (дополнительно)» ➤ «Разрешить повторную синхронизацию DSP».

ЗАМЕТКА

Если требуется дальнейшая балансировка логики, вы должны вручную изменить RTL, чтобы переместить логику с критического пути на путь до или путь после.
Если выход регистра соединен с его входом, один или оба соседних пути могут совпадать с текущим путем. При поиске соседних путей с наибольшей слабиной учитываются все рабочие условия, а не только рабочие условия основного пути.

Визуализация логических уровней в технологической карте Viewer
Карта технологий Viewer также предоставляет схематические, технологические представления списка соединений проекта и может помочь вам увидеть, какие области в проекте могут выиграть от уменьшения количества логических уровней. Вы также можете подробно изучить физическое расположение пути в Планировщике чипов. Чтобы найти путь синхронизации в одном из view, щелкните правой кнопкой мыши путь в отчете о времени, выберите «Найти путь» и выберите «Найти на карте технологий». Viewэ.

Уменьшить высокие разветвленные сети

Сети с высоким разветвлением могут вызвать перегрузку ресурсов, тем самым усложнив закрытие времени. Как правило, компилятор автоматически управляет высокоразветвленными цепями, связанными с часами. Компилятор автоматически продвигает распознанные сети с высоким разветвлением в глобальную сеть часов. Компилятор прилагает больше усилий для оптимизации во время выполнения Place и Route.tages, что приводит к выгодному дублированию регистров. В следующих крайних случаях вы можете дополнительно уменьшить перегрузку, внеся следующие ручные изменения в проект RTL:

Сетчатые угловые шкафы с высоким разветвлением

Дизайн Характеристика Ручная RTL-оптимизация
Сети с высоким разветвлением, которые охватывают множество иерархий или физически удаленных пунктов назначения Укажите назначение Duplicate_hierarchy_depth для последнего регистра в конвейере, чтобы вручную дублировать сети с высоким разветвлением по иерархиям. Укажите назначение дубликата_регистра для дублирования регистров во время размещения.
Конструкции с управляющими сигналами на блоки памяти DSP или M20K от комбинационной логики Подайте управляющий сигнал в память DSP или M20K из регистра.

Регистрация дублирования в иерархиях
Для последнего регистра в конвейере можно указать назначение дубликата_иерархии_глубины, чтобы управлять созданием дублирования регистров и разветвлений. На следующих рисунках показано влияние следующего присваивания Dubai_hierarchy_depth:

set_instance_assignment -name дублирующая_иерархия_глубина -to \

Где:

  • register_name — последний регистр в цепочке, разветвленной на несколько иерархий.
  • level_number — количество регистров в цепочке для дублирования.

Рис. 9. Перед дублированием регистров
Задайте назначение дубликата_иерархии_глубины для реализации дублирования регистров в иерархиях и создайте дерево регистров после последнего регистра в цепочке. Вы указываете имя регистра и количество дубликатов, представленных M, в следующем примереampле. Красные стрелки показывают потенциальное расположение дубликатов регистров.

  • set_instance_assignment – ​​имя DUPLICATE_HIERARCHY_DEPTH – в regZ Mintel-AN-903-Ускорение-Время-Закрытие-FIG-8

Дублирование регистра = 1
Указание следующего одиночного уровня дублирования регистров (M=1) дублирует один регистр (regZ) вниз на один уровень иерархии проекта:

  • set_instance_assignment – ​​имя DUPLICATE_HIERARCHY_DEPTH – в regZ 1intel-AN-903-Ускорение-Время-Закрытие-FIG-9

Дублирование регистра = 3
Указание трех уровней дублирования регистров (M=3) приводит к дублированию трех регистров (regZ, regY, regX) на три, два и один уровень иерархии соответственно:

  • set_instance_assignment – ​​имя DUPLICATE_HIERARCHY_DEPTH – в regZ 3intel-AN-903-Ускорение-Время-Закрытие-FIG-10

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

Регистрация дублирования при размещении
На рис. 12 на стр. 11 показан регистр с большим разветвлением на обширную область микросхемы. Дублируя этот регистр 50 раз, вы можете уменьшить расстояние между регистром и адресатом, что в конечном итоге приведет к увеличению производительности часов. Присвоение повторяющегося регистра позволяет компилятору использовать физическую близость для управления размещением новых регистров, питающих подмножество ответвлений.

Рисунок 12. Дублирование регистра во время размещенияintel-AN-903-Ускорение-Время-Закрытие-FIG-11

Примечание: Чтобы транслировать сигнал через чип, используйте multistagе трубопровод. Примените назначение дубликата_регистра к каждому из регистров в конвейере. Этот метод создает древовидную структуру, которая передает сигнал через чип.

ViewРезультаты дублирования
После синтеза дизайна, view результаты дублирования отображаются в сводном отчете о дублировании иерархического дерева в папке «Синтез» отчета о компиляции. В отчете содержится следующее:

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

Отчет Fitter также содержит раздел о регистрах, для которых задана настройка «Duplicate_register».

Применение методов оптимизации компилятора

Дизайны, использующие очень высокий процентtagИспользование ресурсов устройства FPGA может привести к перегрузке ресурсов, что приведет к снижению fMAX и более сложному замыканию по времени. Настройки режима оптимизации компилятора позволяют указать фокус усилий компилятора во время синтеза. Для бывшегоample, вы оптимизируете синтез для области или маршрутизации при решении проблемы перегрузки ресурсов. Вы можете поэкспериментировать с комбинациями этих же настроек режима оптимизации в Intel Quartus Prime Design Space Explorer II. Эти настройки и другие ручные методы могут помочь вам уменьшить перегрузку в часто используемых проектах.

Проблема закрытия времени

  • Конструкции с очень высоким коэффициентом использования ресурсов устройства усложняют синхронизацию.

Решения для закрытия времени

  • Примените режимы и стратегии оптимизации компилятора на стр. 13 — укажите основную цель режима оптимизации для синтеза проекта.
  • Поэкспериментируйте с параметрами области и маршрутизации на стр. 16 — примените дополнительные наборы настроек, чтобы уменьшить перегрузку и достичь целей по площади и маршрутизации.
  • Рассмотрим фрактальный синтез для проектов с интенсивными арифметическими операциями на стр. 16. Для проектов с высокой пропускной способностью и интенсивными арифметическими операциями фрактальный синтез снижает использование ресурсов устройства за счет регуляризации множителей, восстановления синхронизации и непрерывной арифметической упаковки.

Сопутствующая информация

  • Глава «Временное закрытие и оптимизация», Руководство пользователя Intel Quartus Prime Pro Edition: оптимизация дизайна
  • Руководство пользователя Intel Quartus Prime Pro Edition: компиляция проекта

Применение режимов и стратегий оптимизации компилятора

Используйте следующую информацию, чтобы применить режимы оптимизации компилятора и стратегии компиляции Design Space Explorer II (DSE II).

Поэкспериментируйте с настройками режима оптимизации компилятора
Выполните следующие шаги, чтобы поэкспериментировать с настройками режима оптимизации компилятора:

  1. Создайте или откройте проект Intel Quartus Prime.
  2. Чтобы задать высокоуровневую стратегию оптимизации компилятора, выберите «Назначения» ➤ «Настройки» ➤ «Настройки компилятора». Поэкспериментируйте с любой из следующих настроек режима, как описано в Таблице 4 на стр. 14.
  3. Чтобы скомпилировать проект с этими настройками, нажмите «Начать компиляцию» на панели компиляции.
  4. View результаты компиляции в Отчете о компиляции.
  5. Выберите «Инструменты» ➤ «Анализ времени», чтобы view результаты оптимизации настроек по производительности.

Настройки режима оптимизации компилятора

intel-AN-903-Ускорение-Время-Закрытие-FIG-22

Режимы оптимизации (страница настроек компилятора)

Режим оптимизации Описание
Сбалансированный (нормальный поток) Компилятор оптимизирует синтез для сбалансированной реализации, учитывающей временные ограничения.
Высокая производительность Компилятор увеличивает усилия по оптимизации синхронизации во время размещения и маршрутизации, а также включает оптимизацию физического синтеза, связанную с синхронизацией (на настройки оптимизации регистра). Каждая дополнительная оптимизация может увеличить время компиляции.
Высокая производительность с максимальным усилием размещения Включает те же оптимизации компилятора, что и Высокая производительность, с дополнительными усилиями по оптимизации мест размещения.
Превосходную производительность Включает те же оптимизации компилятора, что и Высокая производительность, и добавляет больше оптимизаций во время анализа и синтеза, чтобы максимизировать производительность проектирования с потенциальным увеличением логической области. Если коэффициент использования конструкции уже очень высок, этот параметр может привести к трудностям при подгонке, что также может негативно сказаться на общем качестве оптимизации.
Превосходная производительность с максимальным усилием размещения Включает те же оптимизации компилятора, что и Превосходную производительность, с дополнительными усилиями по оптимизации мест размещения.
Агрессивная зона Компилятор предпринимает активные усилия по уменьшению площади устройства, необходимой для реализации проекта, за счет возможного снижения производительности проекта.
Высокая маршрутизация размещения Компилятор прилагает большие усилия для маршрутизации проекта за счет потенциальной потери площади проектирования, производительности и времени компиляции. Компилятор тратит дополнительное время на сокращение использования маршрутизации, что может улучшить маршрутизацию, а также сэкономить динамическую мощность.
Высокие усилия по маршрутизации упаковки Компилятор прилагает большие усилия для маршрутизации проекта за счет потенциальной потери площади проектирования, производительности и времени компиляции. Компилятор тратит дополнительное время на упаковку регистров, что может улучшить маршрутизацию, а также экономит динамическую мощность.
Оптимизация списка соединений для маршрутизации Компилятор реализует модификации списка соединений для повышения маршрутизации за счет возможного снижения производительности.
продолжение…
Режим оптимизации Описание
Высокомощное усилие Компилятор прилагает большие усилия для оптимизации синтеза с низким энергопотреблением. Высокомощное усилие увеличивает время выполнения синтеза.
Агрессивная сила Делает агрессивные попытки оптимизировать синтез для малой мощности. Компилятор еще больше сокращает использование маршрутизации сигналов с самой высокой заданной или предполагаемой скоростью переключения, экономя дополнительную динамическую мощность, но потенциально влияя на производительность.
Агрессивное время компиляции Сокращает время компиляции, необходимое для реализации проекта, с меньшими усилиями и оптимизацией производительности. Эта опция также отключает некоторые функции подробной отчетности.

Примечание: Включение Агрессивное время компиляции включает настройки Intel Quartus Prime File (.qsf), которые нельзя переопределить другими настройками .qsf.

Разработка стратегий компиляции Space Explorer II
DSE II позволяет найти оптимальные настройки проекта для целей оптимизации ресурсов, производительности или энергопотребления. DSE II позволяет итеративно компилировать проект, используя различные предустановленные комбинации настроек и ограничений для достижения конкретной цели. Затем DSE II сообщает о наилучшем сочетании настроек для достижения ваших целей. DSE II также можетtage возможностей распараллеливания для компиляции семян на нескольких компьютерах. Настройки стратегии компиляции DSE II повторяют настройки режима оптимизации в таблице 4 на стр. 14.

Дизайн Space Explorer IIintel-AN-903-Ускорение-Время-Закрытие-FIG-12

Выполните следующие шаги, чтобы указать стратегию компиляции для DSE II:

  1. Чтобы запустить DSE II (и закрыть программное обеспечение Intel Quartus Prime), выберите «Инструменты» ➤ «Запустить Design Space Explorer II». DSE II открывается после закрытия программного обеспечения Intel Quartus Prime.
  2. На панели инструментов DSE II щелкните значок «Исследование».
  3. Разверните точки исследования.
  4. Выберите Исследование дизайна. Включите любую из стратегий компиляции, чтобы запустить исследования дизайна, ориентированные на эти стратегии.

Уменьшите перегрузку для высокой загрузки

Конструкции, которые используют более 80% ресурсов устройства, обычно представляют наибольшие трудности с синхронизацией. Вы можете применить следующие ручные и автоматические методы, чтобы еще больше уменьшить перегрузку и упростить закрытие времени.

  • Поэкспериментируйте с параметрами области и маршрутизации на стр. 16
  • Рассмотрим фрактальный синтез для расчетов с интенсивными вычислениями на стр. 16.

Поэкспериментируйте с параметрами области и маршрутизации

Когда использование устройства вызывает перегрузку маршрутизации, вы можете поэкспериментировать с параметрами оптимизации области и маршрутизации, чтобы уменьшить использование ресурсов и перегрузку для вашего проекта. Щелкните «Назначения» ➤ «Настройки» ➤ «Настройки компилятора» ➤ «Режим оптимизации», чтобы получить доступ к этим настройкам:

Параметры области и маршрутизации

intel-AN-903-Ускорение-Время-Закрытие-FIG-13

Рассмотрим фрактальный синтез для интенсивных арифметических расчетов

Для проектов с высокой пропускной способностью и интенсивной арифметикой можно включить автоматическую оптимизацию синтеза фракталов, чтобы улучшить использование ресурсов устройства. Оптимизация фрактального синтеза включает регуляризацию множителя и повторную синхронизацию, а также непрерывную арифметическую упаковку. Оптимизации нацелены на проекты с большим количеством низкоточных арифметических операций (таких как сложения и умножения). Вы можете включить синтез фракталов глобально или только для определенных множителей. В идеальных условиях оптимизация фрактального синтеза может привести к уменьшению площади на 20-45%.

Регуляризация множителя и восстановление синхронизации
Регуляризация множителя и восстановление синхронизации позволяют сделать вывод о высокооптимизированных реализациях мягкого множителя. Компилятор может применить обратную синхронизацию к двум или более конвейерам.tagе если требуется. Когда вы включаете фрактальный синтез, компилятор применяет регуляризацию множителя и повторное определение времени к знаковым и беззнаковым множителям.

Рисунок 16. Восстановление синхронизации множителяintel-AN-903-Ускорение-Время-Закрытие-FIG-14

ЗАМЕТКА

  • Регуляризация множителя использует только логические ресурсы и не использует блоки DSP.
  • Регуляризация множителя и восстановление синхронизации применяются как к множителям со знаком, так и к множителям без знака в модулях, где установлено назначение FRACTAL_SYNTHESIS QSF.

Непрерывная арифметическая упаковка
Непрерывная арифметическая упаковка повторно синтезирует арифметические вентили в логические блоки оптимального размера, чтобы поместиться в лаборатории Intel FPGA. Эта оптимизация позволяет использовать ресурсы LAB для арифметических блоков до 100%. Когда вы включаете фрактальный синтез, компилятор применяет эту оптимизацию ко всем цепочкам переноса и логическим элементам с двумя входами. Эта оптимизация может упаковывать деревья сумматоров, множители и любую другую логику, связанную с арифметикой.

Непрерывная арифметическая упаковка

intel-AN-903-Ускорение-Время-Закрытие-FIG-15

ЗАМЕТКА

Обратите внимание, что непрерывная арифметическая упаковка работает независимо от регуляризации множителей. Таким образом, если вы используете нерегуляризованный множитель (например, пишете свой собственный множитель), то непрерывная арифметическая упаковка все равно может работать. Оптимизация фрактального синтеза больше всего подходит для проектов с ускорителями глубокого обучения или другими высокопроизводительными арифметически интенсивными функциями, которые превышают все ресурсы DSP. Включение фрактального синтеза для всего проекта может привести к ненужному раздуванию модулей, которые не подходят для фрактальной оптимизации.

Включение или выключение фрактального синтеза

Для устройств Intel Stratix® 10 и Intel Agilex™ оптимизация фрактального синтеза запускается автоматически для малых множителей (любой оператор A*B в Verilog HDL или VHDL, где разрядность операндов составляет 7 или меньше). Вы также можете отключить автоматический синтез фракталов для малых множителей для этих устройств одним из следующих способов:

  • В RTL установите мультистиль DSP, как описано в разделе «Многостиль Verilog HDL Synthesis Attribute». Для бывшегоample: (* multistyle = «dsp» *) модуль foo(…); модуль foo(..) /* синтез multistyle = «dsp» */;
  • В .qsf file, добавьте в качестве назначения следующим образом: set_instance_assignment -name DSP_BLOCK_BALANCING_IMPLEMENTATION \DSP_BLOCKS -to r

Кроме того, для устройств Intel Stratix 10, Intel Agilex, Intel Arria® 10 и Intel Cyclone® 10 GX можно включить фрактальный синтез глобально или для определенных множителей с помощью параметра графического интерфейса Fractal Synthesis или соответствующего назначения FRACTAL_SYNTHESIS .qsf:

  • В RTL используйте altera_attribute следующим образом: (* altera_attribute = «-name FRACTAL_SYNTHESIS ON» *)
  • В .qsf file, добавьте в качестве назначения следующим образом: set_global_assignment -name FRACTAL_SYNTHESIS ON -entity

В пользовательском интерфейсе выполните следующие действия:

  1. Щелкните «Назначения» ➤ «Редактор назначений».
  2. Выберите «Фрактальный синтез» для «Имя назначения», «Вкл.» для «Значение», имя объекта с интенсивными арифметическими операциями для объекта и имя экземпляра в столбце «Кому». Вы можете ввести подстановочный знак (*) для Кому, чтобы назначить все экземпляры сущности.

Рис. 18. Назначение фрактального синтеза в редакторе назначений

intel-AN-903-Ускорение-Время-Закрытие-FIG-16

Сопутствующая информация

  • Атрибут многостилевого синтеза Verilog HDL
    • В справке Intel Quartus Prime.

Сохранить удовлетворительные результаты

Вы можете упростить закрытие времени, аннотируя удовлетворительные результаты компиляции, чтобы заблокировать размещение больших блоков, связанных с часами, оперативной памятью и DSP. Точно так же методика повторного использования проектных блоков позволяет сохранить удовлетворительные результаты компиляции для конкретных блоков периферийных устройств FPGA или базовой логики (логика, содержащая иерархический экземпляр проекта), а затем повторно использовать эти блоки в последующих компиляциях. При повторном использовании проектного блока вы назначаете иерархический экземпляр в качестве проектного раздела, а затем сохраняете и экспортируете раздел после успешной компиляции. Сохранение и повторное использование удовлетворительных результатов позволяет вам сосредоточить усилия и время компилятора только на тех частях проекта, которые не имеют закрытого тайминга.

Проблема закрытия времени

  • Если компилятор не заблокирован, он может реализовывать блоки проектирования, часы, ОЗУ и DSP по-разному от компиляции к компиляции в зависимости от различных факторов.

Решения для закрытия времени

  • Блокировка тактовых импульсов, ОЗУ и ЦСП на стр. 20 — аннотируйте удовлетворительные результаты компиляции, чтобы заблокировать размещение больших блоков, связанных с тактовыми генераторами, ОЗУ и ЦСП.
  • Сохранение результатов разделов проекта на стр. 21 — сохраните разделы для блоков, соответствующих времени, и сосредоточьте оптимизацию на других блоках проекта.

Сопутствующая информация

  • Справка по диалоговому окну назначений обратной аннотации
  • AN-899: Сокращение времени компиляции за счет быстрого сохранения
  • Руководство пользователя Intel Quartus Prime Pro Edition: блочное проектирование

Заблокируйте часы, RAM и DSP

Вы можете упростить закрытие времени, аннотировав удовлетворительные результаты компиляции, чтобы заблокировать размещение больших блоков, связанных с часами, ОЗУ и DSP. Блокировка размещения больших блоков может привести к более высокому значению fMAX с меньшим уровнем шума. Блокировка больших блоков, таких как RAM и DSP, может быть эффективной, потому что эти блоки имеют более сложную связь, чем обычные LAB, что усложняет перемещение во время размещения. Когда начальное значение дает хорошие результаты при подходящем размещении RAM и DSP, вы можете зафиксировать это размещение с обратной аннотацией. Последующие компиляции могут извлечь выгоду из высококачественной оперативной памяти и размещения DSP из хорошего начального числа. Этот метод не дает существенных преимуществ проектам с очень небольшим количеством RAM или DSP. Щелкните «Назначения» ➤ «Назначения с обратной аннотацией», чтобы скопировать назначения ресурсов устройства из последней компиляции в .qsf для использования в следующей компиляции. Выберите тип обратной аннотации в списке Тип обратной аннотации.

Диалоговое окно «Назначения обратной аннотации»

intel-AN-903-Ускорение-Время-Закрытие-FIG-17

Кроме того, вы можете запустить обратную аннотацию со следующим исполняемым файлом quartus_cdb. quartus_cdb –back_annotate [–dsp] [–ram] [–clock]

ЗАМЕТКА

  • Исполняемый файл поддерживает дополнительные переменные [–dsp], [–ram] и [–clock], которые еще не поддерживает диалоговое окно Back-Annotate Assignments.

Сохранить результаты раздела дизайна

ЗАМЕТКА

  • После разделения проекта вы можете сохранить разделы для блоков, которые соответствуют срокам, и сосредоточить оптимизацию на других блоках проекта. Кроме того, параметр Fast Preserve упрощает логику сохраняемого раздела, позволяя использовать только интерфейсную логику во время компиляции, тем самым сокращая время компиляции раздела. Fast Preserve поддерживает только повторное использование корневого раздела и частичную реконфигурацию. Для проектов с подмодулями, которые сложны для закрытия по времени, вы можете выполнить автономную оптимизацию и компиляцию раздела модуля, а затем экспортировать модуль с закрытием по времени, чтобы сохранить реализацию в последующих компиляциях.

Сохранение результатов раздела проекта

intel-AN-903-Ускорение-Время-Закрытие-FIG-18

Блочный дизайн требует разделения проекта. Разбиение проекта на разделы позволяет сохранить отдельные логические блоки в вашем проекте, но также может привести к потенциальной потере производительности из-за пересечения разделов и эффектов планировки. Вам необходимо сбалансировать эти факторы при использовании методов проектирования на основе блоков. Следующие высокоуровневые шаги описывают процесс сохранения разделов для проектов повторного использования корневых разделов:

  1. Щелкните «Обработка» ➤ «Пуск» ➤ «Начать анализ и уточнение».
  2. В Навигаторе проекта щелкните правой кнопкой мыши закрытый по времени экземпляр проекта, выберите раздел «Дизайн» и выберите тип раздела, как описано в разделе «Параметры раздела проекта» на стр. 23.

Создание разделов дизайна

intel-AN-903-Ускорение-Время-Закрытие-FIG-19

  1. Определите ограничения планировки Logic Lock для раздела. В окне «Конструктор разделов» щелкните правой кнопкой мыши раздел и выберите «Область логической блокировки» ➤ «Создать новую область логической блокировки». Убедитесь, что область достаточно велика, чтобы поместить всю логику в раздел.
  2. Чтобы экспортировать результаты раздела после компиляции, в окне Design Partitions укажите раздел .qdb в качестве Post Final Export. File.

После окончательного экспорта File

intel-AN-903-Ускорение-Время-Закрытие-FIG-20

  1. Чтобы скомпилировать проект и экспортировать раздел, нажмите «Компилировать проект» на панели компиляции.
  2. Откройте проект верхнего уровня в программном обеспечении Intel Quartus Prime.
  3. Щелкните «Назначения» ➤ «Параметры» ➤ «Параметры компилятора» ➤ «Инкрементная компиляция». Включите опцию «Быстрое сохранение».

Вариант быстрого сохранения

intel-AN-903-Ускорение-Время-Закрытие-FIG-21

  1. Нажмите кнопку ОК.
  2. В окне Design Partitions укажите экспортированный .qdb в качестве базы данных разделов. File для рассматриваемого раздела. Этот .qdb теперь является источником для этого раздела в проекте. Когда вы включаете опцию Fast Preserve, компилятор сокращает логику импортируемого раздела до логики интерфейса, тем самым сокращая время компиляции, необходимое разделу.

Настройки раздела дизайна

Настройки раздела дизайна

Опция Описание
Имя раздела Задает имя раздела. Имя каждого раздела должно быть уникальным и состоять только из буквенно-цифровых символов. Программное обеспечение Intel Quartus Prime автоматически создает «root_partition» верхнего уровня (|) для каждой версии проекта.
Иерархический путь Задает иерархический путь экземпляра объекта, который вы назначаете разделу. Вы указываете это значение в Создать новый раздел чат. Путь к иерархии корневого раздела — |.
Тип Дважды щелкните, чтобы указать один из следующих типов разделов, которые управляют тем, как компилятор обрабатывает и реализует раздел:
продолжение…
Опция Описание
•    По умолчанию— определяет стандартный раздел. Компилятор обрабатывает раздел, используя связанный источник проекта. files.

•    Reconfigurable— Идентифицирует реконфигурируемый раздел в потоке частичной реконфигурации. Укажите Reconfigurable type для сохранения результатов синтеза, позволяя при этом переустанавливать раздел в потоке PR.

•    Зарезервированное ядро— Идентифицирует раздел в потоке проектирования на основе блоков, который зарезервирован для основной разработки Потребителем, повторно использующим периферийные устройства устройства.

Уровень сохранения Указывает один из следующих уровней сохранения для раздела:

•    Не указан— не указывает уровень сохранения. Раздел компилируется из исходников files.

•    синтезированный— раздел компилируется с использованием синтезированного снапшота.

•    окончательный— раздел компилируется с использованием финального снапшота.

Работы С Нами Уровень сохранения of синтезированный or окончательный, изменения в исходном коде не отображаются в синтезе.

пустой Задает пустой раздел, который компилятор пропускает. Этот параметр несовместим с Зарезервированное ядро и Раздел базы данных File настройки того же раздела. Уровень сохранения должен быть Не указан. Пустой раздел не может иметь дочерних разделов.
Раздел базы данных File Указывает базу данных раздела File (.qdb), который компилятор использует во время компиляции раздела. Вы экспортируете .qdb для stage компиляции, которую вы хотите повторно использовать (синтезированную или окончательную). Назначьте .qdb разделу, чтобы повторно использовать эти результаты в другом контексте.
Повторная привязка объекта • Поток PR — определяет объект, который заменяет персону по умолчанию в каждой версии реализации.

• Поток повторного использования корневого раздела — указывает объект, который заменяет зарезервированную базовую логику в потребительском проекте.

Цвет Определяет цветовое кодирование раздела на экранах Chip Planner и Design Partition Planner.
Экспорт постсинтеза File Автоматически экспортирует результаты компиляции после синтеза для раздела в указанный вами файл .qdb при каждом запуске Analysis & Synthesis. Вы можете автоматически экспортировать любой раздел дизайна, который не имеет сохраненного родительского раздела, включая root_partition.
После окончательного экспорта File Автоматически экспортирует результаты постфинальной компиляции для раздела в указанный вами .qdb каждый раз, когдаtagе слесаря ​​бежит. Вы можете автоматически экспортировать любой раздел дизайна, который не имеет сохраненного родительского раздела, включая root_partition.

История изменений документа AN 903

Этот документ имеет следующую историю изменений:

Версия документа Версия Intel Quartus Prime изменения
2021.02.25 19.3 Заменено «тянуть» на «натяжение» в Анализ и оптимизация дизайна RTL тема.
2020.03.23 19.3 Исправлена ​​синтаксическая ошибка в коде sample в разделе «Блокировка тактовых импульсов, ОЗУ и процессоров обработки сигналов».
2019.12.03 19.3 • Первый публичный релиз.

Документы / Ресурсы

Intel AN 903 Ускорение закрытия времени [pdf] Руководство пользователя
AN 903 Ускорение закрытия по времени, AN 903, Ускорение закрытия по времени, Закрытие по времени

Оставить комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *