Раздел 4
АВТОМАТИЗАЦИЯ ПРОЕКТИРОВАНИЯ
УДК 658.512
Б.К. Лебедев1 РАЗНЕСЕНИЕ СОЕДИНЕНИЙ ПО СЛОЯМ НА ОСНОВЕ КОЛЛЕКТИВНОЙ АДАПТАЦИИ
1. Введение.
При двухслойной трассировки СБИС обычно реализуется следующий подход. Вначале, одним из алгоритмов трассировки, разрабатывается совмещенный эскиз трассировки межсоединений, удовлетворяющий следующим ограничениям:
— не допускаются наложения цепей друг на друга;
— отсутствуют точки касания цепей;
— в одной точке пересекаются не более двух цепей [1].
На рис. 1. представлен совмещенный эскиз трассировки, выполненный в соответствии с этими ограничениями.
____контакт
узел для МП
Рис. 1.
Исключить точки пересечения цепей, т.е. обеспечить правильное функционирование СБИС, возможно только путем разнесения пересекающихся фрагментов цепей в разные слои с введением дополнительных межслойных переходов (МП). Соблюдение выше приведенных ограничений обеспечивает с одной стороны минимальное значение паразитной емкости, возникающей только в точке пересечения проводников, а с другой стороны тривиальное
1 Работа выполнена за счет частичного финансирования по гранту РФФИ ГР № 99-01-00050
решение задачи разнесения по слоям, при котором все горизонтальные участки цепей располагаются в одном слое, а вертикальные участки цепей - в другом. При этом считается, что все контакты одновременно являются и местами перехода из слоя в слой, а на концах участков вводятся дополнительные межслойные переходы, (см. рис. 1.) Такой подход нельзя признать удовлетворительным из - за введения большого числа дополнительных МП. Мало того, при таком подходе МП вводится в том случае, когда необходимость в них отсутствует. Так на рис. 2. участки цепи не имеют пересечений с другими цепями, а МП все равно вводятся. В связи с этим актуальной является проблема определения минимально необходимого числа МП, обеспечивающих разнесения соединений по слоям.
•
■----■
Рис. 2
Существует два основных подхода к решению поставленной задачи [1,2,3,4]. При первом подходе на эскизе трассировки отыскиваются месторасположения минимально необходимого числа узлов, в которых размещаются межслойные переходы, обеспечивающие размещение совмещенного эскиза трассировки. Отметим, что определение конфигурации участков и их разнесения по слоям осуществляется после ввода межслойных переходов.
При втором подходе, путем ввода заранее избыточного числа узлов цепи разбиваются на участки. Затем находится такое допустимое разнесение участков по слоям при котором число межслойных переходов минимально. Итак при втором подходе сначала участки разносятся по слоям, а потом в некоторых узлах вводятся необходимые МП, обеспечивающие это разнесение.
При втором подходе разбиение цепи на участки сопровождается определением минимально необходимого количества узлов, допускающих все варианты разнесения участков по слоям. Для каждого участка существует две альтернативы размещения по слоям.
В работе [4] задач разнесения на основе второго подхода сведена к задаче псевдобулевого программирования. Введена булева переменная X; = 0, если 1 - й участок в первом слое и Х| = 1 если I - й участок - во втором. Построена целевая функция (число МП), зависящая от значений х*, и множество ограничений. Решением задачи являются значения переменных х^ обеспечивающих оптимальное значение целевой функции, при выполнении ограничений.
В настоящей работе используется второй подход, при этом процедура расслоения соединений представляется в виде адаптивной системы [5].
2. Разбиение цепей на фрагменты.
Пусть имеется совмещенный эскиз трассировки Т, отвечающий вышеперечисленным ограничениям (рис 1.). Определим на эскизе местоположение узлов в которых могут располагаться МП, обеспечивающие разнесение соединений по слоям.
В первую очередь узлы размещаются на концах горизонтальных и вертикальных отрезков, (см. рис 1.). Затем последовательно просматриваются точки пересечения проводников. На каждом проводнике, проходящем через такую точку, по обе стороны от точки
и на минимально возможном расстоянии от нее, определяем возможность размещения МП, вводятся узлы (рис. 3 а). На рис. 3 б вводимые на проводнике 1 узлы для точек пересечения проводника 1 с проводниками 2,3,4 совпадают, т.к. между проводниками 2,3 и 3,4 МП не помещается.
а)
б)
Рис. 3.
На рисунке 4 показаны все введенные узлы для нашего эскиза трассировки Т.
Рис. 4.
Введенные узлы естественным образом разбивают цепи на фрагменты. Будем считать, что пересекающиеся друг с другом фрагменты находятся в отношении конфликта друг с другом. Однако при анализе фрагментов можно обнаружить, что некоторые из них не имеют пересечений с другими фрагментами. В связи с этим производится коррекция разбиения. Последовательно выбираются бесконфликтные фрагменты. Бесконфликтный фрагмент £ сливается с любым смежным ему фрагментом при этом удаляется узел инцидентный фрагментами £ и ^ На рисунке 4 точками помечены удаляемые узлы, а на рис. 5 показано скорректированное разбиение с минимизированным числом узлов, обеспечивающих возможные варианты размещения соединений по слоям (в том числе и оптимальный).
Рис. 5.
Псевдокод алгоритма разбиения совмещенного эскиза трассировки на фрагменты с минимизированным числом узлов представлен на рисунке 6.
В массиве ЭСКИЗ хранятся исходные данные, описывающие совмещенный эскиз трассировки. С помощью процедуры КОНЦЫ (эскиз) формируется массив УЗЛЫ, в который входят узлы помещаемые на концах горизонтальных и вертикальных отрезков.
Процедурой ПЕРЕСЕЧЕНИЕ (эскиз, узлы) в массив УЗЛЫ добавляют узлы, помещаемые возле точек пересечения проводников. Процедурой РАЗБИЕНИЕ (эскиз, узлы) формируется множество фрагментов в соответствии с выбранными узлами. Затем процедурой ВЫДЕЛЕНИЕ (фрагменты, эскиз) выделяется массив безконфликт, содержащий бесконфликтные фрагменты.
Algorithm РАЗБИЕНИЕ_НА_ ФРАГМЕНТЫ begin
эскиз = ИСХОДНЫЕ ДАННЫЕ ; узлы = КОНЦЫ (эскиз); узлы = ПЕРЕСЕЧЕНИЕ (эскиз, узлы); фрагменты = РАЗБИЕНИЕ (эскиз, узлы); безконфликт = ВЫДЕЛЕНИЕ (фрагменты, эскиз); while (безконфликт * 0) do { фрагмент = ВЫБОР (безконфликт);
фрагменты = СЛИЯНИЕ (фрагменты, фрагмент);
узлы = УДАЛЕНИЕ УЗЛ (фрагменты, узлы);
безконфликт = УДАЛЕНИЕ ФРАГМ (фрагменты, фрагмент);
};
Рис. 6.
Далее циклически, пока не будут удалены все бесконфликтные фрагменты выполняются следующие действия. Процедурой ВЫБОР (безконфликт) выбирается очередной безконфликтный Фрагмент. Затем процедурой СЛИЯНИЕ (фрагменты, Фрагмент) осуществляется слияние выбранного бесконфликтного фрагмента и коррекция
массива фрагменты. Процедурой УДАЛЕНИЕУЗЛ (фрагменты, узлы) удаляются узлы после слияния и осуществляется коррекция массива узлы. Процедурой УДАЛЕНИЕ_ФРАГМ (фрагменты, фрагмент) осуществляется удаление подвергшегося слиянию бесконфликтного фрагмента из массива безконфликт.
3. Формирования пространства решений.
Пусть имеется эскиз 1рассировки Т, который разбит на множество фрагментов /^ ={/]. | г =1,2,.../|}.Для полученного множества решений построим граф пересечений
Я = (Х,и), X = {х( | / = 1,2и = {м, | г = 1,2,...и}, где Xj соответствует фрагменту £ , а
две вершины х, и Xj связаны ребром и*, если соответствующие им фрагменты £ и ^ находятся в отношении конфликта, т.е. пересекаются друг с другом. На рис. 7 представлен граф пересечений, построенный для эскиза трассировки, представленного на рис. 5.
16
21.....__________•
Рис. 7.
Здесь ребра множества U показаны сплошными линиями. Рассмотрим граф R = (X,U) добавив к нему множество ребер W = {wk | к = 1,2, 1}. Две вершины х* и Xj связываются
ребром Wi^ если соответсвующие им фрагменты fj и fj смежны на эскизе трассировки, т.е. инцидентны одному общему узлу. В ЭТОМ узле может быть помещен МП, если f| И fj будут в разных слоях. На рисунке 7 ребра множества W показаны штрих - пунктирными линиями-Число таких ребер равно числу узлов.
Полученный граф R = (X,U) состоит из некоторого множества не связных между собой подграфов - компонент связности. Каждый компоненте связности в исходном разбиении однозначно соответствует некоторое множество фрагментов Fj с F, которое назовем конфликтно связной группой (КСГ). Для графа G (на рис. 7.) образуются следующие КСГ:
F, = {1,4,5,9,13,15}; F2= {6,12,16}; F3= {2,14}; F4= {3,18}; F3= {8,11}; F6= {7,10,17}.
Для каждой КСГ Fj существует только две альтернативы A' U А* разнесения по
слоям. На рис. 8 представлены альтернативы разнесения КСГ Ft.
15 9 5 1 1 1 1 13
4 ■
1 1 ■ 1
1 ■1
15 1 9 5 1 1 1 1 13 1
ш 4 1 1 1
Ш 1 ■ 1
* В ш 1
а)
Рис. 8.
б)
Каждое множество И* распадается на два подмножества и Р,2, р' =Рп где Р' - множество фрагментов, размещаемых в одном слое, а
Т*]2-в другом. Для нашего примера Т*1/= {1,4,9}; ={5,13,15}; /^^{б^б}; /г22={12};
={2}; /^з2 = {14}; ^' = {3}; ^2={18}; ^' = {8}; /^2={11}; ^'={7,10}; Р62={17).
Будем считать, что альтернативе Асоответствует размещение /Г* в первом слое, а
Т*]2-во втором. Альтернативе А? соответствует противоположное размещение и Р2
Для каждой КСГ можно реализовать любую альтернативу, независимо от выбранных альтернатив для остальных КСГ
Очевидно, что конкретный набор альтернатив А = {Л* | I = 1,2,... ;&е{1,2}}
определяет конкретный вариант разнесения фрагментов по слоям и как следствие конкретный набор узлов, в которых помещаются межслойные переходы для реализации этого варианта разнесения фрагментов.
В связи с этим задача разнесения соединений по слоям сводится к поиску такого
набора альтернатив А*, при котором число межслойных переходов Р( А*) минимально, т.е.
Р(А*) ->шт.
На рис 9. представлено разнесение эскиза трассировки в соответствии с набором альтернатив
А ={Л2, А\, А2, А%, А2 ,А2ь }. При этом необходимы четыре межслойных перехода.
16
12
15
13
17
10
11
4
•-
14
18
Рис. 9.
Следует отметить, что для некоторых КСГ выбор альтернативы очевиден.
Это прежде всего КСГ, фрагменты которых смежны уже размещенным по слоям фрагментам (рис. 10.). Выбирается та альтернатива, при которой число МП минимально.
Пусть часть фрагментов КСГ связана с уже размещенными, а часть еще с неразмещенными (свободными) фрагментами (рис. 11.). _ _ _
Рис. 10.
□ -Рис. 1 1.
Обозначим через Я, число обязательных МП, возникающих в узлах связывающих фрагменты КСГ с уже размещенными фрагментами, при реализации альтернативы А), а через
при реализации альтернативы
Обозначим через т* число узлов связывающих
фрагменты КСГ с его свободными фрагментами, если при реализации А) п} >Я2 +Ш:, то
выбираем А2, а если при реализации А* п2 > п, + , то выбираем А■ . Другими словами
если при реализации альтернативы А) число обязательных МП больше или равно
максимально возможному числу МП при реализации А* , то выбирается Л2 и наоборот.
Узлы КСГ, в которых произведено разнесение в соответствии с вышеприведенными рассуждениями, удаляются из дальнейшего рассмотрения.
4 Организация процесса коллективной адаптации при разнесении соединений по
слоям.
Имеется эскиз трассировки, разбитый на фрагменты. На основе разбиения сформировано множество конфликтно - СВЯЗНЫХ групп С=^, | 1=1,2,...П;}. Частным решением задачи является набор альтернатив, в соответствии с которым осуществляется разнесение фрагментов по слоям, и ввод межслойных переходов. Множество всех возможных частных решений составляют пространство решений.
Будем считать, что предварительно случайным образом или с помощью одного из конструктивных алгоритмов произведено разнесение соединений по слоям, т.е. выбрано некоторое решение из пространства решений.
Процесс поиска в пространстве решений оптимального решения представим в виде адаптивной системы, работающей в условиях неопределенности [5,6].
На каждом шаге под действием адаптирующего воздействия осуществляется переход от одной вершины пространства решений к другой, т.е. перевыбор альтернатив для конфликтно связных групп. Состояние среды определяется совокупностью выбранных альтернатив для КСГ и как следствие этого - числом межслойных переходов. Объектами адаптации являются КСГ. Состояние объекта адаптации в среде оценивается числом межслойных переходов, инцидентных соответствующей КСГ Локальная цель объекта адаптации - достижение состояния, при котором число межслойных переходов инцидентных соответствующей КСГ, равно нулю.
Для реализации механизма адаптации каждой группе ставится в соответствие
автомат адаптации аа| с двумя группами состояний {с), С2}соответствующих двум
альтернативам А] и А2 Число состояний в некоторой группе задается параметром О*
называемым глубиной памяти. На вход автомата адаптации aai подается сигнал «поощрение» или «наказание» в зависимости от состояния объекта адаптации (КСГ) в среде. На рис. 12 показана граф-схема переходов автомата адаптации. Знаком «+» помечены переходы под действием сигнала «поощрение», знаком «-» помечены переходы под действием сигнала «наказание».
Рис. 12.
Методика выработки управляющих сигналов заключается в следующем. Обозначим через сц число узлов, инцидентных КСГ §і( а через (3* число МП, помещенных в этих узлах.
Если для КСГ gj реализована альтернатива А) и при этом число МП меньше числа Узлов в которых отсутствуют МП, т.е. Р1 < ОС, — Д, то вырабатывается сигнал «поощрение», т.к. альтернатива А] предпочтительней альтернативы Д2 Это условие можно записать в
форме ОС/ — 2Д >0. Если же <Х — 2Д £0 то, вырабатывается сигнал «наказание», т.к.
альтернатива А] хуже альтернативы А?
Для усиления стремления объекта адаптации к состоянию с минимальным числом МП используется вероятностный механизм формирования управляющего сигнала. Введем параметры Р„ и Р„ выражающие вероятности выработки сигналов «поощрение» и «наказание»
д
соответственно, причем Р„+Рн= 1, а Ри = — . Введем случайную величину Ъ,, принимающую
«/
равновероятностные значения в интервале 0+1.
Если ОС( — 2Д ^0 , то всегда вырабатывается сигнал «наказание».
В противном случае, т.е. в ситуации когда СК( — 2Д >0, генерируется случайная
п е А
величина Ъг Если 0 <1 £ < —-, то вырабатывается сигнал «наказание».
ос,
А
Если —- <£ < 1, то вырабатывается сигнал «поощрение».
«/
При второй методике сигнал «наказание» может вырабатываться и в тех случаях, когда число МП меньше числа узлов, не содержащих МП. Вероятность выработки сигнала «наказание» тем меньше, чем меньше число МП.
Для усиления способности выхода из локальных оптимумов («локальных ям») при работе адаптивной системы, автомат адаптации модернизирован введением вероятностных механизмов перехода из одной группы состояний в другую. На рис. 13 представлена граф-схема такого автомата адаптации.
+
а
с
Рис. 13.
Группы состояний с) и С,2 соответствуют альтернативам А) и А* Имеются два
промежуточных состояния Б и и Бл После перехода АА в одно из промежуточных состояний Б и или сразу же автоматически генерируется случайная величина 4-
Если 0<£^ —, то осуществляется переход в новую группу состояний-а,
Вероятность перехода Р . Если — < <£; < 1, то АА остается в той же группе состояний.
а, «
Вероятность возврата равна (1-Р). На рис. 14 показан псевдокод алгоритма работы адаптивной системы разнесения соединений по слоям.
Глобальная цель коллектива автоматов адаптации минимизация общего числа межслойных переходов.
Algorithm АДАПТИВНОЕРАЗНЕСЕНИЕ
begin
эскиз = ИСХОДНЫ ЕДАННЫЕ; узлы= ИСХОД НУ ЗЛЫ; фрагменты = ИСХОДН ФРАГМ ЕНТЫ ; графпересеч =ГРАФ (эскиз, узлы, фрагменты); графпересеч = ГРАФ СМЕЖН (эскиз, узлы, фрагменты); группы = КОНФЛИКТ СВЯЗН (граф пересеч ); состоянаа = НАЧ_СОСТОЯНИЕ; лучшсостоян = НАЧСОСТОЯНИЕ; лучш_критер= НАЧЗНАЧЕНИЕ; итерация = ЧИСЛО ИТЕРАЦИЙ; while (итерация > 0) do { состоянсреды = РАСЧЕТ С (состоян аа, группы, смежность );
IF (теккритер < лучш критер) then { лучшкритер = тек критер; лучшсостоян = состоянаа;
};
состоянобъекта = РАСЧЕТО (состоян среды, группы); управлсигнал = УПРАВЛ (состоян объекта); состоян аа = ПЕРЕХОД (состоян аа, управл сигнал); итерация = итерация - 1;
};
решение = РАЗНЕСЕНИЕ (лучш состоян, группы, эскиз);
end.
Рис. 14.
В массиве эскиз хранятся исходные данные, описывающие совмещенный эскиз трассировки. В массивах узлы и фрагменты хранятся исходные данные об узлах и разбиении эскиза на фрагменты. С помощью процедуры ГРАФ (эскиз, узлы, фрагменты) строится граф пересечений R=(X,U), информация о котором заносится в массив граф пересеч. С помощью процедуры ФРАГ СМЕЖН (эскиз, узлы, фрагменты) для каждого узла определяются инцидентные ему, т.е. смежные друг другу фрагменты. Напомним, что МП отсутствуют, если фрагменты, инцидентные одному узлу, расположены в одном слое. Затем формируется начальное состояние автоматов адаптации, которое запоминается в массиве состоян аа. отрицающем текущее состояние АА, и в массиве лучш состоян хранящем состояния АА с лучшим значением критерия оптимизации, полученным в процессе работы адаптивной системы. Параметру лучш знач. хранящему лучшее значение критерия в процессе работы адаптивной системы, присваивается начальное заведомо большое значение, равное числу Узлов. Параметру итераиия присваивает значение равное числу итераций работы адаптивного алгоритма.
На каждой итерации работа адаптивного алгоритма разнесения выполняется за три такта. На первом такте в соответствии с ранее выбранными альтернативами для КСГ процедурой РАСЧЕТ С (состоян аа. группы, смежность) определяется состояние среды, т.е. определяются узлы в которых располагаются МП и рассчитывается значение тек знач критерия оптимизации (общее число МП). Полученные данные заносятся в массив £остояп среды.
Если тек знач < лучш знач , то текущее значение критерия оптимизации и текущее состояние АА запоминаются как лучшие.
Процедурой РАСЧЕТ О (состоян среды, группы) расчитываются значения параметров (3,, определяющее состояние объектов в среде, которые заносятся в массив состоян объекта.
На втором такте процедурой УПРАВЛ (состоян объекта) вырабатываются управляющие сигналы «поощрение» и «наказание», которые заносятся в массив упоавл сигнал.
На третьем такте с помощью процедуры ПЕРЕХОД (состоян аа. управл сигнал-) по действием управляющих сигналов АА переходят в новое состояние, которые заносятся в массив состоян аа.
После отработки заданного числа итераций процедурой РАЗНЕСЕНИЕ (лучш состоян. группы, эскиз) формируется разнесенный по слоям эскиз трассировки.
Исходя из эвристических соображений заключающихся в том, что чем больше мощность КСГ (число фрагментов), тем к большим изменением среды приводит смена альтернативы, целесообразно КСГ с большей мощностью наделить свойством большей инерционности.
Конфликтно связные группы в зависимости от мощности разбиваются на классы K={Kj | i=l,2,...nk}. Для каждого класса к, вводится свой параметр Qj - глубина памяти причем, чем больше мощность КСГ в классе, тем больше значение Qi и тем больше итеррационность КСГ.
5. Экспериментальные исследования
Алгоритм был реализован на языке C++ для ПЭВМ типа IBM PC. Результаты эксперементов получены при исследовании процессора Pentium 166. Временная сложность алгоритма на одной итерации пропорционально 0(N), где N - число КСГ
Время выполнения 1000 итераций для схемы содержащей 200 КСГ составляло около 30 секунд. После 500 итераций в рассмотренных примерах не наблюдалось улучшения решения. В среднем пяти запусков програмы со случайными начальными состояниями АА было достаточно для нахождения глобального оптимума.
ЛИТЕРАТУРА
1. Курейчик В. М. Математическое обеспечение конструкторского и технологического проектирования с применением САПР - М.: Радиосвязь, 1990, 352с.
2. Автоматизация проектирования вычислительных структур. Каляев А. В. и др. Издательство Ростовского университета, 1983,224 с.
3. N. Shenvani. Algoritms for VLSI Physical Design Automation, Kluwer Academic Publishers, 1995
4. Карелин В. П., Калашников В. А. Применение метода бивалентного програмирования для решения некоторых задач технического проектирования. В кн.: Микроэлектроника, 1979, Вып. 5, т. 8.
5. Растригин Л. А. Адаптация сложных систем, Рига. Зинатне, 1981, 375 с.
6. Курейчик В. М., Лебедев Б. К. Искуственный интелект в САПР; Текст лекций. Таганрог, ТРТИ, 1989, 48 с.