Размещение является важным шагом в автоматизации электронного проектирования — частью процесса физического проектирования , которая определяет точные местоположения для различных компонентов схемы в основной области чипа. Неправильное размещение не только повлияет на производительность чипа , но также может сделать его непригодным для производства из-за чрезмерной длины проводов, которая выходит за пределы доступных ресурсов маршрутизации . Следовательно, специалист по россыпи должен выполнить задание, одновременно оптимизируя ряд задач, чтобы гарантировать, что схема соответствует требованиям к производительности. Вместе этапы размещения и маршрутизации при проектировании ИС называются местом и маршрутом .
Разместитель берет заданный список соединений синтезированных схем вместе с технологической библиотекой и создает действительный макет размещения. Компоновка оптимизирована в соответствии с вышеупомянутыми целями и готова к изменению размера и буферизации ячеек — шагу, необходимому для обеспечения синхронизации и целостности сигнала . Далее следует синтез дерева часов и маршрутизация , завершающие процесс физического проектирования. Во многих случаях части или весь процесс физического проектирования повторяется несколько раз, пока не будет достигнуто завершение проекта .
В случае специализированных интегральных схем или ASIC область компоновки ядра чипа состоит из ряда рядов фиксированной высоты, с небольшим пространством между ними или без него. Каждая строка состоит из ряда мест, которые могут быть заняты компонентами схемы. Бесплатный сайт — это сайт, который не занят ни одним компонентом. Компонентами схемы являются стандартные ячейки, макроблоки или площадки ввода-вывода. [1] Стандартные ячейки имеют фиксированную высоту, равную высоте строки, но имеют переменную ширину. Ширина ячейки представляет собой целое число узлов.
С другой стороны, блоки обычно больше ячеек и имеют переменную высоту, что позволяет растягивать несколько строк. [1] Некоторые блоки могут иметь заранее назначенные места — скажем, из предыдущего процесса планирования этажа — что ограничивает задачу укладчика назначением мест только для ячеек. В этом случае блоки обычно называются фиксированными блоками. Альтернативно, некоторые или все блоки могут не иметь заранее назначенных местоположений. В этом случае их необходимо разместить вместе с ячейками в так называемом смешанном режиме размещения.
Помимо ASIC, размещение сохраняет свою первостепенную важность в структурах вентильных матриц, таких как программируемые пользователем вентильные матрицы (FPGA). Здесь готовые транзисторы обычно располагаются рядами (или «массивами»), которые разделены каналами маршрутизации. [2] Размещение отображает подсхемы схемы в программируемые логические блоки FPGA таким образом, чтобы гарантировать завершение последующего этапа маршрутизации.
Размещение формулируется как ограниченная оптимизация . В частности, тактовый цикл чипа определяется задержкой его самого длинного пути, обычно называемого критическим путем. Учитывая характеристики производительности, установщик должен гарантировать, что не существует пути с задержкой, превышающей максимальную заданную задержку.
Другие ключевые ограничения включают в себя
Обычно существует несколько целей оптимизации, в том числе:
Кроме того, желательно быстро завершить процесс размещения.
Общая длина проводов обычно является основной целью большинства существующих россыпей и служит предшественником других оптимизаций, поскольку, например, мощность и задержка имеют тенденцию расти с увеличением длины проводов. Общая длина провода определяет потребность в маршрутизации и то, может ли она быть удовлетворена за счет обеспечения маршрутизации, определяемого доступными дорожками маршрутизации. Однако очень короткие провода иногда приводят к тому, что потребность в местной маршрутизации превышает предложение местной маршрутизации. В таких ситуациях часто требуется обходная маршрутизация, что увеличивает длину проводов и задержки сигнала. Поэтому после предварительной оптимизации общей длины проводов также важно справиться с перегрузками маршрутизации.
При минимизации мощности обычно отмечаются провода с более высокими коэффициентами коммутационной активности и присваивается больший приоритет их укорочению. Если рядом расположено много «горячих» компонентов, может возникнуть горячая точка, что приведет к опасным температурным градиентам. В таких случаях компоненты можно разложить.
Размещение делится на глобальное и детальное. Глобальное размещение вносит существенные изменения, распределяя все экземпляры по соответствующим местам в глобальном масштабе с возможностью незначительного перекрытия. При детальном размещении каждый экземпляр перемещается в ближайшее законное место с очень умеренными изменениями планировки. Размещение и общее качество дизайна больше всего зависят от глобальной производительности размещения.
Ранние методы размещения интегральных схем можно отнести к категории комбинаторной оптимизации . Для конструкций ИС с тысячами или десятками тысяч компонентов наилучшие результаты показывают методы моделирования отжига [3], такие как TimberWolf [4] . Когда проекты ИС выросли до миллионов компонентов, при размещении стало использоваться разделение гиперграфов [5] с использованием фреймворков вложенного разделения, таких как Capo. [6] Комбинаторные методы напрямую предотвращают перекрытие компонентов, но затрудняют оптимизацию межсоединений в больших масштабах. Обычно они являются стохастическими и могут давать совершенно разные результаты для одного и того же ввода при многократном запуске.
Аналитические методы глобальной модели размещения соединяют длину непрерывной функцией и минимизируют эту функцию непосредственно с учетом ограничений плотности компонентов. Эти методы работают быстрее и лучше масштабируются, чем комбинаторные методы, но не предотвращают перекрытие компонентов и должны подвергаться постобработке комбинаторными методами для детального размещения. Квадратичное размещение — это ранний аналитический метод, который моделирует длину межсоединений с помощью квадратичной функции и использует высокопроизводительные методы квадратичной оптимизации. При разработке он продемонстрировал конкурентоспособное качество результатов, а также стабильность, в отличие от комбинаторных методов. ГОРДИАН [7] формулирует стоимость длины провода как квадратичную функцию, сохраняя при этом разделение ячеек посредством рекурсивного разделения. Алгоритм [8] моделирует плотность размещения как линейный член квадратичной функции стоимости и решает проблему размещения с помощью чистого квадратичного программирования. Распространенным усовершенствованием является взвешивание каждой цепи на величину, обратную ее длине на предыдущей итерации. При условии, что процесс сходится, это минимизирует объективную линейную зависимость от длины провода. [9] Большинство современных квадратичных россыпей (KraftWerk, [10] FastPlace, [11] SimPL [12] ) следуют этой схеме, каждая из которых имеет разные эвристические методы определения силы линейной плотности.
Нелинейное размещение моделирует длину провода с помощью экспоненциальных (нелинейных) функций и плотность с помощью локальных кусочно-квадратичных функций, чтобы добиться большей точности и, следовательно, улучшения качества. [13] Последующая научная работа включает APlace [14] и NTUplace. [15]
ePlace [16] — это современный алгоритм глобального размещения. Он разделяет экземпляры путем моделирования электростатического поля, что сводит к минимуму затраты на качество и обеспечивает хорошую производительность.
В 2021 году Google Brain сообщил о хороших результатах использования методов искусственного интеллекта (в частности, обучения с подкреплением) для решения проблемы размещения. [17] Однако этот результат весьма спорен, [18] [19] [20], поскольку статья не содержит прямых сравнений с существующими россыпями, и ее трудно воспроизвести из-за запатентованного содержания. По крайней мере один изначально положительный комментарий был отозван после дальнейшего рассмотрения. [21]
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )