Временной анализ при проектировании иерархического блока

advertisement
Студент 816 группы Трихин П. О.
Научный руководитель: Терентьев Ю. И.
Задачи:
 Создать маршрут проектирования с использованием
план групп (plan_groups)
 Провести оптимизацию тайминга и добиться работы
блока на частоте 1 Ггц (рабочий блок cu_cu и
alc0_int_com)
 Написать скрипты для ручной трассировки дизайна
Маршрут проектирования:
 Логический синтез
 Планирование кристалла
 Топологический синтез блока
 Размещение элементов в макроблоках (plan groups)
 Оптимизация тайминга
 Трассировка
 Установка пинов
 Фиксация плангрупп
Временной анализ
 slack – разница между
временем необходимым для
установки сигнала на
элементе и реальным
временем которое для этого
имеется.
 Критический путь – путь с
наименьшим значением slack
Основная задача при оптимизации тайминга: уменьшить (по
модулю) значение slack в критическом пути вплоть до 0.
Оптимизация тайминга
Автоматическая оптимизация
 Буферизует длинные
пути
 Изменяет размер ячеек
 Изменяет расположение
ячеек
Зависимость Slack от числа
итераций
3.5000
3.0000
Исследование зависимости
slack в дизайне от числа
итераций
-Slack
2.5000
2.0000
1.5000
1.0000
0.5000
0.0000
0
1
2
3
Число итераций
Резултат: оптимальным является использование двух итераций
4
5
Оптимизация тайминга
Оптимизация путем корректировки частоты
синхросигнала
 Частота синхросигнала
Зависимость Slack от значения Clock
Исследование зависимости
Slack от частоты Clock
На графике возле каждой
точки указано количество
ячеек в дизайне.
-Slack
влияет на алгоритм
оптимизации САПР
0.2
0.18
0.16
0.14
(95713)
0.12
(97561)
0.1
0.08
0.06
0.04
0.02
(103633)
0
0.2
0.4
-0.02 0
(94753)
(94973)
0.6
0.8
1
Значение Clock в нс
Минусы: выигрыш в тайминге отрицательно сказывается на площади
дизайна, при clock = 0,1 нс - количество ячеек возросло на 3.5 %
1.2
Оптимизация тайминга
DC – ICC итерации
В маршруте использовались два САПР (Средство автоматического
проектирования)
 DC (Design Compiler)
 IC Compiler
Проблема: DC оптимизирует лучше чем ICC, но DC не работает с
plangroups.
Решение: использовать DC повторно после создания plangroups,
выгрузив всю информацию о них из ICC.
Результат:
- Slack уменьшился на 0.3 нс (2.1830 - 1.8107)
- оптимизация негативно сказалась на площади дизайна увеличив ее на 34%
(725×725 - 850×850)
- в процессе оптимизации на внешнем уровне иерархии появились
дополнительная 371 ячейка что испортило созданную иерархию.
Вывод: применение такой оптимизации нецелесообразно
Трассировка
Проблема:
При автоматической
трассировке САПР
прокладывает провода не
оптимальными способом.
Решение:
Прокладка части проводов
вручную
Для облегчения ручной трассировки написаны вспомогательные скрипты:
- Скрипт, позволяющий объединить неветвящиеся провода двух план групп в шину
- Скрипт, соединяющий шинами соседние план группы
- Скрипт, соединяющий шинами все план группы
Ручная трассировка завершается автоматической до разводкой проводов и
установкой пинов.
Фиксация плангрупп
Последний этап маршрута – фиксация плангрупп позволяющая работать с
ними как с обычными стандартными ячейками
До
После
Результаты работы
- Создан новый маршрут проектирования с использованием
plangroups.
- Придуманы и проанализированы несколько оптимизаций для
тайминга
- Обеспечена работа тестовых блоков на частоте 1 Ггц
- Написаны вспомогательные скрипты для ручной трассировки
Плоский
Иерархический
Количество ячеек
107200
81620
Утилизация
0.75(75%)
0.75(75%)
Общая площадь
блока
1108800 мкм2
Колличество ячеек
Спасибо за внимание!
Download