Студент 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 Колличество ячеек Спасибо за внимание!