© KLMH Физическое Проектирование СБИС: от Разбиения Графов до Оптимизации Временных Характеристик Глава 7 – Специализированная Трассировка Авторы книги: VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing Lienig Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin Hu © KLMH Глава 7 – Специализированная Трассировка 7.1 Трассировка на плоскости: введение 7.2 Очерёдность выбора сетей для трассировки на плоскости 7.3 Неманхэттанская трассировка 7.3.1 Октолинейные деревья Штейнера 7.3.2 Октолинейная лабиринтная трассировка 7.4 Базовые понятия для деревьев синхросигналов 7.4.1 Терминология 7.4.2 Задачи трассировки деревьев синхросигналов 7.5 Современные вопросы синтеза деревьев синхросигнала 7.5.1 Построение деревьев с нулевым глобальным перекосом VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 2 Lienig 7.5.2 Буферизация деревьев синхросигналов при производственной вариации Специализированная Трассировка © KLMH 7 Спецификация систем Разбиение ENTITY test is port a: in bit; end ENTITY test; Архитектурное проектирование Функциональное проектирование Проектирование схем Физическое проектирование Планированние кристалла Размещение Синтез синхросигналов Физическая верификация DRC LVS Временная оптимизация Упаковка и тестирование Коммерческий продукт VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing © 2011 Springer Verlag Производство 3 Lienig ERC Трассировка сигналов Специализированная Трассировка © KLMH 7 Трассировка Поэтапная трассировка сигнальных сетей Распределение трасс по областям трассировки (Глава 5) Детальная трассировка Временная трассировка Трассировка больших сетей Привязка треков к трассам (Глава 6) Оптимизация топологии сетей, распределение ресурсов для критических сетей (Глава 8) Трассировка сетей питания и земли (Глава 3) VLSI Physical Design: From Graph Partitioning to Timing Closure Геометричес -кие методы Неманхэттанская Трассировка и трассы деревьев синхросигналов (Глава 7) Chapter 7: Specialized Routing 4 Lienig Глобальная трассировка Специализированная Трассировка Трассировка на плоскости прокладывает маршруты сигнальных сетей без глобальной и детальной трассировки (Secs. 7.1-7.2) Неманхэттанская трассировка освещена в Sec. 7.3 Деревья синхросигналов освещены Secs. 7.4-7.5 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 5 Lienig © KLMH 7 Трассировка на плоскости: введение Трассировка на плоскости стремится соединить все сети в проекте © KLMH 7.1 внутри данной области раскладки без глобальной трассировки соблюдая требуемые геометрические и электрические нормы проектирования Трассировка на плоскости испольяует следующие оптимизации минимизация сумы длин трасс и количества прорезов минимизация площади занятой трассами и количества уровней метализации минимизация задержки схемы обеспечение равномерной плотности трасс (для оптимизации производства) избежание нежелательной перекрёстной ёмкости между соседними трассами Соблюдаются следующие ограничения технологические ограничения (количество уровней метализации, минимальная толщина проводов, и т.д.) электрические ограничения (целостность сигнала, перекрёстные помехи, etc.) геометрические ограничения (предпочтительные направления трасс, шаги трассировки, и т.д.) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 6 Lienig Трассировка на плоскости: введение © KLMH 7.1 Маршрут с минимальной длиной: Альтернативный маршрут: 4 IC3 1 1 IC1 1 IC2 4 4 4 1 IC3 1 1 IC2 IC1 4 4 Металл1 Металл2 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 7 Lienig Прорез Трассировка на плоскости: введение © KLMH 7.1 Подсчёт расстояния между двумя точками P1 (x1,y1) и P2 (x2,y2) Эвклидово расстояние Манхэттанское расст-е d E ( P1 , P2 ) ( x2 x1 ) 2 ( y2 y1 ) 2 (Δx) 2 (Δy) 2 d M ( P1 , P2 ) x2 x1 y2 y1 Δx Δy P1 dM dE P2 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 8 Lienig dM Трассировка на плоскости: введение © KLMH 7.1 Разные кратчайшие пути между двумя точками в Манхэттановской метрике VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 9 Lienig Трассировка на плоскости: введение © KLMH 7.1 Разные кратчайшие пути между двумя точками в Манхэттановской метрике m = 210 y x Без препятствий, количество кратчайших путей в прямоугольнике Δx × Δy (Δx Δy )! Δx!Δy! VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 10 Lienig m Трассировка на плоскости: введение © KLMH 7.1 Для двух пар точек, Манхэттановские кратчайшие пути могут не пересекаться, даже если Эвклидовы кратчайшие пути пересекаются (но не наоборот) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 11 Lienig Трассировка на плоскости: введение © KLMH 7.1 Если все пары Манхэттановских кратчайших путей между двумя пар точек пересекаются, то Эвклидовы кратчайшие пути тоже должны пересекаться VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 12 Lienig Трассировка на плоскости: введение © KLMH 7.1 Манхэттенское расстояние dM превышает Эвклидово расстояние dE: 1.41 худший случай: dM dE Δx Δy 1.27 в среднем, без препятствий VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 13 Lienig 1.15 в среднем, с препятствиями Очерёдность выбора сетей для трассировки на плоскости © KLMH 7.2 7.1 Трассировка на плоскости: введение 7.2 Очерёдность выбора сетей для трассировки на плоскости 7.3 Неманхэттанская трассировка 7.3.1 Октолинейные деревья Штейнера 7.3.2 Октолинейная лабиринтная трассировка 7.4 Базовые понятия для деревьев синхросигналов 7.4.1 Терминология 7.4.2 Задачи трассировки деревьев синхросигналов 7.5 Современные вопросы синтеза деревьев синхросигнала 7.5.1 Построение деревьев с нулевым глобальным перекосом VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 14 Lienig 7.5.2 Буферизация деревьев синхросигналов при производственной вариации Очерёдность выбора сетей © KLMH 7.2 Очерёдность выбора сетей влият на результат трассировки A B A B A´ B´ B´ Оптимальная трасса B A´ B´ Сети A и B могут быть закрыты только в обход VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 15 Lienig © 2011 Springer Verlag Оптимальная трасса A A´ A B Очерёдность выбора сетей © KLMH 7.2 Очерёдность выбора сетей влият на результат трассировки A A B B B´ B´ A´ Начинаем с сети B VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 16 Lienig © 2011 Springer Verlag Начинаем с сети A A´ Очерёдность выбора сетей © KLMH 7.2 Для n сетей, существуют n! возможных порядков выбора VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 17 Lienig Используем конструктивные эвристики Очерёдность выбора сетей © KLMH 7.2 Правило 1: Из двух сетей i и j, выбираем ту у которой соотношение сторон объемлющего прямоугольника больше (т.е., меньше степеней свободы при трассировке) A A B´ A´ B У сети A больше соотношение сторон. Начиная с неё, уменьшаем длину маршрутов VLSI Physical Design: From Graph Partitioning to Timing Closure A´ B Начиная с сети B, получаем более длинные маршруты Chapter 7: Specialized Routing © 2011 Springer Verlag B´ 18 Lienig Очерёдность выбора сетей © KLMH 7.2 Правило 2: Рассмотрим сети i and j. Если контакты сети i размещены внутри объемлющего прямоугольника сети j, но не наоборот, то начинаем с сети i Очерёдность выбора Граф ограничений C C A A A B D D′ B C´ D B′ A′ Порядок D-A-C-B или D-C-B-A (но не D-B-A-C) B D C´ C VLSI Physical Design: From Graph Partitioning to Timing Closure D′ B′ A′ Chapter 7: Specialized Routing 19 Lienig Очерёдность выбора сетей © KLMH 7.2 Правило 3: () – это количество контактов сети в объемлющем прямоугольнике другой сети. Если (i ) < (j ), то начинаем с i. - Для каждой сети, рассмотрим контакты других сетей в её объемлющем прямоугольнике - Сеть с наименьшим количеством контактов рассматривается раньше - Если имеются пары с одинаковым количеством контактов, то учитываем контакты на границе объемлющих прямоугольников B- A A Контакты внутри (Edge) C D D´ A´ E C´ E´ B C π D (сети) A B C D E D (B,C,D) - (A,C,D) - (A) - (-) - (A,C) 3 3 1 0 2 A´ E C´ E´ B´ VLSI Physical Design: From Graph Partitioning to Timing Closure D´ B´ Chapter 7: Specialized Routing 20 Lienig Неманхэттанская трассировка © KLMH 7.3 7.1 Трассировка на плоскости: введение 7.2 Очерёдность выбора сетей для трассировки на плоскости 7.3 Неманхэттанская трассировка 7.3.1 Октолинейные деревья Штейнера 7.3.2 Октолинейная лабиринтная трассировка 7.4 Базовые понятия для деревьев синхросигналов 7.4.1 Терминология 7.4.2 Задачи трассировки деревьев синхросигналов 7.5 Современные вопросы синтеза деревьев синхросигнала 7.5.1 Построение деревьев с нулевым глобальным перекосом VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 21 Lienig 7.5.2 Буферизация деревьев синхросигналов при производственной вариации Неманхэттанская трассировка © KLMH 7.3 Кроме горизонтальных и вертикальных отрезков, разрешены отрезки под углом 45 или 60 λ-геометрия, где λ это количество возможных направлений трассировки; разрешены углы / λ λ = 2 (90 градусов): Манхэттанская трассировка (четыре напрявлнения) λ = 3 (60 градусов): Y-трассировка (шесть направлений) λ = 4 (45 градусов): X-трассировка (восемь направлений) Неманхэттанская трассировка используется в основном на печатных платах VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 22 Lienig Октолинейные деревья Штейнера © KLMH 7.3.1 Планирование маршрутов с использованием октолинейных минимальных деревьев Штейнера (OSMT) Обобщаем прямоугольные деревья Штейнера разрешая отрезки в нескольких направлениях Больше вариантов размещения точек Штейнера 1 3 2 5 4 7 10 11 9 © 2011 Springer Verlag 8 12 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 23 Lienig 6 Октолинейные деревья Штейнера © KLMH 7.3.1 Алгоритм построения октолинейных деревьев Штейнера T.-Y.; Chang, et. al.: Multilevel Full-Chip Routing for the X-Based Architecture Исходные данные: множество P контактов и их координаты Результат: октолинейное дерево Штейнера OST (не обязательно налучшее) OST = Ø T = множество треугольников из P в триангуляции Делоне для P (Delaunay triangulation) – смотри Википедию sortedT = сортировка(T, октолинейное расстояние) for (i = 1 to |sortedT |) subT = трассировка(sortedT [i ] )// построить короткое (под)дерево добавить(OST,subT ) // присоединить трассу к остальным трассам VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 24 Lienig улучшить(OST,subT ) // локально улучшить дерево Октолинейные деревья Штейнера © KLMH 7.3.1 (1) Триангуляция 1 1 3 2 5 4 9 10 11 9 12 © 2011 Springer Verlag 12 8 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 25 Lienig 11 7 6 8 10 5 4 7 6 3 2 Октолинейные деревья Штейнера © KLMH 7.3.1 (2) Присоединить к дереву (1) Триангуляция 1 1 3 2 5 8 7 9 8 10 11 7 6 9 12 8 10 11 9 12 © 2011 Springer Verlag 12 5 4 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 26 Lienig 11 5 6 3 2 4 7 10 3 2 4 6 1 Октолинейные деревья Штейнера © KLMH 7.3.1 (2) Присоединить к дереву 1 3 2 5 8 11 5 9 12 11 7 6 8 10 5 4 7 6 3 2 4 7 10 3 2 4 6 1 9 12 8 10 11 длина = 6 длина ≈ 5.7 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 9 12 © 2011 Springer Verlag 1 (3) Локально улучшить 27 Lienig (1) Triangulate Октолинейные деревья Штейнера © KLMH 7.3.1 Окончательное дерево после слития всех компонент (3) Локально улучшить 1 1 3 2 5 4 8 9 10 12 11 9 12 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 28 Lienig © 2011 Springer Verlag 11 7 6 8 10 5 4 7 6 3 2 Октолинейная лабиринтная трассировка © KLMH 7.3.2 2 2 2 2 3 3 3 3 2 3 2 2 2 3 2 3 2 1 1 2 1 1 1 2 3 2 1 1 1 2 1 S 1 2 1 S 1 2 3 2 1 S 1 2 1 1 2 1 1 1 2 3 2 1 1 1 2 2 2 2 2 2 3 2 2 2 2 2 3 T 3 3 3 3 1 1 T Расширение (2) Возврат VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 29 Lienig © 2011 Springer Verlag Расширение (1) T Октолинейная лабиринтная трассировка © KLMH 7.3.2 S VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 30 Lienig T © KLMH 7.4 Базовые понятия для деревьев синхросигнала 7.1 Трассировка на плоскости: введение 7.2 Очерёдность выбора сетей для трассировки на плоскости 7.3 Неманхэттанская трассировка 7.3.1 Октолинейные деревья Штейнера 7.3.2 Октолинейная лабиринтная трассировка 7.4 Базовые понятия для деревьев синхросигнала 7.4.1 Терминология 7.4.2 Задачи трассировки деревьев синхросигналов 7.5 Современные вопросы синтеза деревьев синхросигнала 7.5.1 Построение деревьев с нулевым глобальным перекосом VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 31 Lienig 7.5.2 Буферизация деревьев синхросигналов при производственной вариации Терминология © KLMH 7.4.1 Задача о трассировке синхросигнала задаётся множеством контактов, включая источник s0 и стоки S = {s1,s2, … ,sn} И контакт, и его размещение будем обозначать si, 0 ≤ i ≤ n Решение задачи о трассировке синхросигнала представляется множеством отрезков проводов соединяющих все контакты сети синхросигнала, так что сигнал из источника проходит ко всем стокам Два аспекта маршрута синхросигнала: топология и геометригеское вложение Топология дерева синхросигнала это двоичное дерево G с корнем, где листия соответсвутют стокам VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 32 Lienig Внутренние узлы = точки Штейнера Терминология © KLMH 7.4.1 Пример задачи Топология соединений Геометригеское вложение трассировки синхросигнала s0 s2 u2 s5 s4 s0 u3 u1 s3 u4 u3 u2 s4 s6 s1 s2 s3 VLSI Physical Design: From Graph Partitioning to Timing Closure s4 s5 s5 u4 s6 © 2011 Springer Verlag s0 s3 s1 u1 s2 s6 Chapter 7: Specialized Routing 33 Lienig s1 Терминология © KLMH 7.4.1 Перекос: (максимальная) разность времён прибытия сигнала в стоки skew(T ) max | t ( s0 , si ) t ( s0 , s j ) | s i , s j S Локальный перекос: максимальная разность времён прибытия сигнала в стоки – для данной границы d > 0 стоки должны находится на расстоянии d триггеры или защёлки соединённые по направленномы сигнальноу пути Глобальный перекос : максимальная разность времён прибытия сигнала в любые два стока (на любом расстояниее, возможно не связанных друг с другом) разность задержек между кратчайшим и длиннейшим путями от источника до стоков в дереве синхросигнала VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 34 Lienig термин “перекос” – это обычно сокращение “глобального перекоса” Задачи трассировки деревьев синхросигнала © KLMH 7.4.2 Нулевой перекос: zero-skew tree (ZST) Задача о построении дерева с нулевым перекосом Ограниченный перекос: нулевой перекос требуется не всегда Кристалл может работать нормально с небольшим перекосом Допуская ограниченный перекос, можно укоротить дерево синхросигнала Задача о построении дерева с ограниченным перекосом Bounded-Skew Tree (BST) problem Полезный перекос: нормальная работа кристалла требует контроля только над локальным перекосом, между парами соединённых триггеров или защёлок VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 35 Lienig Формулировка полезного перекоса требует точного временного анализа Современные вопросы синтеза деревьев синхросигнала © KLMH 7.5 7.1 Трассировка на плоскости: введение 7.2 Очерёдность выбора сетей для трассировки на плоскости 7.3 Неманхэттанская трассировка 7.3.1 Октолинейные деревья Штейнера 7.3.2 Октолинейная лабиринтная трассировка 7.4 Базовые понятия для деревьев синхросигнала 7.4.1 Терминология 7.4.2 Задачи трассировки деревьев синхросигналов 7.5 Современные вопросы синтеза деревьев синхросигнала 7.5.1 Построение деревьев с нулевым глобальным перекосом VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 36 Lienig 7.5.2 Буферизация деревьев синхросигналов при производственной вариации Современные вопросы синтеза деревьев синхросигнала © KLMH 7.5 Дерево синхросигнала должно доставлют сигнал во все триггеры (и защёлки), с малым перекосом Деревья синхросигнала проектируются в два этапа: (1) Начальный этап (Sec. 7.5.1) по одному из сценариев: Построить регулярное дерево, слабо зависящее от размещения контактов Сначала определить топологию, и по ней построить геометрическое вложение Одновременно определить и топологию и вложение VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 37 Lienig (2) Вставка буферов и последующие оптимизации перекоса (Sec. 7.5.2) Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Симметрия H-деревьев обеспечивает нулевой перекос H-деревья могут использоватся для распостранения синхросигнала на высоком уровне, но не для всех маршрутов синхросигнала Препятсвиа могут нарушить симметрию H-дерева Неравномерное размещение стоков и неравные ёмкости контактов также усложняют проектирование H-деревьев VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 38 Lienig © 2011 Springer Verlag H-дерево Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Метод Средних и Медиан (MMM) Справляется с произвольными размещениями контактов Вкратце: Рекурсивно разбиваем множество контактов на два подмножества равного размера (с использованием медианы) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 39 Lienig Соединяем центр тяжести (COG) множества с центрами подмножеств (средние) Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Метод Средних и Медиан (MMM) Находим барицентр двух подмножеств S VLSI Physical Design: From Graph Partitioning to Timing Closure Соединяем барицентр S с барицентрами двух подмножеств Окончательный результат после полной рекурсии Chapter 7: Specialized Routing © 2011 Springer Verlag Разбиваем S медианой 40 Lienig Находим барицентр Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Метод Средних и Медиан (MMM) Исходные данные : множество контактов S Результат: дерево синхросигнала T if (|S| ≤ 1) (x0,y0) = (xc(S),yc(S)) // барицентр S (SA,SB) = PARTITION(S) // разбиение на SA и SB медианой (xA,yA) = (xc(SA),yc(SA)) // барицентр для SA (xB,yB) = (xc(SB),yc(SB)) // барицентр для SB ROUTE(T,x0,y0,xA,yA) // соединить барицентр S к ROUTE(T,x0,y0,xB,yB) // барицентру SA и SB BASIC_MMM(SA,T) // рекурсия по SA BASIC_MMM(SB,T) // рекурсия по SB VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 41 Lienig return Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Рекурсивное геометрическое паросочетание (RGM) RGM работает «снизу-вверх» Можно сравнить с алгоритмом MMM, котоый рабоет «сверху-вниз» Вкратце: Рекурсивно найти оптимальние геометрическое паросочетание n контактов, т.е., найти n / 2 отрезков которые соединяют n контактов с минимальной суммарной длиной (каждый контакт соединён только одним отрезком) После каждого паросочетания, находим точку ветвления на каждом отрезке так чтобы сохранить нулевой перекос данных стоков VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 42 Lienig Построенное множество n / 2 точек ветвления используем в следующем паросочетании Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Рекурсивное геометрическое паросочетание (RGM) Геометрическое Находим точки Геометрическое Окончательный паросочетание ветвления (чтобы паросочетание результат после обеспечить нулевой рекурсивного перекос в ветке), выполнения RGM не обязательно на каждом середины отрезков подмножестве VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 43 Lienig © 2011 Springer Verlag Множество контактов S Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Рекурсивное геометрическое паросочетание (RGM) Исходные данные : множество контактов S Результат: дерево синхросигнала T VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 44 Lienig if (|S| ≤ 1) return M = геометрическое паросочетание точек из S S’ = Ø foreach (<Pi,Pj > M) TPi = ветка T с корнем в Pi TPj = ветка of T с корнем в Pj tp = точка ветвления (Pi,Pj) // точка минимизирующая перекос // дерева Ttp = TPi U TPj U (Pi,Pj) ADD(S’,tp) // добавить tp к S’ ADD(T,(Pi,Pj)) // добавить отрезок (Pi,Pj) к T if (|S| % 2 == 1) // если |S| нечётное, добавить непарную точку ADD(S’, unmatched node) RGM(S’,T) // recursively call RGM Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Нулевой перекос с учётом задержки в проводах (а не длины проводов) Проход «снизу-вверх» с паросочетанием корней и соединением веток, похожий на RGM Для важных улучшения: Находи точки ветвления с нулевым перекосом, используя формулу адержки Элмора (Elmore delay) а не длину отрезков VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 45 Lienig Поддерживает точный баланс задержек даже если две ветки дерева сильно отличаются; задержки от источника до стока выравниваются при по помощи удлиннения проводов Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Нулевой перекос с учётом задержки в проводах (а не длины проводов) R(w1) Точка ветвления tp z 1–z z w1 w2 s1 Ветка Ts2 C(w1) 2 R(w2) C(w2) 2 C(w2) 2 t(Ts2 ) C(s2) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 46 Lienig © 2011 Springer Verlag Ветка Ts1 s2 Точка ветвления tp, уравниваящая задержку сигнала по формуле Элмора 1–z (Elmore delay) до контактов C(w1) 2 t(Ts1 ) C(s1) Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Октладывает выбот точек ветвления Требует топологию дерева (исходные данные) Слабое место в алгоритмах МММ и RGM: Размещения внутренний узлов дерева определяется слишком рано и больше не меняется Вкратце: Для двух контактов в общем положениее имеется бесконечное множество равноудалённых точек, отрезок наклонённый под 45 градусов Манхэттанская дуга: обеспечивает минимальную длину проводов и нулевой перекос VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 47 Lienig Выбор точек ветвления из каждой дуги будет отложен как можно дольше Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Эвклидова средняя точка Эвклидовы средние точки s1 s2 s1 s2 s1 VLSI Physical Design: From Graph Partitioning to Timing Closure © 2011 Springer Verlag Для выровненых стоков, Манхэттанская дуга вырождена (имеет нулевую длину) Chapter 7: Specialized Routing 48 Lienig Манхэттанские средние точки образуют Манхэттанскую дугу s2 Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Вкладывет точки ветвления в даннуя топологию G на двых этапах Первый проход «снизу-ввер» Определяет всевозможные положения точек ветвления G совместимых с деревом T минимальной длины и нулевым перекосом Результат: “дерево отрезков”, где каждый отрезок содержит все возможные положения точек ветвления T Второй проход «сверху-вниз» Определяет положения точек ветвления T VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 49 Lienig Результат: маршрут дерева синхросигнала данной топологии G, минимальной длины с нулевым перекосом и Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Наклонённая прямоугольная область (TRR) для Манхэттанской дуги от s1 до s2 радуса 2 Deferred-Merge Embedding (DME) s1 s1 Core Radius s2 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 50 Lienig © 2011 Springer Verlag s2 Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Отрезок ветвления для точки u3 (над точками u1 и u2 в дереве) содержит все возможные положения u3 с нулевым перекосом и минимальной длиной Deferred-Merge Embedding (DME) ms(u1) ms(u2) u3 u2 trr(u2) s4 |eu2 | trr(u1) s2 s3 s4 |eu1 | s2 © 2011 Springer Verlag s1 ms(u3) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 51 Lienig u1 s3 s1 Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Построение дерева отрезков (проход «снизу-вверх» алгоритма DME) s1 s8 s7 s2 s1 s6 s5 s0 s7 s2 s2 s6 s1 s8 s8 s2 s3 s7 s4 s0 s6 s5 s3 s4 s0 s6 s3 s4 s0 s5 VLSI Physical Design: From Graph Partitioning to Timing Closure s5 © 2011 Springer Verlag s4 s1 Chapter 7: Specialized Routing 52 Lienig s3 s8 s7 Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Построение дерева отрезков (проход «снизу-вверх» алгоритма DME) Исходные данные: множество контактов S и топология G(S,Top) Результат: отрезки точек ветвления ms(v) и их длины |ev|, v G VLSI Physical Design: From Graph Partitioning to Timing Closure // если v контакт, то ms(v) это точка // // иначе, если v внутренняя точка, // найти её дочерние точки и // подсчитать длину рёбер // создать trr(a) – отрезок ветвления // и найти должный радиус // создать trr(b) – отрезок ветвления // и найти должный радиус // найти отрезок ветвления для v Chapter 7: Specialized Routing 53 Lienig foreach (вершины v G, «снизу-вверх») if (v – это сток) ms[v] = PL(v) else (a,b) = CHILDREN(v) CALC_EDGE_LENGTH(ea,eb) trr[a][core] = MS(a) trr[a][radius] = |ea| trr[b][core] = MS(b) trr[b][radius] = |eb| ms[v] = trr[a] ∩ trr[b] Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Размещение точек ветвления (проход «сверху-вниз» алгоритма DME) Возможные положения дочерней вершины v с учётом положения родительской вершины par VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 54 Lienig © 2011 Springer Verlag trr(par) ms(v) |epar| pl(par) Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Размещение точек ветвления (проход «сверху-вниз» алгоритма DME) s1 s8 s7 s2 s8 s5 s0 s4 s1 s7 s2 s8 s7 s2 s6 s6 s1 s8 s7 s2 s3 s4 s0 s5 s3 s4 s0 s6 s3 s4 s0 s5 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing s5 © 2011 Springer Verlag s3 s1 55 Lienig s6 Построение деревьев с нулевым глобальным перекосом © KLMH 7.5.1 Deferred-Merge Embedding (DME) Размещение точек ветвления (проход «сверху-вниз» алгоритма DME) Исходные данные: множество контактов S, топология дерева G, результаты прохода «снизу-вверх» алгоритма DME Результат: дерево T топологии G минимальной длины с нулевым перекосом VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 56 Lienig foreach (нелистовой вершины v G в порядке «сверху-вниз») if (v – это корень дерева) loc = любая точка в ms(v) else par = PARENT(v) // par родительская вершина v trr[par][core] = PL(par) // trr(par) отрезок ветвления trr[par][radius] = |ev| // записать его радиус loc = any point in ms[v] ∩ trr[par] pl[v] = loc Буферизация деревьев в присутсвии вариации © KLMH 7.5.2 Чтобы выполнить сложные ограничения на перекос, дерево синхросигнала проходит несколько этапов оптимизации Построение геометрического дерева Начальная вставка буферов Масштабирование буферов Определение (переменной) толщины проводов Вставка змеек для задержки При наличии производственных вариаций а также разброса напряжения питания и температур, эти вариации нужно учесть при оптимизации VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 57 Lienig Моделирование вариаций использует множество технологических параметров, и представлюет распределения размеров каждого транзистора как случайные переменные © KLMH Обзор Главы 7 – Трассировка на плоскости Трассировка на плоскости : избежание раздела между глобальной и детальной трассировкой Маршруты находятся напрямую, соблюдая нормы проекторования Используется для небольших схем со сложными органичениями Аналоговые схемы, модули со многими кристаллами, печатные платы Манхэттанские и Эвклидовы пути Эвклидовы пути не длинее Манхэттанских, обычно короче Единственный кратчайший путь в Эвклидовой геометрии Множество кратчайших путей в Манхэттанской геометрии Когда Эвклидовы пути пересекаются, иногда можно найти непересекающиеся Манхэттанские пути (но не наоборот) Очерёдность выбора сетей важна для трассировки на плоскости Правило 1: сначала выбираем сети с большим соотношением сторон Правило 2: ... выбираем сети окружённые другими сетями Правило 3: ... выбираем сети у которых много контактов внутры других сетей VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 58 Lienig © KLMH Обзор Главы 7 – Неманхэттанская трассировка деревьев Манхэттанская трассировка требуется чтобы выполнить ограничения современных производвенных процессов для тонких проводов Трассировка на печатных платах может использовать диагональные провода Более короткие соединения Неманхэттанские соединения Диагональные отрезки (45 или 60-градусов) вдобавок к горизонтальным и вертикальным отрезкам Больше свободы для размещения точек Штейнера Построение октолинейных деревьев Штейнера Алгоритмы для Манхэттанской геометрии можно адаптировать VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 59 Lienig Результаты должны быть не хуже чем для Манхэттанской геометрии © KLMH Обзор Главы 7 – Трассировка деревьев синхросигнала Похоже на трассировку сигнальных сетей, но Количество стоков очень большое Задержки от источника до стоков должны совпадать Более длинные маршруты (из-за равенства задержек) Наилучшие алгоритмы сначала определяют топологию, потом геометрическое вложение Перекос синхросигнала Рассмотрим задержку от источника до каждого стока Перекос – это махимальная попарная разность между задержками Может быть ограничен на стоки с расстоянием меньше данний константы (локальный перекос) Для конкретной модели задержки проводов ZST: трассировка с нулевым перекосом VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 60 Lienig BST: трассировка с ограниченным перекосом © KLMH Обзор Главы 7 – Современные вопросы синтеза синхросигналов Построение изначальноро дерева Определение топологии (MMM или RGM) Вложение DME (разные варианты для ZST и BST) Работать с формулой Элмора для задержки (Elmore delay model) слложнее чем с линейной формулы задержки (т.е., длиной проводов) Геометрические препятствия (например макро блоки) Могут потребоваться обходы Можно учесть в алгоритме DME (сложно) или при обработке результатов (с похожими результатами) Оптимизация деревьев синхросигнала Вставка буферов Масштабирование буферов Определение толщины проводов Вставка небольших «змеек» для задержки VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 7: Specialized Routing 61 Lienig Уменьшение последствий вариации процесса