CELLERITY: СИСТЕМА АВТОМАТИЧЕСКОГО СИНТЕЗА ТОПОЛОГИИ СТАНДАРТНЫХ ЯЧЕЕК Л.А. Зинченко1, Р.Л. Мазиас2, В.П. Розенфельд1, Ю.Г. Смирнов1, М.А. Сотников1, С.В.Стоянов1, И.Г.Топузов1, К.Д.Фалковски2 1 ООО «Фрискейл Семикондактор», [email protected] 2 Freescale Semiconductor Inc. Один из эффективных методов проектирования КМОП СБИС основан на применении библиотек стандартных ячеек. При этом крупные блоки СБИС строятся в базисе схем, реализующих различные логические функции (И-НЕ, И-ИЛИ-НЕ, мультиплексор, триггер). Стандартные ячейки в библиотеке имеют ряд общих свойств, облегчающих топологическое проектирование блоков: высота, положение шин земли/питания, и другие. Разработка топологии стандартных ячеек долгое время проводилась вручную. Однако, начиная с середины 90-х годов, стали появляться системы, решающие эту задачу автоматически. Это было обусловлено факторами, связанными, прежде всего с растущей динамикой рынка микросхем, уменьшением минимальных размеров и, как следствие, усложнением технологических правил; расширением номенклатуры ячеек в библиотеке; потребностью дополнять имеющиеся библиотеки новыми ячейками, специфичными для микросхем различного назначения и рабочих характеристик. Существующие САПР используют различные подходы к автоматическому созданию библиотек стандартных ячеек. Наиболее распространенными являются генераторы топологии, миграция уже имеющихся ячеек на новую технологию или/и новый шаблон, и автоматический синтез [7]. Метод синтеза является наиболее гибким по отношению к требованиям шаблона библиотеки и технологическим правилам. В данной работе рассматривается программная система автоматического синтеза топологии стандартных ячеек CELLERITY [1], разработанная в компании Freescale Semiconductor. Эта система поддерживает технологические процессы с минимальными размерами до 0.06 микрон и используется для создания библиотек разнообразных архитектур. В качестве входной информации требуются формальные описания шаблона библиотеки, технологических правил и электрические схемы проектируемых ячеек в формате Spice. Выходной информацией CELLERITY является топология ячейки и набор соответствующих метрик: площадь, длина проводников, другие критерии качества. Маршрут синтеза топологии ячеек состоит из нескольких этапов (рис.1): 1. Расщепление транзисторов [1], [2]. Цель этого этапа - обеспечить требование заданной высоты ячейки. Транзисторы с большой шириной канала заменяются несколькими транзисторами меньшей ширины, включенными параллельно. Такой процесс называется расщеплением. На данном этапе формируется список вариантов исходной схемы, отличающихся друг от друга количеством транзисторов. Наилучший вариант выбирается на основе ряда критериев, важнейшим из которых является ширина ячейки. 2. Для выбранного варианта расщепления проводится размещение транзисторов. При этом используется алгоритм моделирования отжига, который оптимизирует ширину ячейки и локальную плотность соединений внутри нее [3]. Следует отметить, что базовый агоритм моделирования отжига модифицирован таким образом, что позволяет находить несколько вариантов размещения, повышая вероятность успешного синтеза топологии ячейки. 3. Этап предварительной трассировки создает часть межсоединений между затворами транзисторов в слое поликремния, и решает задачу размещения контактов к областям стока/истока транзисторов [4], [5], подготавливая тем самым рабочее поле для детального трассировщика. В ряде случаев может также быть использован многослойный канальный трассировщик [10], [11], который проводит межсоединения для большинства цепей. 4. Многослойный детальный трассировщик [5], [6] завершает трассировку ячейки. По окончании этого этапа топология может содержать незначительные нарушения технологических правил и ещё не удовлетворяет требованиям шаблона библиотеки. 5. Сжатие топологии выполняется программой [8], [9], использующей графовый подход. Результатом этого этапа является топология, удовлетворяющая требованиям технологических правил и шаблона библиотеки, и оптимизированная по площади и другим параметрам качества. 6. Оптимизация ячейки – необязательный этап синтеза, удаляющий петли/полупетли в межсоединениях. Включает в себя совместно работающие трассировщик и компактор. 7. Экспорт синтезированной топологии в формат GDSII. 113 8. Критерий остановки: - набор условий при которых система заканчивает перебор вариантов размещения и расщепления: количество синтезированных вариантов превышает некоторое число; оценка ширины для оставшихся вариантов расщепления хуже, чем минимальная ширина уже синтезированных; попытки синтеза для нескольких вариантов расщепления не привели к улучшению уже имеющейся топологии. Технологические правила, шаблон ячейки, схема ячейки Трассировка Расщепление транзисторов, создание списка вариантов Сжатие Модифицированная Модифицирован схема ная схема Размещение транзисторов Вариант Вариант размещения размещен ия Оптимизация ячейки Предварительная трассировка Еще варианты расщепления? Требования шаблона выдержаны? Еще варианты размещения? Экспорт топологии в формат GDSII Критерий останова выполнен? Конец Рис. 1. Блок-схема синтеза топологии стандартных ячеек Далее будут рассмотрены основные алгоритмы, использующиеся на различных этапах создания топологии ячейки, а также модификации основного маршрута для синтеза ячеек с двухуровневой архитектурой, сложных последовательностных схем и простых комбинационных схем с высокой нагрузочной способностью. Расщепление транзисторов и оценка качества ячейки Расщепление транзисторов – модификация электрической схемы ячейки, заключающаяся в замене транзисторов с большой шириной канала несколькими транзисторами меньшей ширины, включенными параллельно (рис.2а). Это необходимо для обеспечения требования заданной высоты ячейки. В системе CELLERITY поддерживается два типа расщепления: с разъединением внутренних узлов схемы (рис.2б) и без него (рис.2в). Тип расщепления может влиять на размер ячейки и на сложность задачи проведения межсоединений. При использовании разъединения внутренних узлов схемы возрастает локальная плотность цепей, подключенных к затворам. Становиться необходимо согласовывать пальцы p- и n-транзисторов для уменьшения использования поликремния при трассировке между областями диффузии. Однако появляется возможность уменьшить ширину ячейки за счет разницы в расстоянии между затворами. 114 Второй тип расщепления обычно приводит к более простым задачам размещения и проведения межсоединений, поскольку появляется возможность группировать пальцы расщепленных транзисторов, уменьшая размеры горизонтальных интервалов, необходимых для трассировки затворных цепей. Входные данные для этого этапа проектирования: электрическая схема ячейки, описание шаблона, технологический файл. Выходные данные: список вариантов расщепления (и модифицированные схемы) SolutionList TN , TP , HLB ,WLB,... (1), где TN, TP – максимальныe размеры n- и p- канальных транзисторов в данном варианте, HLB – точная нижняя оценка высоты ячейки, WLB – точная нижняя оценка ширины ячейки. Список (1) сортируется по убыванию HLB, затем по возрастанию WLB. Варианты решений с HLB, большими высоты ячейки, задаваемой шаблоном, отклоняются. При сортировке списка (1) могут также быть использованы дополнительные критерии, например балланс ширин областей для nи p- канальных транзисторов, и т.д. W=20 X X W=10 W=10 A а) расщепление транзистора X X A A б) расщепление группы транзисторов с разъедининием внутренних узлов A A A в) расщепление группы транзисторов без разъединения внутренних узлов Рис. 2. Расщепление транзисторов Методика оценки HLB Для оценки HLB формируется полный взвешенный двудольный граф (рис. 3а) HG (VN VP , HE ) (2), где VN, VP – вершины, соответствующие n- и p-канальным транзисторам, HE – множество ребер, каждому ребру he=(vn,vp), vnVN, vpVP назначается вес, равный высоте ячейки при условии, что транзисторы, соответствующие vp и vn, размещаются друг под другом (рис. 3б). Рис. 3. Граф для оценки НLB 115 Далее применяется следующий алгоритм: HeightEstimate( HG ){ Сформировать массив весов ребер (Высот) H, отсортированный по убыванию. MatchingOK=true; I := 0 HLB := H[0]; MaxCardinality := min(|HG.Vn|, |HG.Vp| ); While( MatchingOK ){ I := I+1; h := H[I]; HideExpensiveEdges( HG, h ); Matching := MAX_CARDINALITY_MATCHING( HG ) If( |Matching| < MaxCardinality) Then MatchingOK = false; break; Else HLB=h; } return HLB; } Процедура HideExpensiveEdges удаляет из графа HG ребра, чей вес больше заданного. Процедура MAX_CARDINALITY_MATCHING решает задачу нахождения паросочетания максимальной мощности в двудольном графе. Таким образом, алгоритм HeightEstimate определяет наибольшее значение H, при котором удается найти паросочетание максимальной мощности, и при этом все вершины из VN (или VP, в зависимости от того, каких транзистров меньше) инцидентны ребрам найденного паросочетания. Методика оценки WLB WLB для ряда n- или p-транзисторов оценивается по следующей формуле (рис.4): WLB ( l i ) N gg gateSpace N gcg gcgSpace i N gapSpace 2 gateBoundarySpace (3), gaps где Ngg – количество пар затворов, между которыми нет контакта к диффузии; Ngcg – количество пар затворов, между которыми имеется контакт к диффузии; Ngaps – количество разрывов диффузионных областей; Смысл остальных обозначений понятен из рис. 4. gateBoundarySpace gcgSpace gapSpace gateSpace li Ngg=4; Ngaps=1; Ngcg=5 Рис. 4. Расчет WLB для ряда транзисторов Надо заметить, что количество n- (p-)транзисторов в ряду связано с величинами Ngg, Ngcg и Ngaps, следующим соотношением: N = Ngg + Ngcg + Ngaps + 1 (4) Количество пар транзисторов, между которыми нет контактов, Ngg, очевидным образом вычисляется из модифицированной электрической схемы. Для того, чтобы воспользоваться формулой (3), необходимо определять минимальное количество разрывов в диффузионных областях Ngaps: Ngaps = Nodd_sd_nets/2 – 1 (5), где Nodd_sd_nets – количество цепей, инцидентных нечетному числу стоков/истоков транзисторов в этом ряду. Эта формула следует из эйлеровских свойств т.н. диффузионного графа, в котором множество вершин представляет цепи, инцидентные стоковым областям транзисторов, а 116 затворы представлены ребрами. Любое относительное размещение транзисторов в ряд может быть представлено отрезками эйлерового пути (или циклом) на диффузионном графе. Окончательная оценка ширины ячейки – WLB = min( WLBN, WLBP). Размещение транзисторов На этом этапе используется метод моделирования отжига [1], [3]. Технологические правила аппроксимируются некоторой сеткой, дальнейшее размещение проводится в сеточных позициях. Алгоритм [3] стартует с некоторого начального размещения. На очередной итерации алгоритма выполняются перестановки отдельных транзисторов или их групп, получившееся размещение оценивается целевой функцией, компонентами которой являются: оценка высоты ячейки для варианта размещения; количество совмещений стоковых и истоковых областей транзисторов – критерий, оптимизирующий ширину ячейки; локальная плотность соединений; количество согласованно размещенных затворов P- и N-транзисторов (рис.5); количество согласованно размещенных сток-истоковых областей P- и N-транзисторов (рис. 5). Согласованные затворы (5пар) Согласованные стоковые области p- и n-транзисторов (8пар, включая области, подсоединенные к землепитанию) Рис. 5. Некоторые компоненты целевой функции алгоритма размещения. Предварительная трассировка ячейки Особенностью задачи трассировки в системе Cellerity является т.н. «разреженная» модель дискретного рабочего поля, которое имеет ресурсов заведомо больше, чем требуется для проведения межсоединений. Это позволяет завершить разводку цепей почти всегда. Однако, возникают случаи, когда избыточные ресурсы сильно искажают задачу, и программа сжатия не в состоянии обеспечить требование высоты ячейки по причине неоптимального проведения соединений. Поэтому, в систему был введен этап предварительной трассировки, решающий следующие задачи: объединение смежных стоковых и истоковых областей транзисторов; проведение соединений к шинам земли/питания; частичная трассировка согласованных затворов в поликремнии; планирование положения контактов к стоковым и истоковым областям транзисторов. Первая задача является тривиальной: проведение соединений в слое диффузии для соседних стоковых/истоковых областей транзисторов. Проведение цепей земли/питания осуществляется по шаблону (рис.6). Трассировка шин земли-питания Предварительная трассировка затворов Планировка положения сток/истоковых контактов Рис. 6. Результат предварительной трассировки 117 Для согласованных или почти согласованных затворов n- и p-канальных транзисторов проводится предварительная трассировка, как показано на рис.6. При этом учитываются ограничения на максимальное число затворов, принадлежащих одному связному компоненту в поликремнии. Планирование положения контактов к стоковым и истоковым областям проводится в соответствии с [4]. Определяется порядок удаления контактов от нижней и верхней границ ячейки: контакты для цепей земли-питания должны располагаться как можно ближе к соответствующим шинам; далее расположены контакты, соединяющие диффузионные области только одного типа; затем размещаются контакты цепей, соединяющих n- и p-канальные транзисторы. Окончательная трассировка ячейки На этапе окончательной трассировки завершается проведение межсоединений внутри ячейки. Используется несколько запусков алгоритма Echelon [2],[6], отличающихся друг от друга настройками, при этом минимизируется количество межслойных переходов и число трасс в слое металлизации, проходящих между рядами p- и n-транзисторов. Необходимо отметить, что предварительная трассировка и планировка контактов существенно упрощает задачу окончательной трассировки ячейки. Работа алгоритма [6] разделяется на пять основных этапов. Во-первых, цепи сортируются по их приоритетам. Во-вторых, трассировщик отображает исходную задачу в нерегулярное ДРП для увеличения количества трасс, используемых при проведении межсоединений. На третьем этапе используется лабиринтная трассировка (maze) с целью определения эскиза каждой цепи. Четвертый этап – расслоение эскизов, на котором происходит назначение слоев для участков трассировки. При этом минимизируется стоимость соединений. Алгоритм, используемый для решения задачи расслоения, базируется на методе моделирования отжига. Последний, пятый этап – снятие цепей и перетрассировка для уменьшения числа изломов, межслойных переходов и т.п. Если заданные размеры ДРП не позволяют решить задачу трассировки, в рабочее поле добавляются дополнительные ресурсы в окрестности незавершенных цепей. Сжатие Этот этап выполняется программой [8], [9], использующей графовый подход. Результатом сжатия является топология, удовлетворяющая требованиям технологических правил и шаблона библиотеки, и оптимизированная по площади и другим параметрам качества топологии. Отличительные особенности алгоритмов сжатия, используемого в Cellerity: 1.5 – мерное сжатие: при компакции топологии в основном направлении возможен сдвиг в ортогональном направлении; контурная модель топологии позволяет учитывать более широкий набор технологических правил; использование методов реорганизации топологии: удаление меандров, локальная перетрассировка и удаление критических правил; слияние пальцев избыточно расщепленных транзисторов; оптимизация топологии по критериям быстродействия, трассируемости и выхода годных Оптимизация ячейки После сжатия топология может содержать неоптимальные кофигурации соединений, такие, как полупетли. Для их устранения в CELLERITY применяются совместно работающие перетрассировщик и компактор. В отличие от алгоритма Echelon, перетрассировка проводится на т.н. «плотном» дискретном рабочем поле, с соблюдением некоторых технологических правил [12]: «диагональный» минимальный зазор между проводниками; прямоугольная форма контактных площадок для межслойных переходов; правило «защитной зоны» вокруг канала транзистора. Во время оптимизации в топологии выделяются межсоединения сложной конфигурации (содержащие большое число изломов и межслойных переходов). Затем предпринимаются попытки их перетрассировки. Запуск алгоритма сжатия завершает этап оптимизации ячейки. Модификации основного маршрута синтеза С инт е з яч е ек с дв ух ур о вне во й а р х ит ект ур о й При синтезе ячеек с двухуровневой архитектурой в дополнение к уже перечисленным задачам добавляется задача декомпозиции входной схемы на две подсхемы (два этажа) по критериям минимальной связности или равномерного заполнения этажей. Для этого используется алгоритм многоуровневого разбиения hMetis [13]. Декомпозиция может проводится с различным уровнем детализации: на уровне транзисторов, на уровне параллельно-последовательных компонент схемы ячейки, на уровне связных компонент постоянного тока, а также, с использованием иерархии, 118 заданной пользователем при описании схемы во входном Spice-файле. Необходимо заметить, что декомпозиция может проводится как до расщепления, так и после него. При синтезе комбинационных ячеек с большой нагрузочной способностью может применяться т.н. метод зеркального отражения. При этом выполняются следующие действия: 1. Модификация схемы: ширины каналов всех транзисторов уменьшаются в два раза. 2. Вызывается основной маршрут синтеза ячейки, задача трассировки в котором дополняется: для входных и выходных цепей создаются точки подключения на верхней границе. 3. Полученная ячейка зеркально отображается относительно верхней границы. И ер а р х ич еск и й с и нт ез т о по ло ги и Если схема ячейки состоит из большого числа транзисторов и/или является сложной, система может оказаться не в состоянии синтезировать топологию. В этом случае применяется режим иерархического синтеза: схема разбивается (пользователем или автоматически) на две или более подсхемы, проводится их линейное размещение, планируются выводы на боковых границах ячеек. Затем подъячейки синтезируются независимо, после чего происходит их объединение в ячейку верхнего уровня (рис. 9). При таком подходе существенно снижаются временные затраты на синтез ячейки, однако качество может оказаться хуже, чем при прямом синтезе. Иерархический режим синтеза позволяет быстро получить первую версию сложной ячейки, которую затем можно улучшать с помощью редактора топологии. Примеры топологии ячеек Ниже приведены примеры топологии ячеек различной сложности, синтезированные с помощью системы CELLERITY. Рис. 7. Топология ячейки ao21 с невысокой нагрузочной способностью Рис. 8. Топология ячейки xnor3 с высокой нагрузочной способностью (92 транзистора) а) б) Рис. 9. Топология сдвигового регистра, полученная с помощью иерархического синтеза: а) подъячейки собранные в ячейку верхнего уровня; б) окончательная топология (150 транзисторов) 119 Заключение Система CELLERITY позволяет существенно ускорить процесс создания библиотек стандартных ячеек. Пользователь имеет возможность задавать свои критерии качества и выбрать лучший из синтезированных вариантов топологии ячейки в интерактивном режиме. Система может быть настроена на оптимизацию площади ячеек или на оптимизацию быстродействия путем использования определенных топологических решений внутри ячейки. Имеется возможность синтеза топологии ячеек с двухуровневой архитектурой. Возможность синтеза сложных последовательностных ячеек и комбинационных ячеек с высокой нагрузочной способностью путем использования иерархического маршрута синтеза. В системе используются топологические решения, облегчающие трассируемость на блочном уровне, улучшающие выход годных и надёжность микросхемы. ЛИТЕРАТУРА 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Guruswami M., Maziasz R., Dulitz D., Raman S., Chiluvuri V., Fernandes A., Jones L. CELLERITY: A Fully Automatic Layout Synthesis System for Standard Cell Libraries. // DAC 97, Anaheim, California. – 1997. – P. 327-332. Guruswamy M., Dulitz D.L., Maziasz R.L., Raman S., Chiluvuri V.K.R., Berens A. Automatic synthesis of standard cell layouts. - US patent No 5984510, Nov. 16, 1999. Maziasz R.L., Guruswamy M., Raman S. Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors. - US Patent No 6,209,123, March 27, 2001. Chiluvuri V.K.R., Guruswamy M., Raman S., Maziasz R.L. Method for optimizing contact pin placement in an integrated circuit. - US Patent No 6,075,934, June 13, 2000. Raman S., Guruswamy M., Dulitz D.W., Chiluvuri V.K.R., Maziasz R.L. Automatic layout standard cell routing. - US Patent No 6,006,024, Nov. 16, 1999. Guruswami M., Wong D.F. Echelon: A Multilayer Detailed Router // IEEE Transactions on ComputerAided Design of Integrated Circuits and Systems. – IEEE Circuits and Systems Society - Vol. 15, No 9. – Sep. 1996. – P.1126-1136 Lefebvre M., Marple D., Sechen C. The Future of Custom Cell Generation in Physical Synthesis. // 34th Design Automation Conference, DAC97, Anaheim, California. – 1997. – P. 446-451. Сотников М.А., Алгоритм сжатия топологии стандартных ячеек субмикронных СБИС // Тр. НИИР. - 2002. - C. 108-112. Chiluvuri V.K.R., Marchenko А.M., Sotnikov M.A. Method and Apparatus for Constraint Graph Based Layout Compaction for Integrated Circuits. - US Patent No 6,434,721 B1, Aug. 13, 2002. Marchenko A., Plis A., Shiro E., Sotnikov M., Topouzov I., McGuinness P. Method and Apparatus for Channel-Routing of an Electronic Device. - US Patent No 6,477,692 B1, Nov. 5, 2002. Marchenko A., Plis A., Sotnikov M., McGuinness P. Method for channel routing and apparatus. - US Patent No 6,564,366 B1, May 13, 2003. Голиков М.В., Марченко А.М., Розенфельд В.П., Стоянов С.В. Метод определения препятствий для трассировки внутри стандартных ячеек // Тр. Международных научно-технических конференций «Интеллектуальные системы (IEEE AIS’03)» и «Интеллектуальные САПР» (CAD2003). - М.: Физматлит, 2003. - Т. 2. – C. 47-52. Karypis G., Kumar V. Multilevel algorithms for multi-constraint graph partitioning. // Proc. of IEEE/ACM Conference on Supercomputing. – 1998. – P. 28-45. 120