Научная статья на тему 'Алгоритм трассировки при проектировании СБИС'

Алгоритм трассировки при проектировании СБИС Текст научной статьи по специальности «Математика»

CC BY
628
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПЛАНИРОВАНИЕ / ГЛОБАЛЬНАЯ ТРАССИРОВКА / ДЕТАЛЬНАЯ ТРАССИРОВКА / СТРУКТУРНАЯ СХЕМА / ПЛАНАРНЫЙ ГРАФ / ДЕКОДЕРЫ

Аннотация научной статьи по математике, автор научной работы — Рихтер Маргарита Робертовна

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

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

The problem of trace at VLSI design is considered. The algorithm of check planar the count on the basis of procedures of genetic algorithm is applied to its decision. All technological restrictions at trace performance are revealed. The decoder which is carrying out placing of modules on a crystal taking into account technological restrictions for performance of the subsequent connection of modules (trace) is developed.

Текст научной работы на тему «Алгоритм трассировки при проектировании СБИС»

Электроника, технологии производства материалов электронной техники

УДК 004.031.43

М.Р. Рихтер

АЛГОРИТМ ТРАССИРОВКИ ПРИ ПРОЕКТИРОВАНИИ СБИС

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

Проектирование СБИС включает три этапа [1]: разбиение функциональной схемы на элементы; планирование размещения элементов на кристалле; физическое соединение элементов на кристалле (трассировка).

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

Цель исследования - разработка эффективного алгоритма для решения задачи трассировки СБИС с применением процедур генетического алгоритма.

Методы решения задач при проектировании СБИС

Задачам проектирования СБИС посвящено много работ. Например, в [2] задача детальной

* Набор элементов взят из библиотеки http://www.cse. ucse.edu/research/surf/GSRS/MCNCbench.html

трассировки решена с помощью волнового алгоритма, в [3] задача трассировки решена с помощью деревьев Штейнера, в [4] решена задача канальной трассировки с помощью алгоритма «имитация отжига». Для решения задачи проектирования СБИС используются также генетические алгоритмы [4].

В [5] рассмотрена задача трассировки. Для соединения использовано прямолинейное дерево Штейнера и сетка Хэнана, являющаяся пересечением горизонтальных и вертикальных проекций терминалов.

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

Недостаток алгоритма Штейнера - неприемлемая временная сложность. В волновом алгоритме при построении трассы требуется большой объем памяти. Недостаток алгоритма «имитация отжига» - медленная работа алгоритма в случае большой размерности целевой функции. В генетическом алгоритме велико время исполнения функции оценки. Метод множителей Лагранжа требует значительных временных затрат.

В настоящее время из-за высокого уровня сложности современных микросхем (особенно БИС и СБИС) перешли от неавтоматизированного их проектирования к автоматизированному. Продукты компании Mentor Graphics и Cadence позволяют решать сколь угодно сложные задачи. Все они интегрированы в сквозной маршрут,

верифицированный и поддерживаемый множеством технологических библиотек от ведущих изготовителей СБИС (UMC, TSMC, Chartered, IBM, STMicroelectronics, AMS и др.). Все продукты Mentor Graphics основаны на общепринятых стандартах, поэтому легко интегрируются в маршруты проектирования других поставщиков. Отдельные пакеты, например, Calibre, Seamless, ModelSim, TestKompress, занимают доминирующие позиции на мировом рынке. На российском рынке продукция Mentor Graphics широко используется с 1991 г.

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

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

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

Введем адаптацию этого алгоритма к задаче трассировки.

Структурную схему интерпретируем плоским неориентированным графом G = (V, E), где V -число вершин графа, E - число ребер. Вершинами в графе G являются модули, ребрами - соединения между модулями.

Постановка задачи трассировки

Рассматривается следующая задача трассировки.

Дан план с размещенными модулями по его «комнатам» (рис. 1), полученный в [1]; структурная схема, на которой показаны взаимное расположение модулей и соединения между ними (рис. 2).

Требуется соединить модули на кристалле проводниками таким образом, чтобы площадь кристалла была минимальной.

№1 №6

№4

№5 №2 №3

Рис. 1. План с размещенными модулями

При этом должны выполняться следующие ограничения [8]:

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

2) длина соединительных проводников должна быть минимальной;

3) простота конфигурации соединений;

4) проводник, привязанный к модулю, может идти вдоль границы этого модуля, но не может оборачиваться вокруг угла;

5) допустимое расстояние между проводниками 3-4 мкм;

6) минимально допустимая длина проводника 4 мкм.

Общая схема алгоритма PGA для решения задачи трассировки на кристалле

Вход: план P с размещенными по «комнатам» модулями (прямоугольниками), полученный на базе алгоритма «поиск с запретами»;

структурная схема соединений модулей

Рис. 2. Структурная схема, на которой показано взаимное расположение модулей и соединения между ними

1

5

в виде графа, заданного списком смежности.

Выход: план P', удовлетворяющий ограничениям (1-6) с модулями, соединенными проводниками, в соответствии со структурной схемой.

Шаг 1. Соединение модулей плана (рис. 6) проводниками в соответствии со структурной схемой.

Шаг 2. Построение графа G = (V,E), соответствующего схеме, в котором вершины V - модули, а ребра E - проводники, соединяющие модули.

Шаг 3. Если имеются пересечения проводников, то применяем алгоритм проверки планарно-сти графа на базе процедур генетического алгоритма, который строит базис циклов B.

Если граф G - планарный, то формируем приоритетный список ребер (соединений) по базису циклов, соответствующему плоской укладке графа, и переходим к шагу 4.

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

Шаг 4. Выполняем процедуру «декодер», осуществляющую размещение модулей по полученному приоритетному списку и их соединение с учетом условий 1-6.

Шаг 5. Конец алгоритма трассировки.

Процедура «декодер» позволяет получить размещение модулей на кристалле с учетом технологических ограничений для выполнения последующего соединения модулей (трассировки).

Рассмотрим подробнее выполнение алгоритма PGA на примере.

Пусть дана структурная схема (рис. 3) и план с размещенными модулями по его комнатам (рис. 4).

Соединим модули плана проводниками в соответствии со структурной схемой (рис. 5).

Рис. 4. План с размещенными модулями, полученный в [1]

Как видно из рис. 5, имеются пересечения проводников, что недопустимо. В связи с этим применяем алгоритм проверки планарности графа на базе процедур алгоритма PGA.

Вход:

Входом алгоритма PGA является граф G = (V, E) (рис. 6), соответствующий структурной схеме на рис. 3.

Представим граф G в виде списков смежности.

Lx. = {N(M, M)}, где N - номер ребра, M, M. -вершины графа, которые соединяет между собой ребро N.

{1(1,2), 2(1,3), 3(1,5), 4(1,6), 5(1,8)}; 6(2,3), 7(2,8)}; 8(3,6), 9(3,8)}; 10(4,6), 11(4,7), 12(4,8)}; 13(5,6), 14(5,7), 15(5,8)}; {16(6,7)}.

Схема алгоритма PGA. Исходными данными для алгоритма PGA является множество циклов - популяция, из которых выбирается базис циклов B где p=m-n+2; m - число ребер графа G; n - число вершин графа G.

Базис Bp представляет собой хромосому (рис. 7), состоящую из p разрядов, каждый из ко-

Lx1 = Lx2 = Lx3 =

Lx4 =

Lx5 =

Lx =

6

Рис. 3. Структурная схема

Рис. 5. План с размещенными и соединенными между собой модулями в соответствии со структурной схемой на рис. 3

торых соответствует номеру цикла из В . Таким образом, под хромосомой понимается комбинация из р циклов, являющаяся одновременно вариантом плоской укладки графа 0(¥, Е).

Последние три разряда хромосомы используются для оценки полученного решения. Для этого в [8] вводится оценочная функция Ъ(т) = (2х^ + ^рЛ2т , где Nm^ - число элементов в р+3 разряде хромосомы, а Nт -соответственно число элементов в р+2 разряде. Значения оценочной функции 8(т) находатся в интервале [0,1], причем качество решения будет тем выше, чем большее число ребер (прежде всего ребер, встречающихся дважды) будет задействовано в решении.

Левая часть хромосомы (р разрядов) может содержать как значащую, так и незначащую части. Разряды значащей части заполняются номерами циклов, а незначащей Ь0 — нулями. Для оптимального решения Ь0 = 0. Таким образом, целевая функция хромосомы полученного решения / (Н) = (8(т); Ц).

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

Условие планарности графа: в полученном решении - хромосоме - все разряды с первого по p-й являются значащими, а разряды p+1 и p+2 -пустыми.

В основу алгоритма PGA положен критерий Мак-Лейна для проверки планарности графа

[9].

Алгоритм Мак-Лейна для проверки планарности графа

Шаг 1. Генерируем циклы длины к = 3 в графе G. Цикл представляет собой замкнутый контур, состоящий из номеров ребер графа.

C = (1-6-2); C2 = (1-7-5); C3 = (2-8-4);

C4 = (2-9-5); C = (3-13-4); C6 = (3-15-5);

C7 = (6-9-7); C8 = (10-16-11); C9 = (13-16-14).

Шаг 1.1. Подсчитываем число циклов N = | Ck|: NC3 = 9, где NC3 - число циклов длины 3.

Шаг 1.2. Если выполняется условие N > m - n + 2, где n - число вершин графа G, m -число ребер графа G, то переходим к следующему шагу; если - нет, то возвращаемся к шагу 1 и начинаем генерацию циклов длины к +1.

Необходимое число циклов p = m - n + 2 = = 16 - 8 + 2 = 10.

Поскольку NC3 < p, то необходимо вернуться к шагу 1 и начать генерацию циклов длины 4.

Сю = (1-6-8-4); Сп = (1-6-9-5);

С12 = (1-7-9-2); С13 = (1-7-15-3);

С14 = (2-6-7-5); С15 = (2-8-13-3);

С16 = (2-9-15-3); С17 = (3-14-16-4);

q8 = (4-8-9-5); С19 = (4-10-12-5);

С20 = (4-13-15-5); С21 = (8-10-12-9);

С22 = (8-13-15-9); С23 = (10-13-14-11);

См = (10-13-15-12); С25 = (11-14-15-12).

Общее число циклов стало равным 25 (No = 9 +16 = 25 ), т. е. NC > p.

Шаг 1.3. Из множества циклов N выбираем первые (m - n + 2) цикла и подсчитываем общее число ребер N, принадлежащих этим циклам:

N = Ъ

к=3

р " р+1 ' Р+2 * Р+3 '

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

Рис. 7. Общий вид хромосомы р - номера циклов; р+1 - номера ребер, не содержащихся во множестве циклов; р+2 - номера ребер, встречающихся в выделенном множестве циклов один раз; р+3 - номера ребер, встречающихся в выделенном множестве циклов два раза

где к - длина цикла; | - мощность множества циклов длины к; К - длина самого длинного из сгенерированных циклов.

Поскольку р = 10, то для первых десяти циклов подсчитываем число ребер: N = 3 х 9 + 4 х 1 = 27 + 4 = 31.

т

Шаг 1.4. Полученное значение N сравниваем с удвоенным числом ребер исходного графа О. Если N > 2т, то рассматриваемый граф является непланарным и для решения задачи трассировки необходимо использовать алгоритм, описанный в [7].

Шаг 1.5. Если полученное значение N < 2т, то делается замена циклов длины к на циклы большей длины (к + 1). Если циклы длины (к + 1) отсутствуют, то возвращаемся к шагу 1 и генерируем циклы длины (к + 1), в противном случае -переходим к шагу 1.7.

Поскольку N < 2т (31<2*16), то заменяем один из циклов длины 3 на цикл длины 4 для достижения выполнения условия Nm = 2т .

Шаг 1.6. Если NJ = 2т , то получаем множество циклов Ск.

После проведения замены условие Nm = 2т выполнено

Nm = 3 х 8 + 4 х 2 = 24 + 8 = 32 ^ Nm = 2т .

Вывод: исходя из полученного выражения для Nm , требуется восемь циклов длины к = 3 и два цикла длины к = 4.

Шаг 2. Конец работы по генерации циклов.

Шаг 3. Построение планарного графа.

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

В результате поиска выясняется, что таких ребер четыре. Это ребра: 3, 7, 13, 16.

Шаг 3.2. Объединяем все циклы, включающие указанные ребра.

Получаем комбинацию циклов {С2, С5, С6, С7, С8, С9}, а затем проверяем, не создает ли полученная комбинация недопустимых решений.

Ш а г 3.3. Кодируем полученную комбинацию хромосомой.

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

Хр1 2567890000 {2,8,12} {1,4,6,9,10,11,14,15} {3,5,7,13,16}

Хромосома Хр1 является первым родителем.

Шаг 3.4. Посчитаем целевую функцию хромосомы:

/(Хр) = (5(т), ¿0),

где 8(т) = (2 х Nm ^ я Nm ^ )/2т - функция оценки.

Подсчитаем целевую функцию хромосомы

Хрг

Функция оценки:

8(т) = 0,5625 ; Ц = 4 ;/(Хр^ = (0,5625; 4).

Ш а г 3.5 . Путем попарного объединения циклов формируем множество промежуточных решений - популяцию, из числа которых будет выбран второй родитель для операции скрещивания.

Для рассматриваемого примера множество промежуточных решений формируется случайным образом, путем попарного объединения циклов, включающих ребра 2, 8, 12.

Размер начальной популяции примем равным трем (по одной хромосоме для каждого ребра):

Хр2 1300000000 {3,5,7,9,10,11,12,13,14,15,16} {1,4,6,8} {2}

Хр3 15 18 00000000{1,6,7,10,11,12,14,15} {2,3,4,5,9,13,16} {8}

Хр4 19 21 00000000 {1,2,3,6,7,13,14,15,16} {4,5,8,9,11} {10,12}

Шаг 3.6. Селекция множества промежуточных решений.

Шаг 3.6.1. Подсчитаем значения функций пригодности относительно базового решения:

/ХО = (5',,

где 8т = 1 - [(2 х N4, я Шг я N4^/(2 х Щ я Щ я я Ш3)] - относительное увеличение числа ребер.

N'c = 1 - (Nc_/N ) - относительное увеличение числа циклов.

5'т(Хр2) = 1; N'(2^ = 1; / '(Я) = (1 ; 1).

5'т(Хр3) = 0,2; #'с(3н) = 0; /'(Я) = (0,2; 0);

5'т(Хр4) = 0,5; #'с(4н) = 0; /'(Я) = (0,5; 0).

Шаг 3.7. На основе полученных функций пригодности выбираем второго родителя - хромосому 2 - для участия в операции скрещивания.

В качестве второго родителя выбираем хромосому Хр2 как имеющую наивысшую оценку пригодности.

Ш а г 3.8. Выполняем операцию скрещивания двух родительских особей Хр1 и Хр2.

Хр1 2567890000 {2,8,12} {1,4,6,9,10,11,14,15} {3,5,7,13,16}

Хр2 1300000000 {3,5,7,9,10,11,12,13,14,15,16} {1,4,6,8} {2}

После выполнения операции скрещивания получается новое решение:

Хр12 2567891300 {12}{8,9,10,11,14,15} {1,2,3,4,5,6,7,13,16}

Шаг 3.9. Увеличиваем популяцию промежуточных решений за счет объединения циклов, содержащих ребра, которые имеются в разряде р + 1 нового базового решения - хромосоме Хр12.

Увеличиваем популяцию промежуточных решений за счет добавления хромосом, содержащих ребро 12, т. к. в разряде p+1 решения осталось только одно это ребро:

Хр5 19 24 00000000 {1,2,3,6,7,8,9,11,14,16} {4,5,13,15} {10,12}

Хр6 21 25 00000000 {1,2,3,4,5,6,7,13,16} {8,9,10,11,14,15} {12}

Хр7 19 25 00000000 {1,2,3,6,7,8,9,13,16} {4,5,10,11,14,15} {12}

Хр8 21 24 00000000 {1,2,3,4,5,6,7,11,14,16} {8,9,13,15}{10,12}

Шаг 3.10. Подсчитываем функции пригодности f(H каждого элемента популяции относительно нового базового решения - хромосомы Хри:

5'т(Хр5) = 0,2; #'с(Хр5) = 0; f '(И) = (0,2; 0); 5'т(Хр6) = 1; #'с(Хр6) = 1; f '(Я) = (1 ; 1); 5'т(Хр7) = 0,6667; #'с(Хр7) = 0; f'(H) = = (0,6667; 0);

5'т(Хр8) = 0,6; #'с(Хр8) = 0; f'(H) = (0,6; 0). Шаг 3.11. Выбираем второго родителя - хромосому, имеющую лучшую оценку пригодности, для участия в операции скрещивания с хромосомой Хр12 - новым решением.

Лучшую оценку пригодности имеет хромосома Хр6, которую выбираем в качестве второго родителя для операции скрещивания.

Шаг 3.12. Выполняем операцию скрещивания:

Хр12 2567891300 {12}{8,9,10,11,14,15} {1,2,3Д5,6,7,13,16}

Хр6 21 25 00000000 {1,2,3,4,5,6,7,13,16} {8,9,10,11,14,15} {12}

Хр126 2567891 3 21 25 {0}{0} {1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16}

В полученной хромосоме Хр126 все разряды с 1-го по p-й (т. е. с 1-го по 10-й) являются значащими, а разряды ф+1) и ^+2) - пустыми.

Следовательно, условие планарности графа выполнено. Таким образом, в результате выполнения оператора кроссинговера построено оптимальное базовое решение (хромосома Хр126).

Шаг 4. Получаем базис циклов Bp, соответствующий плоской укладке графа.

Шаг 4.1. Формируем необходимый базис циклов.

123456789 10 11 12 13 14 15 16

С! 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0

С2 1000101000 0 о 0 0 9 9

Сз 0101000100 0 0™ 0 0 0 "о

с5 0^11000000 о о 1 0 9 9

с6 0010100000 0 0 0 0 1 0

с7 0000011010 о 0 0 0 0 9

с8 0000000001 1 0 9 0 9 1

с. 0000000000 0 0 1 "1 0 1

С21 ооооооо!!! 0 I 0 0 9 0

С25 0000000 0 00 1 0 1 г 0

Шаг 5. Формируем приоритетный список ребер по полученному базису циклов Bp

Шаг 5.1. В базисе Bp последовательно выбираем цикл за циклом.

Выбираем первый цикл в подматрице p. Это цикл С1. На первом шаге цикл С1 совпадает с внешним циклом Свн1;

Свн1 = {1(1,2) - 6(2,3) - 2(3,1)}. Добавляем ребра из первого цикла в приоритетный список PL . PL1 = {1,6,2}.

Затем выбираем следующий цикл в базисе Bp. Это цикл С2.

Ш а г 5.2. Находим разность множеств:

^ = <^2= {6(2,3) - 2(3,1)} и С'2= С2 \ Свн1 = {5(1,8) я 7(8,2)}. Добавляем полученную разность в конец приоритетного списка PLp: PL2 = {1,6,2; 5,7} .

Шаг 5.3. Выполняем суммирование С' и С '2. Получаем: СвН2 = {5(1,8) - 7(8,2) - 6(2,3) - 2(3,1)}.

Далее процесс продолжается аналогичным образом:

Свн3 = {5(1,8) - 7(8,2) - 6(2,3) - 8(3,6) - 4(6,1)}; PL3 = {1,6,2; 5,7; 8,4};

Свн4 = {5(1,8) - 7(8,2) - 6(2,3) - 8(3,6) - 13(6,5) -

- 3(5,1)};

PL4 = {1,6,2; 5,7; 8,4; 13,3};

СВн5 = {7(8,2) - 6(2,3) - 8(3,6) - 13(6,5) -

- 15(5,8)};

PL5 = {1,6,2; 5,7; 8,4; 13,3; 15}; Свн6 = {9(8,3) - 8(3,6) - 13(6,5) - 15(5,8)}; PL6 = {1,6,2; 5,7; 8,4; 13,3; 15; 9}. На следующем шаге алгоритма должен быть выбран цикл С8, однако в нем нет ни одного ребра, принадлежащего внешнему циклу. Поэтому временно пропустим его и перейдем к циклу С9. Свн7 = {9(8,3) - 8(3,6) - 16(6,7) -14(7,5) -

- 15(5,8)}.

Рис. 8. План P, полученный на базе алгоритма «поиск с запретами», реализованного в [1]

PL7 = {1,6,2; 5,7; 8,4; 13,3; 15; 9; 16,14}.

Теперь во внешнем цикле появилось ребро 16 (6,7), возвращаемся к циклу C8:

Свн8 = {9(8,3) - 8(3,6) - 10(6,4) - 11(4,7) -- 14(7,5) - 15(5,8)};

PL8 = {1,6,2; 5,7; 8,4; 13,3; 15; 9; 16,14; 10,11};

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

Свн9 = {12(8,4) - 11(4,7) - 14(7,5) - 15(5,8)};

PL9 = {1,6,2; 5,7; 8,4; 13,3; 15; 9; 16,14; 10,11; 12};

Шаг 6. Конец работы алгоритма.

Выход: приоритетный список: PL9 ={1(1,2), 6(2,3), 2(3,1); 5(1,8), 7(8,2); 8(3,6), 4(6,1); 13(6,5), 3(5,1); 15(5,8); 9(8,3); 16(6,7), 14(7,5); 10(6,4), 11(4,7); 12(8,4)}

Далее выполняем процедуру «декодер», осуществляющую размещение модулей по полученному приоритетному списку PL9 и их соединение с учетом условий 1-6.

Рис. 9. Структурная схема

Рис. 10. План Р', удовлетворяющий ограничениям 1-6 с модулями, соединенными проводниками,

в соответствии со структурной схемой на рис. 9

Данный алгоритм был реализован на языке Си. Рассмотрим результаты работы программы.

Вход: план Р с размещенными по его «комнатам» модулями (рис. 8).

На рис. 9 приведена структурная схема, на которой показано взаимное расположение модулей и соединения между ними.

Выход: План Р' (рис. 10) с модулями, соединенными проводниками, в соответствии со структурной схемой, изображенной на рис. 9.

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

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

Работа поддержана грантом РФФИ 10-07-91330_ ННИО_а, 11-07-005-79-а.

СПИСОК Л

1. Zhuang, C. An Enhanced Q-Sequence Augmented with Empty-Room-Insertion and Parenthesis Trees [Text] / C. Zhuang, K. Sakanushi, L. Jin [et al.] // The manual. Proc. of Design Automation. -2002. -P. 61-68.

2. Burstein, M. Channel routing, Layout Design and Verification [Text] / M. Burstein // Elsevier Science. -1986. -P. 133-167.

3. Rautenbach, D. Gate- and Wire-Sizing in VLSI

Design [Text] / D.Rautenbanch // The collection. Technics. -2006. -P. 58.

4. Aurts, E. Local Search in Combinatorial Optimization [Text] / E. Aurts, K. Lenstra // The collection. Technics. -1996. -P. 220.

5. Koranne, S. Practical Computing on the Cell Broadband Engine [Text] / S. Koranne // Springer Science. Technics. -2009. -P. 434.

6. Корняков, К.В. Алгоритм проектирования интегральных схем: Справ. издание [Текст] / К.В. Корняков. -М.: Наука, 2010. - С. 58.

7. Емельянов, В.В. Теория и практика эволюционного моделирования: Учеб. пособие [Текст] / В.В. Емельянов, В.М. Курейчик, В.В. Курейчик. -М.: Физматлит, 2003. - С. 432.

8. Пономарев, М.Ф. Конструирование и расчет микросхем и микропроцессоров: Учеб. пособие для вузов [Текст] / М.Ф. Пономарев, Б.Г. Коноплев. -М.: Наука, 1986. - С. 142.

9. Емеличев, В.А. Лекции по теории графов: Справ. издание [Текст] / В.А. Емеличев, О.И. Мельников, В.И. Сарванов [и др.]. -М.: Наука,1990. - С. 85.

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