Глава 7 – Специализированная Трассировка Физическое Проектирование СБИС: Авторы книги:

advertisement
© 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
 Уменьшение последствий вариации процесса
Download