Научная статья на тему 'Генетический алгоритм пермутации выводов для улучшения канальной трассировки'

Генетический алгоритм пермутации выводов для улучшения канальной трассировки Текст научной статьи по специальности «Математика»

CC BY
178
20
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Генетический алгоритм пермутации выводов для улучшения канальной трассировки»

т»шериапьюсервсст№Сй,0У<~й:цнч)(ф&нциУ1 'ингезцгекгуижние'скггг-уо

УДК 681.356

О.Б. Лебедев

Генетический алгоритм пермутации выводов для улучшения канальной

трассировки

Введение

При проектировании БИС обычно решается стандартная задача. Элементы (вентили) расположены в рядах. Области между рядами (канал) используются для прокладки связей между элементами.

Некоторые канальные трассировщики [1] дополнительно используют области выше и ниже канала, расположенные над верхним и нижним рядами элементов. В этих областях допускается однослойная трассировка.

Отдельные элементы (вентили) и выводы в пределах элементов могут быть взаимозаменены без изменения функции элементов. Взаимозамена (пермутация) вентилей и выводов может уменьшить общую длину цепей, число пересечений, конфликтов и т.п., что создает условия для получения лучших результатов при канальной трассировке [2], [3].

Для примера на рис. I путем пермутации вентилей и выводов, как показано на рис. 2, достигнуто уменьшение числа пересечений и плотности канала

Цель статьи описание генетического алгоритма, определяющего на основе пермутации позиций вентилей и выводов, минимизирующего плотность канала,

Рис. 1

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

В этой статье, аналогично большинству предыдущих работ, считается, что выводы цепи связаны горизонтальными и вертикальными связями. Обозначим выводы на верхней стороне канала как 11Д2,..Лп, выводы на нижней стороне |Ь|,Ь2,...Ьп, слева направо.

В общем случае, два вентиля (вывода) взаимозаменяемы, если взаимозамена их выходов не меняет логической функции схемы.

В нашем случае мы не можем менять структуры внутренней коммутации вентилей. Допускается только лишь перекоммутация цепей, подходящих к выводам 1|,12,...и И Ь|,Ь2,...Ьп. Пусть в составе схемы имеется множество вентилей 0= {£1| ¡=1,2,...,п}.

Рис. 2

Обозначим через Р(&) упорядоченное множество выводов в соответствии с их расположением в ячейке слева направо, имеющих в качестве общего корня вентиль 8. На рис.З Р^|)=<1|Д2>,Р(£2)=<Ь,14>, Р^э)=<1|Д2,Ъ,14,Ь,и,17>.

-тУШгекту&'ышееХПРЗ^

t) t» ti tj tj t< t7

Рис. 3

Будем считать, что два вентиля gt и gj или P(gi) и P(g|) пермутируемы (взаимозаменияемы), если

взаимооднозначная пермутация цепей с множеством выводов P(gi) на P(gj), а с P(gi) на P(g|) не меняет логической функции схемы. На рис.З пермутируемыми ЯВЛЯЮТСЯ P(g|) и P(g2).

Введем рекурсивное определение уровня для вентиля.

Входом вентиля может быть либо какой-нибудь вывод t|>t u bl,b2,...b„, либо выход другого вентиля.

Все входные выводы ti,t2,...tn; bi,b2,...bn имеют уровень, равный 0.

Если вход вентиля gi является выходом вентиля g|, то уровень входа вентиля С| равен уровню вентиля gj.

Уровень вентиля есть максимальный уровень его входов плюс 1

На каждом уровне формируются группы щ пермутируемых вентилей (выводов).

Для рис. 1 на нулевом уровне это:

<P0. = {t,,t2), <p02={t3,t4}, фОЗ={Ь,1б}, (|>04={t7,t8}, ф05{Ь,,Ь2}, фм{Ьз,Ь4}, <f>07 {Ь5,Ьв>, ф0в{Ь7,Ьв}.

На первом уровне:

фи = {gl.gl}. фи= {g3.g4} , ф1Э= {g8,g9} , <pu={g|0,gll} .

На втором уровне:

92l = {g5,g6},922={gl2,gl3}.

Таким образом, пермутация выводов, например двух вентилей g. и g2, сводится к перекоммутации цепей, подходящих к выводам ti,t2 и к выводам tj,t4.

Обозначим через ¡(с<) длину горизонтальной связи цепи с. В качестве критерия оптимизации F, используется суммарная длина горизонтальных связей-

',-1/(0.

I

В качестве второго критерия оптимизации F2 используется число неустранимых при канальной трассировке пересечений. Неустранимые пересечения возникают в ситуациях, показанных на рис. 4,а. На рис.4,6 эти пересечения устраняются путем пермутации выводов bi и Ьг. 3

Очень важным показателем является плотность канала. Она определяется следующим образом: через все выводы проводятся вертикальные сечения канала;

отыскивается

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

Для учета всех этих критериев используется их аддитивная свертка:

Р = к|Р| + кгРг + кзРз.

Цель нашего алгоритма - минимизация значения критериев Р|,Р2,Рз,Р.

числом

о о

Ьі Ь2

Сі э С2

N і

а)

Ь2

о

Ьх

I

о

Ь2

с2

Сі

) < 1) О

Ьі Ь2 Ь)

Рис. 4

Алгоритм

Алгоритм пермутации выводов построен на основе генетических эволюционных процедур.

Представим схему (рис.5) с разнесенными по уровням вентилями в виде многоуровневого И-ИЛИ дерева (рис.6). Висячие вершины графа И-ИЛИ соответствуют выводам ІНгі. Вершины (1ц (тип ИЛИ) и су (тип И) соответствуют вентилям схемы на рис.5: і - это номер уровня; j - порядковый номер вершины на Уровне. Единственная вершина типа К является объединяющей (корнем). Если на входы некоторого вентиля (рис.5) посылают выходы взаимозаменяемых вентилей, то такой вентиль представляется в виде вершины ёц (тип ИЛИ). Если входы вентиля не являются взаимозаменяемыми, то такой вентиль представляется вершиной су (тип И) (рис.6).

Преобразуем с помощью перестановки в линейке выводов Ми изображение на плоскости графа И-ИЛИ таким образом, чтобы, во-первых, исключить пересечения, а во-вторых, ветви, имеющие корнями взаимнопермутируемые вершины, имели одинаковое изображение. Алгоритм таких преобразований тривиален. На рис.7 представлен преобразованный граф И-ИЛИ. Преобразованный граф обладает следующим свойством. Пусть имеются две пермутируемые вершины су і и суг (или сіуі и (Іуг). При взаимной пермутации суі и сиг множество цепей, подключенных к множеству выводов Р(суі), переключаются на множество выводов Р(суг), при этом, что очень важно, порядок расположения цепей в линейке друг относительно друга не меняется. Аналогично производится Перекоммутация цепей с Р(суг) на Р(суі).

1 2 3 4 3 6 7 в 9 10 11 12 13 14 13 16 17 10 19 20 21

Рис. 5

Введем одноименные и соответствующие вершинам И-ИЛИ дерева вектора ёу, су, Я.

Элементами векторов нулевого уровня <1о| и с<ц являются номера цепей, подходящих к выводам, объединяемых вершинами слу и <1о), при этом в векторе они расположены в том же порядке, в каком цепи подходят к выводам. В общем случае, элементами векторов ёу(су) являются выходы более низкого уровня, либо номера цепей, соответствующие вершинам графа И-ИЛИ, объединяемые вершиной <^и(си),

Рис. 6

Рис. 7

Например. Пусть на упорядоченное множество выводов Т=< 1,2,3,4,5,6,9,10,12,13,7,8,11,14,15,16,17,20,18,19,21 > графа И-ИЛИ,

изображенного на рис.7, подходит соответственно упорядоченное множество номеров цепей 8=<5,6,7,8,9,2,5,2,3,4,8,7,6,1,2,3,4,1,6,7,8> (рис.8).

номера яишодоя номера цепей

doi dot do3 dos doe do4 dg; dot do»

*Д f\* *Д ’Д'^’Д

56 78 925 234876 12341 6 78

21

Рис. 8

Сформируем базовый набор векторов d*y, c'y, R* d*oi=<5,6>; d*02=<7,8>; d*oj=<9,2>; d*os=<5,2>; d*06=<3,4>; d*04=<8,7>; d*07=<l,2>; d*oe=<3,4>; d*o»=<6,7>;

d*n=<d*oi,d*o2>; d*i2=<d*oj,d*o6>; d*i3=<d’o7,d*oe>; c*2i=<d*ii,d*03>; c*22=<d*i2,d*04>; C*23=<6,d*l3,l>; d*3l=<C*2l,C*22>; R*=<d*3l,C*23,d*09,21>.

Если элементы вектора R* рекурсивно покрывать элементами более низких уровней, пока не останутся только номера цепей, то получится упорядоченный вектор номеров цепей S. Таким образом, вектор выводов Т и набор векторов d*y, c’y и R* полностью задают порядок подключения цепей к выводам. В векторах типа сц и R порядок расположения элементов строго зафиксирован. В векторах типа dy элементы можно менять местами без изменения логических функций схем. Именно от взаимного расположения элементов в векторах <Гу зависит порядок подсоединения цепей к выводам.

Задача нашего алгоритма состоит в отыскании оптимального, в некотором смысле, варианта расположения элементов в векторах dy.

Представим некоторый вариант расположения элементов в векторах dy в виде хромосом. Каждый ген hy хромосомы Н соответствует определенному вектору dy и с этой целью помечен меткой у. hy является вектором, число элементов которого Пу Равно числу элементов dy, то есть ny = |dy|. В векторе hy записаны в некоторой последовательности числа от 1 до пу. Эта последовательность и определяет порядок

■дЯ1.11ИЦ|11Н,шлч1ИИ11Д1и1М1И1.1Ч.НИШ.ЦЦЦИЛП—............и , ■НШМЧЧ..1 др^дДа

iviaicpMdJit>i тсриссиитии кинц>срсНции щщсллсмуальныс wviir-yü

расположения элементов в dy. Для восстановления dy по информации, записанной в hy, необходимо наличие заранее сформированного базового d*y, который имеет строго фиксированный вид. Тогда связь между dy, с одной стороны, и d'y и hy с другой выражается в виде формулы

dy=<d*y(hy(l)), d*y(hy(2)).d*y(hij(ny))>.

Например. Пусть имеется Ьз1=<2,1> и d*3i=<c*2i, с*22>.

Тогда, dîi=<d*3i(h(l)), d*3i(h(2))>. Учитывая, что h(l)=2, a h(2)=l, получим d3i=<d*3i(2), d*3i(l)>=<c*22, c*2i>.

Формирование генетических процедур (алгоритмов) связано с такими понятиями, как популяция, генетические операторы, селекция.

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

Популяция формируется следующим образом:

1. На основе какого-либо решения или случайным образом формируется базовый набор векторов d*y, c’y и R* и вектора выводов Т;

2. Случайным образом формируется набор хромосом, число которых и определяет размер популяции, а каждая хромосома вкупе с базовым набором векторов d*y, с*у, R* и Т определяет конкретное решение. Для каждого решения, соответствующего хромосоме, рассчитывается функция пригодности F (один из критериев);

3. Формируется хромосома Н*, отличительной особенностью Н* является то, что каждый ген hy представляет собой упорядоченную по возрастанию последовательность чисел от 1 до пу. Ниже будет показано, как на основе Н* осуществляется смена популяций.

В качестве генетических операторов используются операторы кроссинговера и мутации.

Кроссинговер реализуется следующим образом.

Специальным образом (оператор селекции) выбирается пара хромосом. Между парой хромосом осуществляется обмен гомологичными (одинаково помеченными) генами. Выбор генов для обмена случаен. Число генов, участвующих в обмене, является управляющим параметром генетической процедуры.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Оператор мутации гена реализуется двумя способами:

Случайным образом выбирается хромосома. Случайным образом выбирается ген. В 1-м случае в гене случайно выбирается пара элементов, которая обменивается местами. Во 2-м случае заново случайным образом генерируется последовательность элементов в гене.

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

В предполагаемом генетическом, алгоритме используется режим смены популяций, реализуемый двумя методами,

1-й метод предусматривает выбор либо самых лучших, либо на основе принципа рулетки хромосомы Нк. Затем, на основе базового набора векторов и хромосомы Н, формируется набор векторов, который объявляется базовым.

При 2-м методе к базовой хромосоме Н применяются генетические операторы мутации и получается хромосома HV Затем на основе базового набора векторов и хромосомы Н*ш формируется новый набор векторов, который объявляется базовым.

Рассмотрим общую схему работы данного алгоритма.

В начале строится граф И-ИЛИ и формируется базовый набор векторов (БНВ), включающий d у, с у, R и Т.. После этого случайным образом формируется начальная популяция хромосом размером Пр. Затем, на каждой1 из ni итераций

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

В результате селекции из объединенного множества решений отбрасывается Пк «худших»1 и размер популяции вновь становится равным пР.

С вероятностью Pm над пм хромосомами может быть реализован оператор мутации. В этом случае пм мутантов объединяются с популяцией. Далее в результате селекции из объединенного множества хромосом удаляется пм «худших».

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

Параметры nP, tu, ni, Пт, nd, Pm и Рср являются управляющими и определяющими в некоторой степени эффективность генетического алгоритма. Хотя с другой стороны, их значения ограничиваются вычислительными ресурсами.

Заключение.

Алгоритм был реализован на языке С для ПЭВМ типа IBM PC. Чтобы оценить эффективность алгоритма пермутации выводов (АПВ), использовались канальные трассировщики. Сначала канальные трассировщики работали без АПВ, а затем после работы АПВ. Сравнения результатов трассировки показали, что предварительное исполнение АПВ существенно сокращает плотность канала в рассмотренных примерах в среднем на 20%.

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

Литература.

1. J.Cong, B.Preas and C.L.Liu, «Physical models and efficient algorythms for over-the-cell routines and standart cell design», IEEE Trans. Computer-Aided Design, vol. 12, no.5, p.p. 723-734,1993.

2. C.Hu and C.Y.R.Chen «A pin permutation algorythm for improving over-the-cell channel routing», in Proc. 29,h ACM/IEEE Design Automation Conf., 1992, p.p. 594-599.

3. T.W.Her and D.F.Wong, «On Over-the-Cell Channel Routing with Cell Orientations Concideration», IEEE Trans. Computer-Aided Design, vol. 14, no.6,p.p.766-771,1995.

УДК 681.3-519.8

С.Н. Щеглов, М.Д. Сеченов Исследование генетического алгоритма дня решения задачи назначения слоев в базовых матричных кристаллах

Одной из задач проектирования4 топологии матричных БИС и СБИС является задача оптимального распределения по слоям трассируемых соединений в базовом

i Надоели баннеры? Вы всегда можете отключить рекламу.