Однослойная трассировка в приканальной надъячеечной области

элементы структуры обработки (операторы, команды). При структурной реализации параллелизма распараллеливание идет в первую очередь по элементам структуры обработки (каждому элементарному оператору ставится в соответствие ЭП). Затем, при наличии вычислительного ресурса, распараллеливание можно продолжить, мультиплицируя узел обработки по элементам структуры данных, как это делается при процедурной реализации параллелизма.

ЛИТЕРАТУРА

1. Морозов К.К., Одинокое В.Г., Курейчик В.М. Автоматизированное проектирование конструкций радиоэлектронной аппаратуры. М.: Радио и связь, 1983,280 с.

2. Трунов И.Л. Об одном подходе к задаче размещения //Интеллектуальные САПР СБИС: тез.докл. - Ереван, 1988, с. 33.

3. Трунов И.Л. Алгоритм размещения элементов с использованием последовательности Фибоначи: тез.докл. междунар. № 7 - т.конф. - Киев, 1989 г., с. 149.

4. Стахов А.П. Коды золотой пропорции. М.: Радио и связь, 1984 г., 152 с.

5. Принципы создания универсального сверхпроизводительного супермакронейрокомпьютера с программируемой самоорганизующейся архитектурой и элементами искусственного интеллекта. ( Отчет о НИР ) / НИИ МВС при ТРТИ. - N ГР 01.9110055147 - Таганрог, 1991, кн. 3.

УДК 658.512

Лебедев Б.К.

Однослойная трассировка в приканальной надыпееяной области.

Введение.

Канальная трассировка одна из важнейших задач, решаемых при проектировании СБИС.

Разработано большое количество канальных трассировщиков и некоторые из них позволяют получать решения, близкие к оптимальным. Тем не менее, по-прежнему актуальной является проблема минимизации области канальной трассировки. С этой целью предлагается использовать области, примыкающие к каналу сверху и снизу с единственным трассировочным слоем, расположенным над ячейками (оуег-1Ие-се11)(рис. 1). В этом случае некоторые из соединений или их фрагментов могут быть направлены в надъячеечную область (НЯО), что приводит к уменьшению числа магистралей, используемых в канале.

Задача «надъячеечного» (оуег^Ье-сеИ) трассировщика построение максимального планарного эскиза топологии в надъячеечной области с целью минимизации плотности канала[1,2].

• • • 1__I__ М 1 | ___1__ 1 II» 1 ___1

Я7 Я8 Я9

НЯ область

Канал

НЯ область

Канал НЯ область

Рис.1

В работе рассматриваются два варианта верхней границы НЯО. В первом варианте граница НЯО представляет собой прямую(Тип Т1) линию, а нижняя граница может быть либо прямой, либо ломанной эигзагообразной(Тип Т2) линией.

Во втором случае верхняя граница может быть зигзагообразной, а нижняя граница либо прямой(Тип ТЗ) либо зигзагообразной линией(Тип Т4)(рис.2).

Граница НЯО

Граница НЯО

оооооооооо

Тип Т1 Граница НЯО

ООО —

о о

ООО о

Тип Т2 Граница НЯО

п

п.

оооооооооо Тип ТЗ

о о

00000

оо

Тип Т4

Рис.2

Предусмотрен случай трассировки соединения различной ширины. В этом случае используется «без сеточный» («¿псНезд») способ трассировки при котором магистрали как таковые в НЯО отсутствуют.

1. Проблемная формулировка, термины и обозначения.

Аналогично большинству работ в этой области будем считать, что имеется два слоя для канальной трассировки и один слой для надъячеечной (НЯ) трассировки.

Каждая многовыводная цепь (рис. За) на каждой стороне канала разбивается на двухвыводные цепи. Двухвыводная цепь связывает соседние в линейке выводов цепи. На рис.Зб это П, ( 2, Г 3, Г4, Г5. Фрагмент связывает верхний и нижний участки цепи. Каждая такая двухвыводная цепь может располагаться либо в канале, либо в НЯО.

В начале осуществляется 1рассировка в НЯ областях. Затем, при наличии альтернативных вариантов решается вопрос о выборе соединения для связи верхнего и нижнего участков цепи (Г6 на рис.Зб). Выбор таких связей осуществляется с учетом плотности канала и вертикальных ограничений, и с учетом назначения двух выводных цепей в НЯО. После этого осуществляется трассировка в канале.

// /; /з

у о у о у о у о Го I о! о У /у У

а) б)

Рис.3

Не теряя общности, рассмотрим одну сторону канала. Пусть НЯО размещена над каналом и магистрали НЯО пронумерованы снизу вверх.

Обозначим через К левый край фрагмента П, а через п - правый. Пусть х(Н) и х(п) координаты краёв фрагмента А по оси х, распространяющейся вдоль линейки выводов.

Назовём А вложенным в если

1. х(1))<х(1|);

2. х(г,)>х(г.);

3. А и 0 размещены в НЯО без пересечений, то есть 5 выше П (рис. 4).

Ь Л о

I, /> г,

Рис.4

Назовём 2 фрагмента П и ^ непересекающимися, если х(п) < х(У). В этом случае П и д могут быть размещены в НЯО без взаимного пересечения.

Построим граф 0=(У,Ц). Вершина у1еУ соответствует фрагменту П, то есть П = Г(у1). Между VI и V] существует ребро, направленное от VI к тогда и только тогда, когда ^ вкладывается в Г>. В состав V включена вершина уг, соответствующая

верхней границе НЯО. Вершина уг связана со всеми вершинами У\уг, т.к. любой фрагмент вкладывается в НЯО, ограниченную верхней границей. На рис. 5а представлена схема, а на рис. 56 соответствующий ей граф в.

Обозначим через В1 множество вершин графа в, смежных вершине VI; причем ребра, связывающие VI с В1 исходят из VI.

_Граница НЯО_

ШШш 1>11 о ¿1

б &

V) V, V, V2 v5

А ^^

V, Ь V,

6 7

б)

в)

г)

Рис.5

Если у)€В1, то это значит, что 0 = Г(у]) вкладывается в П = Г(у1). Пусть Р1 = Г(В1) -множество фрагментов, соответствующих множеству вершин В1 Это значит, что любой ^еП вкладывается в П = Г(у1).

В множестве Рк вкладываемых в Гк фрагментов, можно выделить подмножество

Р^сБк, Г(Вк'). такое, что никакие два фрагмента ПеРи и {¡е ^ не

пересекаются. Назовем такое подмножество непересекающимся.

Выделим в графе в подграф Т^О^.и«), Т.еО , обладающей следующими свойствами:

1. Т. является деревом с корневой вершиной уг;

2. для любой VIеУ, вкладываемое в Г|=Г(у|) подмножество фрагментов

Р^=Г(В|>) является непересекающимся, где В|' множество вершин, смежных с VI.

Дерево Те с вышеперечисленными свойствами фактически задает способ планарной укладки в НЯО фрагментов, соответствующих УбсУ. Назовем такой подграф решающим деревом.

На рис. 5в и 5г приведены варианты решающих деревьев Те с соответствующими им пленарными укладками фрагментов.

2. Алгоритм.

Пусть для каждого фрагмента П задана его стоимость <р1. Тогда решающему дереву Те =(Уз, из) соответствует суммарная стоимость

\|/8 = £ф!

Величина ц/в принимается в качестве критерия оптимизации.

Введем рекурсивное определение уровня сиз фрагмента А (вершины VI), входящего в состав решающего дерева Тз.

1. Фрагмент К, у которого нет вложенных в него фрагментов, имеет уровень, равный нулю (ои'=0);

2. Пусть п - это максимальный уровень среди фрагментов, вложенных в Л тогда уровень Г| равен п+1 (а|'= п+1).

Вершина VI (фрагмент А) в различных решающих деревьях может иметь различный уровень ш. На рис. 5г а1=аЗ=а4=а5=0; а6=а7=1.

Назовем поддерево 118 решающего дерева Тз, имеющее своим корнем вершину VI, блоком.

Уровень блока № равен уровню вершины VI еУв, входящей в решающее дерево Тз . Будем считать, что блок № входит в состав блока ф, если в решающем дереве корневая вершина VI блока и связана с корневой вершиной у]в блока ф ребром и

а/ >= а|'+1

Назовем два блока и ф непересекающимися, если не пересекаются П и

Введем рекурсивное определение стоимости блока {¡в:

1. любая вершина VI еУ, нулевого уровня представляет собой блок нулевого уровня, стоимость которого равна стоимости вершины VI, т.е. у;1 = <р!

2. стоимость блока ненулевого уровня (ш**0) определяется как сумма стоимости блоков, входящих в состав 1|', плюс стоимость корневой вершины VI блока т.е.

j IVI еВ|'

Тогда \|/з=угз, т.е. стоимость блока имеющего корнем вершину уг, равна стоимости всех вершин решающего дерева Те, а фактически есть Те.

Для НЯО типа Т1 и Т2 фрагмент П независимо от места его расположения представляет собой один горизонтальный отрезок, к которому от контактов подходят вертикальные отрезки.

Число магистралей, необходимых для укладки решающего дерева Те, определяется значением уровня аг корневой вершины, т.е. Мз=агз.

Для НЯО типа Т1 задача надъячеечной трассировки формулируется следующим образом:

Выделить в графе в решающее дерево Тш с максимальным значением ут при выполнении ограничения

Мт = Ог» < = М,

где М • заданное число магистралей в НЯО.

Номер магистралей пнз для размещения каждого П определяется как

пи' = <Х|' +1.

Для НЯО типа Т2 вводятся для каждого П дополнительные ограничения. Это 61 - минимальный номер магистрали, на которой может быть размещен П. В этом случае номер магистрали для размещения А определится как

Ш1' = СИ» +&.

А для каждой вершины VI решающего дерева введем ограничение

си* + & = М

При трассировки соединений различной ширины используется «безсеточный» метод трассировки при котором опорные магистрали отсутствуют. В этом случае размещение фрагментов в НЯО сводится к фактической привязке координат опорных точек фрагментов к системе координат НЯО.

Каждый фрагмент А характеризуется параметром интегральным образом учитывающим ширину цепи и допустимое расстояние между цепями.

Введем рекурсивное определение ширины (11$, блока

1. если блок № нулевого ранга, т.е. фактически он состоит из одного фрагмента

то 4* =

2. если блок Ь1 ненулевого ранга, то его ширина равна самой максимальной ширине шах(8|) блоков, входящих в состав Ь*, плюс ширина & фрагмента К:

4'= & + тах(4') j IV) е Ь|»

Пусть ширина НЯО Типа 1 равна Бт, тогда для НЯО Типа 1 задача формулируется следующим образом.

Выделить в графе О решающее дерево Те для которого ёге 5 Бт.

Отметим, что 8г =0.

В случае НЯО типа Т2 на основе анализа его геометрической структуры для каждого П определяется максимально возможная толщина (И , построенного на нем блока ив.

В этом случае вводится ограничение:

(У1)[ 4« £ 4 ]

Размещение А в соответствии с решающим деревом вв заключается в последовательной укладке фрагментов с прижиманием в сторону нижней границы НЯО, начиная с фрагментов нижнего уровня и так до тех пор, пока не будут размещены фрагменты самого высокого уровня.

Построение решающего дерева Те осуществляется путем рекурсивного определения максимально возможных стоимостей блоков для их максимально возможных уровней.

В основе рекурсивного алгоритма лежит процедура динамического программирования.

Последовательно, начиная с нулевого уровня, определяются максимально возможные стоимости блоков до тех пор, пока не будут достигнуты максимально возможные для блоков уровни.

Рассмотрим рекурсивную процедуру определения максимальных стоимостей блоков. Назовем блок, имеющий максимально возможную стоимость, максимальным. Обозначим через Ап максимальный блок уровня п.

Максимально возможная стоимость блока АО нулевого уровня, построенного на базе VI, равна стоимости VI.

У1°=ф1

Максимально возможная стоимость блока А1 первого уровня, построенного на базе VI, равна стоимости VI плюс максимально возможная стоимость подмножества взаимно непересекающихся максимальных блоков нулевого уровня, построенных на базе подмножества В1*сВ1 вершин, являющихся приемниками вершины ук

У11=Ф1 +

Л^еВГ

Максимально возможная стоимость блока tia a-ro уровня, построенного на базе vi равна стоимости vi плюс максимально возможную стоимость подмножества взаимно непересекающихся блоков, уровень которых не выше п-1, построенных на базе подмножества Bi*cB0 вершин, являющихся преемниками vi.

yin=9i+Syjn'1

jlvjeBr

Отметим, что все блоки , построенные на базе Bi* , имеют максимально возможную стоимость на уровне п-1. Если же для блока максимально возможный уровень (ai)max < п-1, то в расчет принимается максимально возможная стоимость блока, достигнутая на уровне (ai)max.

Рассмотрим процедуру определения максимально возможной стоимости и построения блока tin n-го уровня.

Построим на базе подмножества вершин Bi направленную ациклическую сеть

А.

Упорядочим множество фрагментов Fi соответствующих множеству вершин Bi по возрастанию координат их левых концов. Построим вектор Р. Пусть P(fi) -порядковый номер fi в векторе Р. Тогда:

(Vij)[{x(li)<x(lj)}->{P(fi)<P(fj)}]

Разместим вершины множества Bi в линейку в том порядке, в каком соответствующие им фрагменты расположены в векторе Р (рис. 6).

Рис.6

Каждой вершине у]еВ1 присваиваем вес у] , равный весу базе максимального блока уровня п-1.

Две вершины и V) связываются ребром, направленным соответствующих им фрагментов П и 0 выполняются условия:

а) х(п)<х(Ь);

б) не существует Гк такого, что х(1к)>х(п) и х(гк)<х(1]), т.е. не существует такого Гк

, который бы мог разместиться без наложений с Г| и $ .

В линейку добавляем вершину VI , расположенную справа от всех вершин В1 .Все вершины у]еВ1, не имеющие выходящих ребер, связываем ребрами с вершиной , направленными к вершине V!. Вершине VI присваиваем вес у! = ф'-

Вершины сети А просматриваются последовательно слева направо, начиная с первой. В процессе просмотра осуществляется переприсваивание веса вершин.

Пусть просматривается вершина у]еА Определяется подмножество АЗ с В^ вершин , смежных вершине ^ из всех вершин подмножества А] выбирается вершина укеАЗ с максимальным весом ук Вершине V] присваивается новый вес, равный сумме исходного веса вершины плюс вес ук , т.е. у) = ^ + ук. А вершина V] связывается с вершиной ук дополнительным ребром .

построенного на его от vi к vj , если для

Новый вес yi конечной вершины vi в линейке А и будет тем самым максимально возможным весом блока ti А маршрут, составленный из дополнительных ребер и имеющий концом вершину vi и определяет состав максимальных блоков, включаемых в ti.

Работа алгоритма завершается определением максимально возможной стоимости и структуры блока trM , т.е. фактически решающего дерева Тт, которое определяет максимальную укладку фрагментов.

Если НЯО типа ТЗ и Т4, то для рационального использования ресурсов НЯО конфигурация из фрагмента fi может представлять собой ломанную линию.

В этом случае для каждого П генерируется множество его конфигураций fi={fij | j=l,2,...,zi}, где zi - число конфигураций П.

На рис.7 показан принцип формирования множества конфигураций фрагмента fi. Первая конфигурация fil образуется путем максимального «прилипания» к верхней границе НЯО. Фактически на ее основе может быть образован блок самого высокого уровня, возможный для данной конфигурации НЯО. Вторая конфигурация П2 формируется исходя из предположения, что между П2 и границей НЯО может быть расположен некоторый фрагмент, который может включать П2 .Аналогичным образом формируются последующие конфигурации.

Граница НЯО

Рис.7

В случае «беэсеточной» трассировки соединений различной ширины при формировании конфигураций фрагментов используется тот же принцип максимального «прилипания». Однако при этом уже учитываются геометрические размеры цепи(ширина цепи).

Отметим, что полученные конфигурации после включения их в основное решение могут претерпевать изменения, связанные с последовательным «прижатием» их к нижней границе (границе выводов) НЯО с целью минимизации

Длины

Пусть H включает Q . Пусть fïy некоторая конфигурация фрагмента fi . Назовем конфигурацию Q1 фрагмента fj е Bi , соседней к fiy если она среди всех конфигураций фрагмента fi максимально «прижата» снизу вверху к Пу(рис.8). Отсюда первая конфигурация fil является соседней к верхней границе НЯО.

Г.»

J

1Г

Ри<. 8

Пусть Kiy множество соседних к fiy конфигураций фрагментов множества Bi , т.е. каждый fjl е Kiy включается в fiy с максимальным «прилипанием» к fiy. Обозначим через Кг множество соседних к верхней границе НЯО конфигураций фрагментов. Фактически в Кг входят первые конфигурации fil всех фрагментов fieF. Определим рекурсивно уровень для всех конфигураций всех фрагментов:

1. если для fiy множество Kiy=0, т.е. fiy не включает в себя крнфигураций других фрагментов, то уровень шу конфигурации fiy равен нулю

2. если для fiy множество Kjy*0, и для всех fjieKiy определены уровни, и максимальный среди них равен п, то aiy=n+l.

Работа алгоритма заключается в рекурсивном формировании на базе конфигураций фрагментов блоков с максимальной стоимостью до тех пор пока не будет образован максимальный блок trm =Tm.

Формирование максимальных блоков производится в порядке возрастания их уровней. В начале на базе конфигураций фрагментов нулевого уровня формируются блоки нулевого уровня, затем на базе конфигураций фрагментов первого уровня формируются максимальные блоки первого уровня и т. д., пока не будет сформирован блок самого высокого уровня trM. Вершинам решающего дерева Тпи будут соответствовать конфигурации фрагментов.

Определение максимального блока tiy на базе конфигурации фрагмента осуществляется следующим образом. К этому моменту на множестве Kiy соседних к fiy конфигураций фрагментов сформировано множество Wiy максимальных блоков, т.к. уровень любого fjl € Kiy меньше уровня fiy

Среди блоков множества Wij выбирается с помощью вышеизложенной динамической процедуры, множество Wiy* взаимно непересекающихся блоков с максимальной стоимостью. Все блоки Wiy* войдут в состав блока tiy.

После построения Тш производится укладка фрагментов с прижиманием в сторону нижней границы НЯО, сопровождающаяся модификацией конфигураций фрагментов, входящих в состав Тт. Укладка производится начиная с конфигурации нулевого уровня.

Используя ломанные границы НЯО и процедуру укладки с «прилипанием» к границе, можно организовать оптимизацию использования ресурсов всех НЯО в целом. НЯО нумеруются сверху вниз. Процесс трассировки в НЯО реализуется последовательно в порядке возрастания их номеров. В пределах НЯО сначала трассируется верхняя часть , а затем нижняя. После трассировки в верней части НЯО и использование процедуры «прилипания» образуется ломанная граница между верхней и нижними областями НЯО. Это позваляет рационально использовать ресурсы НЯО.

3. Экспериментальные исследования.

Программа трассировки в НЯО была реализована на языке С++ для IBM/PC. Исследования проводились следующим образом.

Во всех перечисленных постановках был получен оптимальный результат. Трудоемкость программы 0(п2), где п • число фрагментов. При использовании ломанных границ, процедуры «прилипания» и последовательной трассировки НЯО удавалось дополнительно снизить общую плотность каналов до 40%

Отдельный момент исследования был связан с выбором функции стоимости фрагментов. Исследовались два варианта. В первом варианте в качестве стоимости фрагмента использовалась длина фрагмента, а во втором - интегральная оценка. Стоимость фрагмента равна сумме плотностей сечений в канале, которые пересекают фрагменты.

Эксперименты показали, что общая плотность при использовании второй функции в среднем меньше на 4 процента, чем при использовании первой функции. Однако, в отдельных конкретных примерах результаты были противоположными.

Заключение.

В статье был представлен НЯО-трассировщик позволяющий выполнять однослойную трассировку в различных постановках. Отличительной особенностью является возможность получения оптимальных решений, а с другой стороны - его универсальность.

Предложенный трассировщик полностью применим для «безсеточной» трассировки соединений разной длины.

Источником усовершенствования может стать более адекватный подбор функции стоимости фрагментов. Другой проблемой является выбор очередности рассматриваемых НЯО и способ разделения НЯО на верхнюю и нижнюю части, что может способствовать снижению суммарной плотности каналов.

Литература.

1. J.Cong and C.L.Liu , «Over-the-cell channel routing »ДЕЕЕ Trans .Computer-Aided Design , vol.9 ,no.4, pp. 408 - 418 ,1990.

2. J.Cong , B. Preas, and C. Liu ,« Physical model and efficient algorithms for over-the-cell routing in standard cell design », EEE Trans. Computer-Aided Design, vol. 12, no. 5. pp. 723-734,1993.