Введение

Стадия проектирования электронных схем

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

Специфика применения

В случае прикладных интегральных схем, или ASIC, область расположения ядра чипа состоит из ряда рядов фиксированной высоты, между которыми может быть некоторое или никакое пространство. Каждый ряд состоит из множества площадок, которые могут быть заняты элементами схемы. Свободная площадка – это площадка, не занятая каким-либо элементом. Элементы схемы могут быть стандартными ячейками, макроблоками или ввода-вывода (I/O) площадками. Стандартные ячейки имеют фиксированную высоту, равную высоте ряда, но переменную ширину. Ширина ячейки является целым числом площадок. Макроблоки, напротив, обычно больше ячеек и имеют переменную высоту, которая может занимать несколько рядов. Размещение отображает подсхемы в программируемые логические блоки FPGA таким образом, чтобы гарантировать завершение последующего этапа трассировки.

Основные методы

Размещение делится на глобальное и детальное размещение. Глобальное размещение вносит существенные изменения, распределяя все экземпляры по соответствующим позициям в глобальном масштабе с допустимыми незначительными перекрытиями. Детальное размещение перемещает каждый экземпляр в ближайшее допустимое место с минимальными изменениями макета. Эффективность глобального размещения оказывает наибольшее влияние на качество размещения и общий дизайн. Ранние методы размещения интегральных схем можно отнести к комбинаторной оптимизации. Для ИС-дизайнов, содержащих тысячи или десятки тысяч компонентов, методы имитации отжига, такие как TimberWolf, демонстрируют наилучшие результаты. С ростом ИС-дизайнов до миллионов компонентов, размещение стало использовать разделение гиперграфов с применением вложенных фреймворков разделения, таких как Capo. Комбинаторные методы напрямую предотвращают перекрытия компонентов, но испытывают трудности с оптимизацией соединений в больших масштабах. Они, как правило, стохастичны и могут выдавать существенно различающиеся результаты для одного и того же входного набора данных при повторных запусках. Аналитические методы глобального размещения моделируют длину соединений непрерывной функцией и непосредственно минимизируют эту функцию с учетом ограничений на плотность компонентов. Эти методы работают быстрее и лучше масштабируются, чем комбинаторные, но не предотвращают перекрытия компонентов и требуют постобработки комбинаторными методами для детального размещения. Квадратичное размещение – это ранний аналитический метод, который моделирует длину соединений квадратичной функцией и использует высокопроизводительные методы квадратичной оптимизации. При разработке он продемонстрировал конкурентоспособное качество результатов и стабильность, в отличие от комбинаторных методов. GORDIAN формулирует стоимость трассировки как квадратичную функцию, одновременно распределяя элементы посредством рекурсивного разделения. Алгоритм моделирует плотность размещения как линейный член в квадратичной функции стоимости и решает задачу размещения с помощью чистого квадратичного программирования. Распространенным улучшением является взвешивание каждой сети обратной величиной ее длины на предыдущей итерации. При условии сходимости процесса это минимизирует целевую функцию, линейную по длине трассировки. Большинство современных квадратичных разместителей (KraftWerk, FastPlace, SimPL) следуют этой схеме, каждый со своими эвристиками для определения силы линейной плотности. Нелинейные методы размещения моделируют длину трассировки экспоненциальными (нелинейными) функциями, а плотность – локальными кусочно-квадратичными функциями, для достижения большей точности и, следовательно, повышения качества. Дальнейшие академические работы включают APlace и NTUplace. ePlace – это современный алгоритм глобального размещения. Он распределяет экземпляры, имитируя электростатическое поле, что минимизирует потери качества и обеспечивает высокую производительность. В 2021 году Google Brain сообщил о хороших результатах использования методов искусственного интеллекта (в частности, обучения с подкреплением) для задачи размещения. Однако этот результат вызывает споры, поскольку в статье отсутствуют прямые сравнения с существующими разместителями, и его трудно воспроизвести из-за конфиденциальности контента. По крайней мере один первоначально положительный отзыв был отозван после дальнейшего рассмотрения.