Оптимизация Производительности Схем Физическое Проектирование СБИС: Авторы книги:

реклама
© KLMH
Физическое Проектирование СБИС:
от Разбиения Графов до Оптимизации Производительности Схем
Глава 8 – Оптимизация Производительности Схем
Авторы книги:
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
1
Lienig
Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin Hu
© KLMH
Глава 8 – Оптимизация Производительности Схем
8.1
Введение
8.2
Временной анализ и требования производительности схем
8.2.1 Статический временной анализ (SТA)
8.2.2 Бюджеты задержки и алгоритм распределения временного запаса (ZSA)
8.3 Размещение с временной оптимизацией
8.3.1 Методы с упором на сети
8.3.2 Вложение STA в линейные программы для размещения
8.4 Трассировка с временной оптимизацией
8.4.1 Алгоритм ограниченного радиуса и стоимости
8.4.2 Компромисс Прима-Дейкстры
8.4.3 Минимизация задержки от источника до стока
8.5 Физический синтез схем
8.5.1 Масштабирование вентилей
8.5.2 Буферизация
8.5.3 Перестройка сетей
8.6 Маршрут проектирования с оптимизацией производительности схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
2
Lienig
8.7 Заключение
Оптимизация производительности схем
© KLMH
8
Спецификация систем
Разбиение
ENTITY test is
port a: in bit;
end ENTITY test;
Архитектурное
проектирование
Функциональное
проектирование
Проектирование схем
Физическое
проектирование
Планированние
кристалла
Размещение
Синтез синхросигналов
Физическая верификация
DRC
LVS
Производство
Упаковка и тестирование
Коммерческий продукт
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
3
Lienig
Временная оптимизация
© 2011 Springer Verlag
ERC
Трассировка сигналов
Введение
© KLMH
8.1

Раскладка интегральных схем (ИС) должна выполнять геометрические,
ограничения, электрические ограничения, ограничения по мощности и
тепловым характеристикам а также временные ограничения
 ограничения установки сигнала (соотв. длинным путям на схеме)
 ограничения удержания сигнала (соотв. коротким путям на схеме)

Проектировщики должны завершить
оптимизацию временных характеристик
 выполнить временные ограничения
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
4
Lienig
 процесс сочитает индивидуальнуе оптимизации обсуждаемые в предыдущих
главах (размещение, трассировку, и т.д.) со специализированными
методами улучшения производительности схемы
Введение
© KLMH
8.1
Этапы оптимизации производительности схем
освещённые в этой лекции:

Размещение с временной оптимизацией (Sec. 8.3) уменьшает задержки
сигналов при определении местоположения элементов схемы

Трассировка с временной оптимизацией (Sec. 8.4) уменьшает задержки
сигналов при выборе тополий сетей и прокладке маршрутов

Физический синтез (Sec. 8.5) уменьшает задержки перестраивая схему
 Масштабирование транзисторов и вентилей: изменение соотношения длины
и ширины транзисторов чтобы увеличить или уменьшить задержку или
ведущую силу вентиля
 Вставка буферов в сети чтобы уменьшить задержки сигнала
 Перестройка сетей вдоль критических путей
Маршрут проектирования с оптимизацией производительности схемы
(Sec. 8.6)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
5
Lienig

Введение
© KLMH
8.1

Оптимизация производительности схем требует точной и быстрой оценки
задержек распостранения сигналов в схеме

Для оценки временных характеристик схемы, задержки распостранения
сигналов через элементы схемы просчитываются в разных точках схемы.
Учитываются два типа временных ограничений:
 Ограничения установки сигнала (огр. длинных путей) для элементов памяти
(триггеров и защёлок) указывают как долго входной сигнал должен
оставаться неизменным перед фронтом синхросигнала
 Ограничения удержания сигнала (огр. коротких путей) для элементов памяти
указывают как долго сигнал должен оставаться неизменным после фронта
синхросигнала
t такта  t ком б. задержки  t установки  t перекоса
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
6
Lienig
t ком б. задержки  t удержания  t перекоса
Введение

Оптимизация временных характеристик выполняет временные
ограничения, меняя раскладку и перестраивая схему

Жаргон: “the design has closed timing” - «проект закрыт по времени»
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
7
Lienig
© KLMH
8.1
Временной анализ и временные ограничения
© KLMH
8.2
8.1
Введение
8.2
Временной анализ и требования производительности схем
8.2.1 Статический временной анализ (SТA)
8.2.2 Бюджеты задержки и алгоритм распределения временного запаса (ZSA)
8.3 Размещение с временной оптимизацией
8.3.1 Методы с упором на сети
8.3.2 Вложение STA в линейные программы для размещения
8.4 Трассировка с временной оптимизацией
8.4.1 Алгоритм ограниченного радиуса и стоимости
8.4.2 Компромисс Прима-Дейкстры
8.4.3 Минимизация задержки от источника до стока
8.5 Физический синтез схем
8.5.1 Масштабирование вентилей
8.5.2 Буферизация
8.5.3 Перестройка сетей
8.6 Маршрут проектирования с оптимизацией производительности схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
8
Lienig
8.7 Заключение
Временной анализ и требования производительности схемы
© KLMH
8.2
Последовательная схема, “развёрнутая” во времени
Комбинационная
схема
(Копия 1)
Комбинационная
схема
(Копия 2)
FF
FF
Комбинационная
схема
(Копия 3)
FF
Комбинационные схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
9
Lienig
Ячейки памяти
© 2011 Springer Verlag
Синхросигнал
Временной анализ и требования производительности схемы
© KLMH
8.2

Главные компоненты задержки в последовательных схемах
 Задержки в вентилях связанные с переменой сигнала
 Задержки в проводах связанные с распостранением сигнала в длинных
проводах
 Перекос синхросигнала определияет разницу во времени активации
элементов памяти

Чтобы быстро оценить производительность последовательной схемы
 используется статический временной анализ (STA)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
10
Lienig
 пренебрегаем перекосом синхросигнала (поправка на поздних стадиях)
Статический временной анализ
© KLMH
8.2.1

Рассмотрим худший случай, в котором каждый вентиль переключается

Представим комбинационную схему направленным ацикличным графом
(DAG)
 Каждое ребро и вершина несут на себе вес - задержка проводов и вентилей

Для каждой вершины, вычислим запас = RAT – AAT
 RAT это трeбуемое время прибытия, т.е. самое позднее время переключения
допустимое требованиями производительности схемы
 AAT это фактическое время прибытия
 По договорённости, AAT изначально определён на входных контактах схемы и
прощитывается на выходе каждого элемента схемы
 Отрицательный запас в любой точке схемы означает что схема
не выполняет требования производительности
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
11
Lienig
 Положительный запас на всех выходах озанчает что схема выполняет
требования
8.2.1
Статический временной анализ
(0.15)
a
y (2)
(0.2)
w (2)
© KLMH
Комбинационная схема представленная графом (DAG)
(0.2)
f
(0.1)
(0.1) x (1)
(0.3)
z (2)
(0.1)
a (0)
(0)
(0)
y (2)
(0.15)
(0.1)
b (0) (0.1)
(0.2)
w (2) (0.2)
x (1)
(0.3)
(0.6)
c (0)
(0.1)
VLSI Physical Design: From Graph Partitioning to Timing Closure
f (0)
(0.25)
z (2)
Chapter 8: Timing Closure
12
Lienig
c
s
(0.25)
© 2011 Springer Verlag
b
8.2.1
Статический временной анализ
© KLMH
Вычислим AATs в каждой вершине:
AAT (v)  max  AAT (u )  t (u, v) 
uFI ( v )
где FI(v) это множество вершин на входе вентиля v (fanin),
а t(u,v) это задержка мехду u и v
(значения AAT на входных контактах заданы сначала)
y (2)
(0.15)
A0
A 3.2
s
(0)
A0
(0.1)
b (0) (0.1)
A0
w (2) (0.2)
x (1)
A 1.1
A 5.65
(0.3)
(0.6)
c (0)
(0.2)
(0.1)
A 0.6
VLSI Physical Design: From Graph Partitioning to Timing Closure
f (0)
A 5.85
(0.25)
z (2)
A 3.4
Chapter 8: Timing Closure
13
Lienig
(0)
© 2011 Springer Verlag
a (0)
8.2.1
Статический временной анализ
RAT (v)  min
uFO( v )
© KLMH
Вычислим RATs в каждой вершине:
RAT (u)  t (u, v)
где FO(v) это множество вершин на выходе вентиля v (fanout),
а t(u,v) это задержка между u и v
(значения RAT на выходных контактах заданы сначала)
y (2)
(0.15)
R 0.95
R 3.1
s
(0)
R -0.35
(0.1)
b (0) (0.1)
R -0.35
w (2) (0.2)
x (1)
R 0.75
R 5.3
(0.3)
(0.6)
c (0)
(0.2)
(0.1)
R 0.95
VLSI Physical Design: From Graph Partitioning to Timing Closure
f (0)
R 5.5
(0.25)
z (2)
R 3.05
Chapter 8: Timing Closure
14
Lienig
(0)
© 2011 Springer Verlag
a (0)
8.2.1
Статический временной анализ
© KLMH
Вычислим запас (slack) в каждой вершине:
slack (v)  RAT (v)  AAT (v)
A0
R -0.35
S -0.35
(0)
b (0) (0.1)
(0.6)
A0
R -0.35
S -0.35
c (0)
A 3.2
(0.1) R 3.1 (0.2)
S -0.1
w (2) (0.2)
x (1)
A 1.1
R 0.75 (0.3)
S -0.35
(0.1)
A 0.6
R 0.95
S 0.35
VLSI Physical Design: From Graph Partitioning to Timing Closure
A 5.65
(0.25) R 5.3
S -0.35
f (0)
A 5.85
R 5.5
S -0.35
z (2)
A 3.4
R 3.05
S -0.35
Chapter 8: Timing Closure
15
Lienig
s
(0)
A0
R 0.95
S 0.95
y (2)
(0.15)
© 2011 Springer Verlag
a (0)
Распределениe временного запаса по бюджетам задержки
© KLMH
8.2.2

Назначим временной бюджет для каждой сети
 Задержки вентилей и проводов должны быть оптимизированы при раскладке
 Задержки проводов зависят от длин проводов
 Длины проводов неизвестны до размещения и трассировки

Расчёт бюджетов с алгоритмом распределения временного запаса
 Рассмотрим вентили vi
 Рассмотрим сети ei
 Задержки вентилей DELAY(v) и сетей DELAY(e)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
16
Lienig
 Бюджет вентиля TB(v) включает DELAY(v) + DELAY(e)
Распределениe временного запаса по бюджетам задержки
© KLMH
8.2.2
Исходные данные: временной граф G(V,E)
Результат: временной бюджет TB для каждого v  V
1. do
2. (AAT,RAT,slack) = STA(G)
3. foreach (vi  V)
4.
TB[vi] = DELAY(vi) + DELAY(ei)
5. slackmin = ∞
6. foreach (v  V)
7.
if ((slack[v] < slackmin) and (slack[v] > 0))
8.
slackmin = slack[v]
9.
vmin = v
10. if (slackmin ≠ ∞)
11.
path = vmin
12.
ADD_TO_FRONT(path,BACKWARD_PATH(vmin,G))
13.
ADD_TO_BACK(path,FORWARD_PATH(vmin,G))
14.
s = slackmin / |path|
15.
for (i = 1 to |path|)
16.
node = path[i]
// распределить поравну
17.
TB[node] = TB[node] + s
// запас вдоль пути path
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
17
Lienig
18. while (slackmin ≠ ∞)
Распределениe временного запаса по бюджетам задержки
© KLMH
8.2.2
Forward Path Search (FORWARD_PATH(vmin,G))
Исходные данные: вершина vmin с минимальным положительным запасом slackmin; временной граф G
Результат: максимальный путь path вниз по течению от vmin такой что вершины v  V не влияют
на запас на пути path
1. path = vmin
2. do
3. flag = false
4. node = LAST_ELEMENT(path)
5. foreach (fanout node fo of node)
6.
if ((RAT[fo] == RAT[node] + TB[fo]) and (AAT[fo] == AAT[node] + TB[fo]))
7.
ADD_TO_BACK(path,fo)
8.
flag = true
9.
break
10. while (flag == true)
VLSI Physical Design: From Graph Partitioning to Timing Closure
// удалить vmin
Chapter 8: Timing Closure
18
Lienig
11. REMOVE_FIRST_ELEMENT(path)
Распределениe временного запаса по бюджетам задержки
© KLMH
8.2.2
Backward Path Search (BACKWARD_PATH(vmin,G))
Исходные данные: вершина vmin с минимальным положительным запасом slackmin; временной граф G
Результат: максимальный путь path вверх по течению от vmin такой что вершины v  V не влияют
на запас на пути path
1.
path = vmin
2.
do
3.
flag = false
4.
node = FIRST_ELEMENT(path)
5.
foreach (fanin node fi of node)
6.
if ((RAT[fi] == RAT[node] – TB[fi]) and (AAT[fi] == AAT[node] – TB[fi]))
7.
ADD_TO_FRONT(path,fi)
8.
flag = true
9.
break
10. while (flag == true)
VLSI Physical Design: From Graph Partitioning to Timing Closure
// удалить vmin
Chapter 8: Timing Closure
19
Lienig
11. REMOVE_LAST_ELEMENT(path)
Распределениe временного запаса по бюджетам задержки

Пример: алгоритм распределения временного запаса

Формат: <AAT, запас, RAT>, [бюджет]
© KLMH
8.2.2
O1: <13,4,17>
I1
I2
I3
<1,4,5> [0]
O2: <6,8,14>
<3,4,7> [0]
2
<0,5,5> [0]
4
<7,4,11> [0]
<13,4,17> [0]
O1
6
<1,6,7> [0]
<6,8,14> [0]
<3,5,8> [0]
VLSI Physical Design: From Graph Partitioning to Timing Closure
<6,5,11> [0]
0
Chapter 8: Timing Closure
O2
20
Lienig
3
I4
Распределениe временного запаса по бюджетам задержки

Пример: алгоритм распределения временного запаса

Формат: <AAT, запас, RAT>, [бюджет]

Найдём путь с минимальным ненулевым запасом
© KLMH
8.2.2
O1: <13,4,17>
I1
I2
I3
<1,4,5> [0]
O2: <6,8,14>
<3,4,7> [0]
2
<0,5,5> [0]
4
<7,4,11> [0]
<13,4,17> [0]
O1
6
<1,6,7> [0]
<6,8,14> [0]
<3,5,8> [0]
VLSI Physical Design: From Graph Partitioning to Timing Closure
<6,5,11> [0]
0
Chapter 8: Timing Closure
O2
21
Lienig
3
I4
Распределениe временного запаса по бюджетам задержки

Пример: алгоритм распределения временного запаса

Формат: <AAT, запас, RAT>, [бюджет]

Найдём путь с минимальным ненулевым запасом

Распределим запасы и обновим бюджеты
© KLMH
8.2.2
O1: <17,0,17>
I1
I2
I3
<1,0,1> [1]
O2: <6,8,14>
<3,0,4> [1]
2
<0,2,2> [0]
4
<9,0,9> [1]
<16,0,16> [1]
O1
6
<1,4,5> [0]
<6,8,14> [0]
<3,4,7> [0]
VLSI Physical Design: From Graph Partitioning to Timing Closure
<6,4,10> [0]
0
Chapter 8: Timing Closure
O2
22
Lienig
3
I4
Распределениe временного запаса по бюджетам задержки

Пример: алгоритм распределения временного запаса

Формат: <AAT, запас, RAT>, [бюджет]

Найдём путь с минимальным ненулевым запасом

Распределим запасы и обновим бюджеты
© KLMH
8.2.2
O1: <17,0,17>
I1
I2
I3
<1,0,1> [1]
O2: <6,8,14>
<4,0,4> [1]
2
<0,0,0> [2]
4
<9,0,9> [1]
<16,0,16> [1]
O1
6
<1,4,5> [0]
<6,8,14> [0]
<3,4,7> [0]
VLSI Physical Design: From Graph Partitioning to Timing Closure
<6,4,10> [0]
0
Chapter 8: Timing Closure
O2
23
Lienig
3
I4
Распределениe временного запаса по бюджетам задержки

Пример: алгоритм распределения временного запаса

Формат: <AAT, запас, RAT>, [бюджет]

Найдём путь с минимальным ненулевым запасом

Распределим запасы и обновим бюджеты
© KLMH
8.2.2
O1: <16,0,16>
I1
I2
I3
<1,0,1> [1]
O2: <6,8,14>
<4,0,4> [1]
2
<0,0,0> [2]
4
<9,0,9> [1]
<16,0,16> [1]
O1
6
<1,2,3> [2]
<6,8,14> [0]
<3,2,5> [0]
VLSI Physical Design: From Graph Partitioning to Timing Closure
<6,2,8> [2]
0
Chapter 8: Timing Closure
O2
24
Lienig
3
I4
Распределениe временного запаса по бюджетам задержки

Пример: алгоритм распределения временного запаса

Формат: <AAT, запас, RAT>, [бюджет]

Найдём путь с минимальным ненулевым запасом

Распределим запасы и обновим бюджеты
© KLMH
8.2.2
O1: <17,0,17>
I1
I2
I3
<1,0,1> [1]
O2: <10,4,14>
<4,0,4> [1]
2
<0,0,0> [2]
4
<9,0,9> [1]
<16,0,16> [1]
O1
6
<1,0,1> [3]
<10,4,14> [0]
<3,1,4> [0]
VLSI Physical Design: From Graph Partitioning to Timing Closure
<7,0,7> [3]
0
Chapter 8: Timing Closure
O2
25
Lienig
3
I4
Распределениe временного запаса по бюджетам задержки

Пример: алгоритм распределения временного запаса

Формат: <AAT, запас, RAT>, [бюджет]

Найдём путь с минимальным ненулевым запасом

Распределим запасы и обновим бюджеты
© KLMH
8.2.2
O1: <17,0,17>
I1
I2
I3
<1,0,1> [1]
O2: <10,4,14>
<4,0,4> [1]
2
<0,0,0> [2]
4
<9,0,9> [1]
<16,0,16> [1]
O1
6
<1,0,1> [3]
<10,4,14> [4]
<3,0,3> [1]
VLSI Physical Design: From Graph Partitioning to Timing Closure
<7,0,7> [3]
0
Chapter 8: Timing Closure
O2
26
Lienig
3
I4
Размещение с временной оптимизацией
© KLMH
8.3
8.1
Введение
8.2
Временной анализ и требования производительности схем
8.2.1 Статический временной анализ (SТA)
8.2.2 Бюджеты задержки и алгоритм распределения временного запаса (ZSA)
8.3 Размещение с временной оптимизацией
8.3.1 Методы с упором на сети
8.3.2 Вложение STA в линейные программы для размещения
8.4 Трассировка с временной оптимизацией
8.4.1 Алгоритм ограниченного радиуса и стоимости
8.4.2 Компромисс Прима-Дейкстры
8.4.3 Минимизация задержки от источника до стока
8.5 Физический синтез схем
8.5.1 Масштабирование вентилей
8.5.2 Буферизация
8.5.3 Перестройка сетей
8.6 Маршрут проектирования с оптимизацией производительности схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
27
Lienig
8.7 Заключение
Размещение с временной оптимизацией
© KLMH
8.3

Размещение с временной оптимизацией оптимизирует
задержку схемы чтобы выполнить требования производительности

Рассмотрим множество T всех временных точек схемы (контактов)

Выполнение требований производительности можно оценить
с помощью наименьшего отрицательного запаса (WNS)
WNS  minslack(τ)
τ

Или суммарного отрицательного запаса (TNS)
TNS 
 slack(τ)
τ, slack( τ )  0
Типы оптимизации: с упором на сети, с упором на пути, интегрированные
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
28
Lienig

Временная оптимизация с упором на сети
© KLMH
8.3.1

Добаляем вес к каждой сети – размещение оптимизирует
взвешенную длину проводов

Статические веса сетей: вычислены перед размещением (не изменяются)
 Дискретные веса:
 ω if slack  0
w 1
ω2 if slack  0
где ω1 > 0, ω2 > 0, и ω2 > ω1
α
 Непрерывные веса:
 slack 
w  1 
 где t это задержка длиннейшего пути
t  α – параметр критичности

 С использованием чуствительности TNS и запаса задержки к данной сети
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
29
Lienig
w  wo  α( slacktarget  slack )  s wSLACK  β  s wTNS
Временная оптимизация с упором на сети
© KLMH
8.3.1

Динамические веса сетей: обновляются в течении размещения
 Оцениваем запас на каждой
итерации:
slackk  slackk 1  sLDELAY  L
где ΔL это изменение длины
1
 2 υ k 1  1 если среди 3% самых критичных сетей
 Обновим параметр υ k  
1
срочности сети:
 υ k 1
иначе
2
 Обновим вес сети:
Варианты: веса обновляются через j итераций,
с использованием других критериев и формул
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
30
Lienig

wk  wk 1  1  υ k 
Вложение STA в линейные программы для размещения
© KLMH
8.3.2

Выведем линейные органичения для размещения с временной оптимизацией
 Геометрические ограничения определяют координаты ячеек
 Временные ограничения контролируют запас
Оптимизация функций
 Увеличить наименьший отрицательный запас (WNS)
 Увеличить суммарный отрицательный запас (TNS)
 Увеличить линейную комбинацию WNS и TNS
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
31
Lienig

Вложение STA в линейные программы для размещения
© KLMH
8.3.2

Переменные для геометрических ограничений:
 xv и yv задают центр ячейки v  V
 Ve множество ячеек присоединённых к сети e  E
 left(e), right(e), bottom(e), и top(e) отвечают координатам
левой, правой, нижней и верхней границ объемлющего прямоугольника
для e
VLSI Physical Design: From Graph Partitioning to Timing Closure
v с e
Chapter 8: Timing Closure
32
Lienig
 δx(v,e) и δy(v,e) задают смещение контактов
в расчёте от xv и yv
Вложение STA в линейные программы для размещения
© KLMH
8.3.2

Для всех v  Ve:
left (e)  xv  δ x (v, e)
right(e)  xv  δ x (v, e)
bottom(e)  yv  δ y (v, e)
top(e)  yv  δ y (v, e)

Определим полупериметровую длину проводов (HPWL) для e:
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
33
Lienig
L(e)  right (e)  left (e)  top(e)  bottom(e)
Вложение STA в линейные программы для размещения
© KLMH
8.3.2
Для временных ограничений, рассмотрим
 tGATE(vi,vo): задержка вентиля v от входного контакта vi до выходного контакта vo
 tNET(e,uo,vi): задержка сети e от выходного контакта uo вентиля u до входного
контакта vi вентиля v
 AAT(vj): время фактического прибытия сигнала на контакт j вентиля v
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
34
Lienig

Вложение STA в линейные программы для размещения
© KLMH
8.3.2

Для всех входных контактов vi вентиля (ячейки) v :
AAT (vi )  AAT (uo )  t NET (uo , vi )

Для всех выходных контактов vo вентиля (ячейки) v :
AAT (vo )  AAT (vi )  tGATE (vi , vo )

Для всех контактов τp в элементе памяти τ:
slack(τ p )  RAT(τ p )  AAT(τ p )
Нужно убедиться что все значения slack(τp)  0
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
35
Lienig

Вложение STA в линейные программы для размещения
© KLMH
8.3.2

Оптимизация суммарного отрицательного запаса:
max :
 slack(τ
p)
τ p Pins( τ ), τ

Оптимизация наименьшего отрицательного запаса :
max : WNS

Оптимизация линейной комбинации нескольких параметров:
min :
 L(e)  α  WNS
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
36
Lienig
eE
Трассировка с временной оптимизацией
© KLMH
8.4
8.1
Введение
8.2
Временной анализ и требования производительности схем
8.2.1 Статический временной анализ (SТA)
8.2.2 Бюджеты задержки и алгоритм распределения временного запаса (ZSA)
8.3 Размещение с временной оптимизацией
8.3.1 Методы с упором на сети
8.3.2 Вложение STA в линейные программы для размещения
8.4 Трассировка с временной оптимизацией
8.4.1 Алгоритм ограниченного радиуса и стоимости
8.4.2 Компромисс Прима-Дейкстры
8.4.3 Минимизация задержки от источника до стока
8.5 Физический синтез схем
8.5.1 Масштабирование вентилей
8.5.2 Буферизация
8.5.3 Перестройка сетей
8.6 Маршрут проектирования с оптимизацией производительности схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
37
Lienig
8.7 Заключение
Трассировка с временной оптимизацией
© KLMH
8.4

Трассировка с временной оптимизацией должна минимизировать:
 Наибольшую задержку до стока: задержу из источника до любого стока сети
 Суммарную длину проводов: с учётом конкретных маршрутов (трасс)

Для сигнальной сети net, рассмотрим
 источник s0
 стоки sinks = {s1, … ,sn}
 соответвтующий граф с весами G = (V,E) где
 V = {v0,v1, … ,vn} представлюет источник и стоки (контакты) сети net, и
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
38
Lienig
 вес ребра e(vi,vj)  E отвечает длине маршрута от vi до vj
Трассировка с временной оптимизацией
© KLMH
8.4

Для любого остовного дерева T в G, рассмотрим:
 radius(T) : max длина пути из источника к стоку в T
 cost(T) : суммарный вес рёбер T

Компромисс между “неглубокими” и “короткими” деревьями

У “неглубоких” деревьев малый радиус
 древо кратчайших путей
строится алгоритмом Дейкстры

У “коротких” деревьев малый суммарный вес рёбер
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
39
Lienig
 минимальное остовное дерево (MST)
строится алгоритмом Прима
Трассировка с временной оптимизацией
© KLMH
8.4
2
3
2
2
3
3
6
6
7
5
s0
s0
radius(T) = 8
cost(T) = 20
radius(T) = 13
cost(T) = 13
radius(T) = 11
cost(T) = 16
“Неглубокое дерево”
“Лёгкое дерево”
Компромисс между
длиной и глубиной
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
40
Lienig
s0
5
© 2011 Springer Verlag
5
Алгоритм ограниченного радиуса и стоимости
© KLMH
8.4.1

Компромисс между радиусом и стоимостью находится
при помощи наложения верхних границ на оба параметра

В контексте алгоритм ограниченного радиуса и стоимости рассмотрим:
 Дерево кратчайших путей TS
 Минимальное остовное дерево TM

Дерево TBRBC построенное для параметра ε>0 выполняет:
radius (TBRBC )  (1  ε)  radius (TS )
and

При ε = 0, TBRBC достигает минимального радуса

Когда ε = ∞, TBRBC достигает минимальной стоимости
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
41
Lienig
 2
cost (TBRBC )  1    cost (TM )
 ε
Компромисс Прима-Дейкстры
© KLMH
8.4.2

Компроисс Прима-Дейкстры базируется на алгоритмах Прима и Дейкстры

Из множества стоков S, итеративно выбираем сток s
с использованием одной из функций
 для алгоритма Прима:
 для алгоритма Дейкстры:
cost(si , s j )
cost ( s , s )  cost ( s , s )
0 i
i j
 для компромисса Прима-Дейкстры: γ  cost ( s0 , si )  cost ( si , s j )
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
42
Lienig
с константой γ между 0 и 1: линейная комбинация
двух «чистых» алгоритмов
Компромисс Прима-Дейкстры
© KLMH
8.4.2
4
4
7
11
8
8
7
9
s0
radius(T) = 19
cost(T) = 35
radius(T) = 15
cost(T) = 39
γ = 0.25
γ = 0.75
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
43
Lienig
s0
© 2011 Springer Verlag
9
7
Минимизация задержки от источника до стоков
© KLMH
8.4.3

Итеративно строим дерево добавляя стоки,
с оптимизацией срочных стоков

Задача о маршрутном дереве со срочными стоками (CSRT)
минимизирует
n
 α(i)  t (s , s )
0
i
i 1
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
44
Lienig
где α(i) - это оценки срочности стоков si,
а t(s0,si) - это задержка от s0 до si
Минимизация задержки от источника до стоков
© KLMH
8.4.3

В задаче о дереве Штейнера с одним срочным стоком, нужно построить
дерево Штейнера минимальной длины которое соединяет все стоки кроме
самого срочного sc

Присоединяем самый срочный сток одим из способов
 H0: прямой провод из sc до s0
 H1: кратчайший провод присоединяющий sc к T, при условии что
полученный путь от s0 до sc имеет наименьшую возможную длину
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
45
Lienig
 HBest: опробовать кратчайшие связки от sc до рёбер T и от sc до s0.
Выполнить временной анализ на каждом из полученных деревьев
и выбрать дерево с наименьшей задержкой до sc
Физический синтез схем
© KLMH
8.5
8.1
Введение
8.2
Временной анализ и требования производительности схем
8.2.1 Статический временной анализ (SТA)
8.2.2 Бюджеты задержки и алгоритм распределения временного запаса (ZSA)
8.3 Размещение с временной оптимизацией
8.3.1 Методы с упором на сети
8.3.2 Вложение STA в линейные программы для размещения
8.4 Трассировка с временной оптимизацией
8.4.1 Алгоритм ограниченного радиуса и стоимости
8.4.2 Компромисс Прима-Дейкстры
8.4.3 Минимизация задержки от источника до стока
8.5 Физический синтез схем
8.5.1 Масштабирование вентилей
8.5.2 Буферизация
8.5.3 Перестройка сетей
8.6 Маршрут проектирования с оптимизацией производительности схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
46
Lienig
8.7 Заключение
Физический синтез схем
© KLMH
8.5

Физический синтез это набор временных оптимизаций
для увеличения отрицательного запаса

Примеры: расчёт временных бюджетов и исполнение временных правок

Этапы бюджетирования:
 расчитать целевые задержки для сетей и/или вдоль путей
 зачастую перед размещением и трассировкой (где бюджеты используются)
 также может использоваться при временных правках

Временные правки:
 Масштабирование вентилей
 Вставка буферов
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
47
Lienig
 Перестройка сетей
Масштабирование вентилей
© KLMH
8.5.1

Рассмотрим вентиль v с тремя возможными размерами A, B, C:
size (vC )  size (vB )  size (vA )

У больших вентилей меньше сопротивление выходного контакта

При больших нагрузочных ёмкостях
t (vC )  t (vB )  t (v A )

У меньших вентилей больше сопротивление выходного контакта

При меньших нагрузочных ёмкостях :
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
48
Lienig
t (vC )  t (vB )  t (v A )
Масштабирование вентилей
© KLMH
8.5.1

Рассмотрим вентиль v с тремя возможными размерами A, B, C :
size (vC )  size (vB )  size (vA )
40
35
Задержка (ps)
35
30
25
20
15
23
18
24
21
25
24
30
27
30
26
27
40
33
28
A
B
C
20
15
0.5
1.0
1.5
2.0
2.5
Нагрузочная ёмкость (fF)
VLSI Physical Design: From Graph Partitioning to Timing Closure
3.0
Chapter 8: Timing Closure
49
Lienig
5
© 2011 Springer Verlag
10
Масштабирование вентилей
© KLMH
8.5.1
a
b
vA
v
d
C(d) = 1.5
e
C(e) = 1.0
f
C(f) = 0.5
t(vA) = 40
VLSI Physical Design: From Graph Partitioning to Timing Closure
C(d) = 1.5
e
C(e) = 1.0
f
C(f) = 0.5
a
b
vC
d
C(d) = 1.5
e
C(e) = 1.0
f
C(f) = 0.5
t(vC) = 28
Chapter 8: Timing Closure
50
Lienig
a
b
d
Буферизация
© KLMH
8.5.2

Буфер: два инвертера соединённых последовательно

Вставив буфер, можно изменить задержку схемы
 изменить времена переключения
 экранировать ёмкостную нагрузку
 ускорить схему или вставить элемент задержки

Недостатки:
 Увеличивается площадь схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
51
Lienig
 Увеличивается мощность энергопотребления
Буферизация
© KLMH
8.5.2
vB
f C(f) = 1
g C(g) = 1
C(vB) = 5 fF
h C(h) = 1
t(vB) = 45 ps
d C(d) = 1
e C(e) = 1
a
b
vB
y
C(vB) = 3 fF
f C(f) = 1
g C(g) = 1
h C(h) = 1
t(vB) = 33 ps
C(y) = 3 fF
t(y) = t(vB) + t(y) = 66 ps
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
52
Lienig
a
b
d C(d) = 1
e C(e) = 1
Перестройка схем
© KLMH
8.5.3

Перестройка схем меняет вентили схемы,
но сохраняет функцию схемы без изменений

Примеры преобразований схем
 клонирование: дублирование вентилей
 переделка входного или выходного дерева вентиля:
меняет топологию соединений между вентилями
 обмен коммутативных контактов: меняет соединения
 декомпозиция вентилей: например заменить AND-OR на NAND-NAND
 Булева перестройка: замена вентилей по законам Булевой алгебры
Обратные преобразования

сокращение размеров вентилей,

слияние вентилей, и т.д.
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
53
Lienig

Перестройка схем
© KLMH
8.5.3

a
b
vB
d
e
C(d) = 1
C(e) = 1
f
C(f) = 1
g
C(g) = 1
h
C(h) = 1
a
d C(d) = 1
e C(e) = 1
vA
b
f
vB
C(f) = 1
g C(g) = 1
h C(h) = 1
и сократить ёмкость вниз по течению
d
e
v
f
…
…
a
b
d
v
e
f
g
h
VLSI Physical Design: From Graph Partitioning to Timing Closure
v’
…
g
h
Chapter 8: Timing Closure
54
Lienig
a
b
Клонирование может сократить ёмкость разветвления выхода вентиля
© 2011 Springer Verlag

Перестройка схем
© KLMH
8.5.3
Переделка дерева разветвления входа может изменить значения AAT
a <4>
b <3>
(1)
f <6>
(1)
b <3>
c <1>
d <0>
(1)
f <5>
(1)
(1)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
55
Lienig
© 2011 Springer Verlag
c <1>
d <0>
a <4>
(1)
Перестройка схем
© KLMH
8.5.3
Переделка дерева разветвления выхода может изменить
задержки на конкретных путях
путь1
путь1
y1 (1)
(1)
(1)
(1)
(1)
y2 (1)
путь2
путь2
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
56
Lienig
© 2011 Springer Verlag
y2 (1)
Перестройка схем
© KLMH
8.5.3
Обмен коммутативных контактов может изменить задержку схемы
a <0>
b <1>
f <5>
(1)
(2)
c <2>
b <1>
a <0>
(1)
(1)
f <3>
(1)
(2)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
57
Lienig
© 2011 Springer Verlag
c <2>
(1)
(1)
Перестройка схем
© KLMH
8.5.3
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
58
Lienig
© 2011 Springer Verlag
Декомпозиция вентилей может изменить структуру схемы
Перестройка схем
© KLMH
8.5.3
Булева перестройка использует законы Булевой алгебры,
например, закон дистрибутивности, чтобы изменить топологию схемы
(a + b)(a + c) = a + bc
a <4>
(1)
b <1>
x <6>
(1)
y <6>
x <5>
(1)
y <6>
(1)
(1)
(1)
(1)
x(a,b,c) = (a + b)(a + c)
x(a,b,c) = a + bc
y(a,b,c) = (a + c)(b + c)
y(a,b,c) = ab + c
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
59
Lienig
c <2>
(1)
b <1>
c <2>
(1)
© 2011 Springer Verlag
a <4>
Маршруты проектирования
© KLMH
8.6
8.1
Введение
8.2
Временной анализ и требования производительности схем
8.2.1 Статический временной анализ (SТA)
8.2.2 Бюджеты задержки и алгоритм распределения временного запаса (ZSA)
8.3 Размещение с временной оптимизацией
8.3.1 Методы с упором на сети
8.3.2 Вложение STA в линейные программы для размещения
8.4 Трассировка с временной оптимизацией
8.4.1 Алгоритм ограниченного радиуса и стоимости
8.4.2 Компромисс Прима-Дейкстры
8.4.3 Минимизация задержки от источника до стока
8.5 Физический синтез схем
8.5.1 Масштабирование вентилей
8.5.2 Буферизация
8.5.3 Перестройка сетей
8.6 Маршрут проектирования с оптимизацией производительности схемы
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
60
Lienig
8.7 Заключение
Маршруты проектирования
© KLMH
8.6
Базовый маршрут физического проектирования
1. Планирование кристалла, размещение контактов I/O,
планирование сетей питания и земли
2. Логический синтез и технологическая специализация
3. Глобальное размещение и легализация элементов памяти
4. Синтез деревьев синхорсигнала
5. Глобальная трассировка и определение уровней металлизации
6. Легализация и детальное размещение с учётом перегруженности
7. Детальная трассировка
8. Производственные оптимизации
9. Физическая верификация
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
61
Lienig
10. Создание и оптимизация фотошаблонов
Маршруты проектирования
© KLMH
Видео
Видео
кодек
пре-/постпроссесинг;
цифровая
управление
обработка
потоком
Аудио
Аудио
пре-/постпроссесинг
кодек
Контроллер Поддержка
коммунидля
обработки кационных
протоколов
данных
Baseband DSP
Baseband
PHY
MAC/Control
Главный процессор
для приложений
VLSI Physical Design: From Graph Partitioning to Timing Closure
Блок
защиты
Память
Chapter 8: Timing Closure
62
Lienig
Аналого-цифровой
преобразователь (АЦП)
Аналоговые схемы
Пример: плана кристалла
© 2011 Springer Verlag
8.6
Маршруты проектирования
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
63
Lienig
© 2011 Springer Verlag
Пример: глобальное размещение
© KLMH
8.6
8.6
Маршруты проектирования
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
64
Lienig
© 2011 Springer Verlag
© KLMH
Пример: дерево синхросигнала
8.6
Маршруты проектирования
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
65
Lienig
© 2011 Springer Verlag
© KLMH
Пример: перегруженность при
глобальной трассировке
Маршруты проектирования
© KLMH
8.6
Chip Planning and Logic Design
Performance-Driven
Block Shaping, Sizing
and Placement
I/O Placement
Chip Planning
With Optional Net Weights
Performance-Driven
Block-Level
Delay Budgeting
Single Global Net Routes
and Buffering
Trial Synthesis and
Floorplanning
fails
Logic Synthesis and
Technology Mapping
Power Planning
RTL
Timing Estimation
passes
(полная блок-схема в Figure 8.26)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
66
Lienig
© 2011 Springer Verlag
Block-level or Top-level Global Placement
Маршруты проектирования
© KLMH
8.6
Block-level or Top-level Global Placement
Global Placement
Obstacle-Avoiding Single
Global Net Topologies
With Optional Net Weights
Physical Buffering
Delay Estimation
Using Buffers
OR
Layer Assignment
Virtual Buffering
Buffer Insertion
Physical Synthesis
(полная блок-схема в Figure 8.26)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
67
Lienig
Static
Timing Analysis
passes with
fixable violations
© 2011 Springer Verlag
fails
Маршруты проектирования
© KLMH
8.6
Physical Synthesis
Timing Correction
Timing-Driven
Restructuring
Boolean Restructuring
and Pin Swapping
AND
passes
Gate Sizing
Redesign of Fanin
and Fanout Trees
Routing
(полная блок-схема в Figure 8.26)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
68
Lienig
Static
Timing Analysis
© 2011 Springer Verlag
fails
Маршруты проектирования
© KLMH
8.6
Routing
Legalization of
Sequential Elements
Clock Network Synthesis
With Layer Assignment
Timing-Driven Routing
passes
(Re-)Buffering and
Timing Correction
Global Routing
fails
Static
Timing Analysis
Detailed Routing
Timing-driven
Legalization + CongestionDriven Detailed Placement
2.5D or 3D
Parasitic Extraction
(полная блок-схема в Figure 8.26)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
69
Lienig
© 2011 Springer Verlag
Sign-off
Маршруты проектирования
© KLMH
8.6
Sign-off
passes
Manufacturability,
Electrical, Reliability
Verification
passes
Mask Generation
Design Rule Checking
Layout vs. Schematic
Antenna Effects
Electrical Rule Checking
(полная блок-схема в Figure 8.26)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
70
Lienig
Static Timing Analysis
fails
© 2011 Springer Verlag
ECO Placement and Routing
fails

© KLMH
Обзор Главы 8 – Временные ограничения и временной анализ
Задержка схем оценивается на сигнальных путях
 От первичных входных контактов до элементов памяти;
от элементов памяти до первичных выходных контактов
 Между элементами памяти

Компоненты задержки на путях
 Задержки вентилей: верхняя оценка по худшему перекючению
(чтобы обеспечить быстрый статический временной анализ)
 Задержки проводов: зависят от длины проводов и топологии
(для сетей с >2 контактами)

Временные ограничения
 Фактические врменя прибытия (AATs) в первичные входы
и выходы элементов памяти
 Требуемые врменя прибытия (RATs) в первичные выходы
и входы элементов памяти

Статический временной анализ
 Два прохода считают AAT и RAT для каждого вентиля (и сети)
за линейное время
 В каждой временной точке: запас = RAT-AAT
 Отрицательный запас = временное нарушение;
срочные сети/вентили определяются по отрицательному запасу
Бюджеты: делят задержку схемы на границы задержки сетей и вентилей
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
71
Lienig


Размещение вентилей/ячеек влияет на длину проводов,
которая влияет на задержку сетей

Размещение с врменной оптимизацией оптимизирует координаты
вентилей/ячеек чтобы улучшить временные характеристики
© KLMH
Обзор Главы 8 – Размещение с временной оптизацией
 Временной анализ находит срочные сети, им уделяется особое внимание
 Длина проводов должна быть низкой, иначе трассировка провалится
 Временная оптимизация часто усугибляет перегруженность

Размещение с контролем весов сетей
 Самый простой метод размещения с временной оптимизацией
 После начального размещения, запускает временной анализ
и подсчитывает веса для сетей

Размещение с бюджетами задержек сетей
 Назначает границы задерки для каждой сети;
переводит границы задержки в границы длин
 Выполняет размещение с соблюдением границ длин сетей
Размещение с использованием линейного программирования
 Сводится к системе уравнений и неравенств
 Временной анализ и оптимизация представлены особыми неравенствами
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
72
Lienig

Обзор Главы 8 – Трассировка с временной оптимизацией
Трассировка с временной оптимизацией многогранна
© KLMH

 Индивидуальные сети: компромисс между длиной и глубиной
 Ёмкость соединения и целостость сигнала: параллельные провода создают
конденсаторы и могут замедлить/ускорить переключение сигналов
 Оптимизация всей схемы: определить очерёдность оптимизации сетей

Оптимизация индивидуальных сетей
 Крайний случай: независимые трассы от источника до каждого стока
(высокая длина, возможно низкая задержка)
 Крайний случай: минимальное остовное дерево (низкая длина, выс. задержка)
 Компромисс: гибрид алгоритмов Прима и Дейкстры

Ёмкость соединений и целостность сигнала
 Параллельные провода требуют особого внимания
когда они переключаются одновременно
 Определив срочные сети, ограничить перекрёстный шум на них
отдалив соседние провода

Оптимизация всей схемы
 После предварительной трассировки, временной анализ находит срочные сети
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
73
Lienig
 Оптимизировать индивидуальные сети, повторить


В прошлом, размещение и трассировка использовали завершёную схему
Сегодня, неперспективно рано фиксировать размеры вентилей
и топологии сетей – это не учитывает более точного временного анализа
© KLMH
Обзор Главы 8 – Физический синтез схем
 Координаты вентилей и трассы сетей ещё не доступны

Физический синтез перестраивает схему
с использованием предварительного размещения

Буферизация сетей: разбивает сеть на меньшие куски (~равной длины)
 Длиная сеть может иметь слишком высокую ёмкость,
ведущий вентиль может быть слишком слабым

Масштабирование вентилей/буферов: повышает силу ведушего вентиля
& его физические размеры
 У больших вентилей высокая ёмкость входного контакта,
но малое сопротивление выходного контакта
 Большие вентили могут вести больше вентилей, длиные сети;
переключаются быстрее
 Большие вентили требуют больше места,
большие ведущие вентили вверх по течению
Клонирование вентилей: разделяет большие разветвления выхода
 Дублированые вентили могут быть разнесены (чего один вентиль не позволяет)
VLSI Physical Design: From Graph Partitioning to Timing Closure
Chapter 8: Timing Closure
74
Lienig

Скачать