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

Секция систем автоматизированного проектирования

УДК 659.512.2.011.5

В.Н. Давиденко

ГЕНЕТИЧЕСКИЙ АЛГОРИТМ ДЛЯ ТРАССИРОВКИ ДВУХСЛОЙНЫХ

КАНАЛОВ

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

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

Задача канальной трассировки в классической постановке - это простой метод трассировки двухстороннего канала, по верхней и нижней сторонам которого проходят линейки контактов. Изломы, т.е. переход горизонтального участка с одной магистрали на другую, не допускаются. Трассировка ведется в двух слоях; в одном проводятся горизонтальные сегменты, в другом - вертикальные. Соединение горизонтальных и вертикальных отрезков производится через переходные отверстия.

Канал описывается двумя последовательностями Тор и Bottom, в которых размещены верхняя и нижняя линейки канала соответственно. Размер обеих последовательностей равен С, т.е. числу колонок в канале. Множество цепей определяется как Net={ Nj,..., Nn}, где n - число цепей.

Рассмотрим следующий пример: Тор ={ 1, 0, 3, 1, 4, 2, 3, 2} и Bottom ={ 6, 4, 6, 6, 3, 0, 5,5 }, где С=8, n=6, Net={ 1, 2, 3, 4, 5, 6}, элемент 0 в Тор или в Bottom обозначает свободный контакт. На рис. 1 дан эскиз канала с разведенными цепями.

3

2

линейка Тор • кон2ак2

переходное о2верс2ие

6 6

вер2икальный сегмен2 1 горизон2альный сегмен2

линеика

Bottom

5

6

4

3

р исх 1

При канальной трассировке не допускаются наложения вертикальных и горизонтальных сегментов цепей. Для решения этой задачи вводятся графы вертикальных и горизонтальных ограничений. Вертикальные ограничения описываются ориентированным графом вертикальных ограничений (ГВО) Gv=(Ejjet>Ev), где Net - множество вершин, соответствующих множеству цепей Net, Еу _ множество направленных ребер. Ребро (n, т), принадлежащее Еу, существует тогда и только тогда, когда

цепь п должна быть расположена выше цепи m для предотвращения наложений вертикальных сегментов цепей.

В нашей работе мы будем использовать расширенный граф вертикальных ограничений (РГВО) GRV=(ENet>ERV), где Net - множество вершин, соответствующих множеству цепей Net, Erv _ множество направленных ребер. Ребро (n, т), принадлежащее Erv, существует тогда и только тогда, когда в ГВО существует путь из вершины п в вершину т.

Горизонтальные ограничения представлены неориентированным графом горизонтальных ограничений (ГГО) Он=(ЕкгеьЕн)> гДе ~~

множество цепей, Ejj - множество ребер. Ребро (n, hi)UEh существует тогда и только тогда, когда магистрали для пит различны, чтобы исключить наложения горизонтальных сегментов пит.

Генетический алгоритм требует, чтобы хромосомы оценивались с точки зрения целевой функции задачи. Целевая функция оценивает какие-либо качества особи ( длину цепей, число магистралей и т.д.). Генетический алгоритм обрабатывает популяцию решений закодированных в хромосомы. В процессе обработки популяции, к ней последовательно применяются различные генетические операторы, такие как кроссинговер и "точечная" мутация, с заданными вероятностями (Р^ и Р^ соответственно). Затем проводится селекция увеличившейся популяции для отбора лучших решений, которые составят следующее поколение, после чего цикл повторяется. Число таких циклов называется числом поколений Т.

Для нашего генетического алгоритма мы приняли следующую схему.

Шаг 1. Определение размера популяции М, числа поколений Т, вероятности кроссинговера PC и вероятности мутации РМ.

Шаг 2. Задание случайным образом начальной популяции 13(0) размером М.

Шаг 3. t=0.

Шаг 4. Выбор случайным образом М пар хромосом из популяции II(t) и применение операции кроссинговера к каждой паре с заданной вероятностью PC.

Шаг 5. Применение операции мутации к каждой особи популяции n(t) с заданной вероятностью РМ.

Шаг 6. Селекция. Отбор М особей с наилучшим значением целевой функции из получившейся популяции n(t) в новую популяцию n(t+l).

Шаг 7. t=t+l.

Шаг 8. Если t<T, то переход к шагу 4.

Шаг 9. Вывод особи с наилучшим значением целевой функции.

Далее в статье мы рассмотрим генетические операции, применяемые в нашем генетическом алгоритме.

Для получения из хромосомы эскиза канала с разведенными цепями мы используем граф топологии. Граф топологии - это ориентированный граф GT=(Net,ET), (где Net - множество цепей; Ер _ множество направленных ребер), описывающий взаимное расположение цепей в канале. Ребро (m,n) принадлежит Ер тогда и только тогда, когда цепь m должна быть расположена в канале выше цепи п, т.е. на магистрали с меньшим номером.

Граф топологии строится из хромосомы по следующему алгоритму.

Шаг 1. Копируем расширенный граф вертикальных ограничений Grv в граф топологии GT.

Шаг 2. i=l.

Шаг 3. Если ребро (mt, nf) не принадлежит GT, то это ребро добавляется к GT.

Шаг 4. Проверяем для всех вершин к (к=1, ... ,N), таких, что к Ф mt и к Ф nt и не существует ребра (mi, к) в GT, существование пути из вершины mi в вершину к. Если такой путь существует, то добавляем ребро (mi, к ) к GT.

Шаг 5. Если i < L , то увеличиваем i на 1 и переходим к шагу 3.

Шаг 6. Считаем построение графа топологии завершенным.

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

Шаг 1. Строим по хромосоме граф топологии GT.

Шаг 2. i=0.

Шаг 3. Находим вершины, у которых есть только исходящие дуги, размещаем их на магистрали с номером i и удаляем эти вершины из графа.

Шаг 4. i++.

Шаг 5. Если граф топологии GT не пустой, возвращаемся к шагу 3.

Шаг 6. Не нарушая взаимного расположения, смещаем цепи по магистралям так, чтобы минимизировать длину вертикальных сегментов цепей.

Шаг 7. Возвращаем полученный образец размещения цепей в канал шириной i.

Определяем целевую функцию:

Е(А)а (изеёТгаек(А)+2)*С+Т(йаГУ'ег^8е0(А),

где С - число контактов; функция Шес1Тгаск:(А) возвращает число магистралей, занимаемых каналом, полученным при восстановлении из хромосомы А, а функция Т^а1¥е11;Зе§(А) возвращает длину вертикальных сегментов цепей в полученном решении. Длина вертикальных сегментов цепи определяется как расстояние между контактами и переходными отверстиями, которые соединяют вертикальные и горизонтальные сегменты. Например, для канала на рис.1 число занятых магистралей равно 4, длина вертикальных сегментов равна 22.

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

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

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

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

реализовали на языке Си++ для 1ВМ РС. Установки управляющих параметров были найдены эмпирически. Размер популяции М был выбран равным 50. Мы установили значение вероятности кроссинговера Рс равным 1. Была выбрана относительно высокая вероятность мутации Р]у[ 0.1, так как мутация в нашем случае вносит очень небольшие изменения в хромосому. Была применена "элитная" селекция, т.е. из популяции, полученной после проведения операций кроссинговера и мутации, выбирается М особей с наименьшим значением целевой функции. На стандартном потоке задач алгоритм показал высокое качество полученных решений. В первых пяти поколениях во всех случаях было получено решение с минимально возможным числом занятых магистралей. А после двадцати поколений отклонение от оптимального результата по длине соединений составило менее 1%.

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

УДК 659.512.2.011.5

В.Н. Давиденко

ПРИМЕНЕНИЕ ОПЕРАЦИИ МУТАЦИИ В ГЕНЕТИЧЕСКИХ АЛГОРИТМАХ КАНАЛЬНОЙ ТРАССИРОВКИ

Канальная трассировка - это один из этапов топологического проектирования СБИС. Задача канальной трассировки - это трассировка точно установленного списка цепей между двумя линейками контактов вдоль двухслойного канала. В каналах горизонтальные сегменты цепей