© KLMH Физическое Проектирование СБИС: от Разбиения Графов до Оптимизации Временных Характеристик Глава 1 – Введение Авторы книги: VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 1 Lienig Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin Hu 1.1 Системы Автоматизированного Проектирования (САПР) 1.2 Маршруты проектирования СБИС 1.3 Стили проектирования СБИС 1.4 Уровни раскладки и правила проектирования 1.5 Задачи оптимизации при физическом проектировании 1.6 Алгоритмы и сложность алгоритмических задач 1.7 Терминология теории графов 1.8 Общая терминология САПР VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 2 Lienig © KLMH Глава 1 – Введение Системы Автоматизированного Проектирования (САПР) © KLMH 1.1 В 1965 году, Гордон Мур (один из будущих основателей компании Intel) заметил что количество транзисторов на интегральных схемах удваивалось каждый год. Через 10 лет, он поправил это утверждение, отметив удвоение каждые 18 месяцев. Вскоре, эта закономерность называлось правилом (законом) Мура. VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 3 Lienig Moore: „Cramming more components onto integrated circuits" Electronics, Vol. 38, No. 8, 1965 Правило (закон) Мура Moore’s Law Системы Автоматизированного Проектирования (САПР) © KLMH 1.1 Значимость технологий САПР для продуктивности и стоимости проектирования микросхем ITRS 2009 Cost Chart (in Millions of Dollars) Стоимость Проектирования в Мил. Долларов из Международной Дорожной Карты Полупроводниковых Технологий (издание 2009го года) 120.0 100.0 120.0 80.0 100.0 60.0 80.0 40.0 60.0 20.0 40.0 29.6 40.7 40.7 29.6 15.7 20.3 56.4 79.0 56.4 19.4 26.3 55.7 46.7 79.0 33.6 33.6 32.9 46.7 44.9 42.5 31.1 31.1 29.5 46.6 35.2 42.5 39.8 27.2 27.2 25.2 35.2 32.6 34.0 34.0 27.0 40.5 55.7 46.6 29.4 21.4 36.9 29.4 23.1 40.5 31.7 43.5 16.9 21.4 43.5 44.9 0.0 20.0 39.8 36.9 32.9 32.6 31.7 29.5 27.0 26.3 25.2 23.1 2023 2024 20.3 2011 19.4 2012 16.9 2022 15.7 2010 2009 2013 2014 2015 2016 2017 2018 2019 2020 2021 0.0 2009 2010 2011 2012 Costs 2013 + 2014 2015 2016 Total 2017SW2018 2019 2020 2022 2023 2024 Total HW Engineering EDA Tool Costs Engineering Costs 2021 + ESDA Tool Costs VLSI Physical Design: From Graph Partitioning to Timing Closure Стоимость создания программного обеспечения Chapter 1: Introduction 4 Lienig Стоимость Аппаратного Проектирования + САПР Системы Автоматизированного Проектирования (САПР) Прогресс в системах проектирования 1950 -1965 Проектирование «руками» 1965 -1975 Редакторы раскладки, средства размещения и трассировки, разработаны сначала для печатных плат. 1975 -1985 Полее продвинутые средства для кристаллов и плат, с использованием более сложных алгоритмов. 1985 -1990 Методы оптимизации производительности, параллельные алгоритмы для раскладки; понимание теоретигеских вопросов (теория графов, сложность алгоритмов, и т.д.) 1990 -2000 Трассировка над ячейками, первые меторды 3D трассировки. Логический синтез и проектирование с упором на трассировку находят широкое употребление. Появление физического синтеза. 2000 - now Проектирование для производства (DFM), корректировка для оптической близости (OPC), и прочие методы на пересечении проектирования и производства. Повторние использование блоков, блоки интеллектуальной собственности (IP). VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 5 Lienig Примерное время © 2011 Springer Verlag © KLMH 1.1 Маршруты проектирования СБИС © KLMH 1.2 Спецификация систем Разбиение ENTITY test is port a: in bit; end ENTITY test; Архитектурное проектирование Функциональное проектирование Планированние кристалла Проектирование схем Размещение Физическое проектирование Синтез синхросигналов Физическая верификация DRC LVS ERC Трассировка сигналов Упаковка и тестирование Коммерческий продукт VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 6 Lienig Временная оптимизация © 2011 Springer Verlag Производство Стили проектирования СБИС © KLMH 1.3 Редактор раскладки Menu Bar Toolbar Drawing Tools Layer Palette Locator Cell Browser Mouse Buttons Bar Text Windows Layout Windows Chapter 1: Introduction 7 Lienig VLSI Physical Design: From Graph Partitioning to Timing Closure © 2011 Springer Status Bar Стили проектирования СБИС © KLMH 1.3 Типичные цифровые вентили IN1 IN2 OR OUT IN1 IN2 INV NAND OUT IN OUT IN1 IN2 NOR OUT IN1 IN2 OUT 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 8 Lienig AND VLSI Design Styles Vdd Contact Metal layer Vdd IN2 OUT IN1 IN2 Poly layer OUT Diffusion layer IN1 p-type transistor n-type transistor GND GND OUT VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 9 Lienig IN1 IN2 © KLMH 1.3 VLSI Design Styles Vdd Контакт Уровень металла Vdd IN2 OUT IN1 IN2 Уровень поли-Si OUT Уровень диффузии © KLMH 1.3 IN1 p-транзистор GND n-транзистор GND OUT Рельса питания (Vdd) Рельса заземления (GND) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 10 Lienig IN1 IN2 Стили проектирования СБИС © KLMH 1.3 Раскладка стандартных ячеек с проходными ячейками Раскладка стандартных ячеек с трассировкой над ячейками Стандартные Контакт сети Контакт сети Контакт ячейки питания заземления Контакт сети Стандартные Контакт сети питания ячейки заземления A A VDD VDD GND A’ GND Каналл трассировки VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 11 Lienig Проходная ячейка © 2011 Springer Verlag A’ Стили проектирования СБИС © KLMH 1.3 Раскладка с макро-блоками Память ПЛИС VDD АЦП Аналог. схема Области трассировки VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 12 Lienig Контакт GND © 2011 Springer Verlag Блок стандартных ячеек Стили проектирования СБИС © KLMH 1.3 Программуемая логическая интегральная схема (ПЛИС) ЛЭ LB ЛЭ LB Коммутатор К SB ЛЭ LB SB К SB К ЛЭ LB ЛЭ LB ЛЭ LB ЛЭ LB VLSI Physical Design: From Graph Partitioning to Timing Closure ЛЭ Chapter 1: Introduction 13 Lienig SB К ЛЭ LB Соединение © 2011 Springer Verlag ЛЭ LB Логический элемент Уровни раскладки и правила проектирования © KLMH 1.4 Уровни раскладки ячейки инвертера с внешними соединениями Ячейка инвертера Vdd Металл2 Контакт Металл1 Прорез Поли-кремний p/n диффузия Внешние соединения VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 14 Lienig © 2011 Springer Verlag GND Уровни раскладки и правила проектирования © KLMH 1.4 Правила размеров, например минимальная толщина и длина грани: размер любой компоненты (формы) – не может быть меньше данного значения. Эти значения варьируются между уровнями раскладки. Правила разводки, например минимальное удаление: два многоугольника, на одном уровне или на смежных уровнях, должны быть отдалены на определённое расстояние (Эвклидово или Манхэттанское). Правила перекрытия, например минимальное перекрытие: Два связанных многоугольника на смежных уровнях должны перекрываться на определённую глубины на случай неточного расположения оптического шаблона по отношению к прямоугольникам ранее отображённым на кремниевой пластине. VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 15 Lienig Типы правил проектирования Уровни раскладки и правила проектирования © KLMH 1.4 Типы правил проектирования : наименьший возможный шаг для данной технологии - единица длины a c Мин. ширина: a Мин. удаление: b, c, d e Мин. перекрытие: e d VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 16 Lienig © 2011 Springer Verlag b Оптимизация физического проектирования © KLMH 1.5 Технологические ограничения делают возможным производство для конкретного узла технологии и выведены из деталей технологии. Например, мин. ширина и мин. удалние между прямоугольниками. Электрические ограничения обеспечивают желаемые электрические соединения и переключения, например, соблюдения временных ограничений на задержку сигнала а также непревышение максимума ёмкости нагрузки. Геометрические ограничения по методологии проектирования добавляются чтобы уменьшить общую сложность процесса проектирования. Наприме, использование предпочтительных направлений проводов на каждом уровне металла, и размещение стандартных ячеек в строках. VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 17 Lienig Типы ограничений Алгоритмы и сложность © KLMH 1.6 Сложность по времени Сложность по времени: время выполнения алгоритма как функция естественной метрики размера задачи (входных данных), позволяет сравнить разные алгоритмы Сложность представляется асимптотически, по отношению к размеру входных данных n, с использованием символики О-большого или просто O(…) Время работы t(n) считается порядка f (n), записывается как t(n) = O(f (n)) в случае когда имеет место для k>0 n t ( n) k f ( n) Пример: t(n) = 7n! + n2 + 100, тогда t(n) = O(n!) потому что n! растёт быстрее других слагаемых при n . VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 18 Lienig (достаточное условие, не общее определение) lim Алгоритмы и сложность © KLMH 1.6 Сложность по времени Пример: полный перебор всевозможных размещений Даётся: n стандартных ячеек Задача: разместить n ячеек в одной строке с наименьшей длиной проводов, используя полный перебор Решение: пространство возможных решений состоит из n! размещений. Если перечисление и оценка длины проводов каждого возможного размещения занимает 1 s, то при n = 20, чтобы найти оптимальное решение требуется 77,147 лет! Для многих задач физического проектирования, наилучшие известные алгоритмы требуют экспоненциального времени по n, например O(n!), O(nn), или O(2n). Многие такое задачи NP-трудные (NP: non-deterministic polynomial time) Известные алгоритмы не могут обеспечить оптимальные решения за разумное время VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 19 Lienig Эвристики (как правило) находят почти-оптимальные решения Алгоритмы и сложность © KLMH 1.6 Эвристические алгоритмы Детерминистические: все решения принимаемые алгоритмом можно повторить, так как они не случайны. Стохастические: Некоторые решения принимаемются алгоритмом случайно,т.е., с использованием (псевдо-)случайных чисел. Таким образом, запуская алгоритм два раза, с большой вероятностью получим два разных решения. Пример: алгоритм моделирования отжига. По своей структуре, эвристический алгоритм может быть Конструктивными: компоненты решения добавляются последовательно пока не готово полное решение. VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 20 Lienig Итеративные: начиная с полного решения, улучшаем его пока улучшения возможны. Алгоритмы и сложность © KLMH 1.6 Эвристические алгоритмы Исходная задача Конструктивный алгоритм Исходная конфигурация Итеративное улучшение Проверить критерий продолжить окончания закончить VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 21 Lienig Вернуть наилучшее найденное решение Терминология теории графов © KLMH 1.7 Граф Гиперграф b Мультиграф b b a e f c a a d f g c c VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 22 Lienig © 2011 Springer Verlag d e Терминология теории графов © KLMH 1.7 Ориентированный граф с циклами c Направленый ациклический граф c f f a a b d g a b d g e VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 23 Lienig © 2011 Springer Verlag e b Терминология теории графов © KLMH 1.7 Направленное дерево Неориентированный граф с вершинами степени не больше трёх a b a f c b d c e g e f g h i j k VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 24 Lienig © 2011 Springer Verlag d Вычислительная геометрия © KLMH 1.7 Примоугольное минимальное остовное дерево (RMST) b (2,6) Прямоугольное минимальное дерево Штейнера (RSMT) b (2,6) Steiner point VLSI Physical Design: From Graph Partitioning to Timing Closure a (2,1) Chapter 1: Introduction 25 Lienig a (2,1) c (6,4) © 2011 Springer Verlag c (6,4) Стандартная терминология САПР © KLMH 1.8 Нетлист (netlist) – список сетей a N1 b x N3 N2 N4 y z N5 c (a: N1) (b: N2) (c: N5) (x: IN1 N1, IN2 N2, OUT N3) (y: IN1 N1, IN2 N2, OUT N4) (z: IN1 N3, IN2 N4, OUT N5) Сетевой нетлист VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 26 Lienig © 2011 Springer Контактный нетлист (N1: a, x.IN1, y.IN1) (N2: b, x.IN2, y.IN2) (N3: x.OUT, z.IN1) (N4: y.OUT, z.IN2) (N5: z.OUT, c) Стандартная терминология САПР © KLMH 1.8 Граф связности a N1 N3 N2 N4 z N5 x c z y b c y VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 27 Lienig © 2011 Springer Verlag b a x Стандартная терминология САПР © KLMH 1.8 Матрица связности a N1 N3 N2 N4 z N5 c y b x y z c a 0 0 1 1 0 0 b 0 0 1 1 0 0 x 1 1 0 2 1 0 y 1 1 2 0 1 0 z 0 0 1 1 0 1 c 0 0 0 0 1 0 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 28 Lienig © 2011 Springer Verlag b x a Стандартная терминология САПР © KLMH 1.8 Расстояние между двумя точками P1 (x1,y1) и P2 (x2,y2) d n x2 x1 y2 y1 n n n = 2: Эвклидово расстояние d E ( P1 , P2 ) ( x2 x1 ) 2 ( y2 y1 ) 2 n = 1: Манхэттанское расстояние P1 (2,4) d M ( P1 , P2 ) x2 x1 y2 y1 dM = 7 dE = 5 P2 (6,1) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 29 Lienig dM = 7 © KLMH Итоги Главы 1 Прозводство полупроводниковых кристаллов быстро росло с 1960х годов Экспоненциальное падение размера, стоимости и мощности транзисторов Проектирование кристалла невозможно без упрощения и автомаизации Построчная раскладка со стандартными ячейками и правилами проектирования Исторически, каждый шаг в маршруте проектировки был автоматизирован разделньно при помощи специализированного ПО для САПР ПО использует сложные алгоритмы Многие задачи физического проектирования NP-трудны – решаются при помощи эвристик которые (обычно) находят почти-оптимальные алгоритмы Детерминистические и стохастические алгоритмы Конструктивные алгоритмы и итеративное улучшение Алгоритмы на графах – работают со связностью схемы VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 1: Introduction 30 Lienig Алгоритмы вычислительной геометрии – работают с раскладкой схемы