Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KUTEPOV / DIPL.DOC
Скачиваний:
41
Добавлен:
16.04.2013
Размер:
2.87 Mб
Скачать

2.3 Итерационные алгоритмы оптимизации размещения элементов бис на бмк.

Алгоритмы данной группы основаны на использовании методов последовательных приближений. Пусть q0 - начальное размещение элементов БИС; Qi(qi-1) = qi - размещение на i-м шаге оптимизации и F(qi) - значение целевой функции. Тогда задача итерационной оптимизации размещения сводится к выбору такой последовательности преобразований q0, Q1(q0)=q1, Q2(q1)=q2, ..., Qs(qs-1)=qs, для которой

F(q0) > F(q1) > F(q2) > ... > F(qs). (2.3.1)

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

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

Г л а в а 3.

Описание используемого алгоритма доразмещения и оптимизации размещения элементов на БМК.

3.1 Обоснование выбора алгоритма размещения и оптимизации размещения элементов на бмк.

Алгоритм размещения элементов, используемый в данной программе относится к алгоритмам последовательного размещения по связности. От использования алгоритмов дихотомического деления и силового алгоритма пришлось отказаться. Это обусловлено несколькими причинами. Одна из них - различные размеры библиотечных элементов, что создает некоторые проблемы при использовании силового алгоритма (в частности значительно усложняет распределение элементов по площади БМК). Возникают проблемы и с алгоритмом дихотомического деления, так как очень часто будет возникать ситуация когда общее число выделенных под элемент привязок будет соответствовать необходимому количеству, а их взаимное положение - нет. (Простой пример - элемент занимает две позиции в вертикальном направлении, а выделены под него две привязки в горизонтальном направлении.) Вторая важная причина - некоторая неоднозначность расположения связей между элементами. Так, например, если некоторая связь соединяет между собой элементы A, B и C, то в зависимости от взаимного местоположения этих элементов связь может проходить от А к В, от В к С, или от А к С, потом от С к В. Это приводит к значительному осложнению расчетов и ухудшению получаемых результатов при использовании алгоритмов дихотомического деления и силового алгоритма.

3.2 Описание используемого алгоритма размещения и оптимизации размещения элементов на бмк.

Как было сказано выше, алгоритм, используемый в данной программе относится к алгоритмам с последовательным размещением по связности. Основные блоки и их взаимосвязи представлены на рис. 3.2.1.

После запуска программы на выполнение происходит проверка соответствия размера выделенной под фрагмент области размеру, необходимому для размещения этого фрагмента. В случае нехватки происходит окончание работы с выдачей соответствующего сообщения.

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

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

Далее происходит сортировка полученных на предыдущем этапе списков. Список элементов располагается в порядке максимальной связности с уже размещенными элементами. Сила связности рассчитывается по формуле:

(3.2.1)

где Fi - связность i-го контакта;

n - число контактов элемента;

koli - число элементов связанных с i-м контактом;

Ai - число размещенных элементов, связанных с i-м контактом;

V - число привязок, занимаемое элементом на поле БМК.

При сортировке списка привязок образуется два других списка - один по возрастанию координаты X, другой - по Y. Эти списки необходимы при дальнейшей работе для ускорения поиска привязок.

Далее непосредственно происходит размещение элементов на БМК. Подробнее этот блок представлен на рис. 3.2.2.

После размещения элементов необходимо оптимизировать полученное размещение. Эту задачу выполняют следующие три вида оптимизации размещения:

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

2) Оптимизация отдельных ячеек. Отличие от 1 состоит в том, что удаление и размещение ячеек происходит поочередно.

3) Оптимизация отдельных ячеек. Отличается от 2 методом поиска оптимальной привязки, использует метод парных перестановок.

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

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

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

Г л а в а 4.

Разработка топологии БИС 8-канального таймера.

4.1 Исходные данные для разработки.

Исходными данными является схема 8-разрядного таймера, представленная на рис. 4.1. Формат данных для обработки на компьютере - timer.str и timer.sch. Основные блоки (фрагменты) схемы приведены на рис. 4.1.1, 4.1.2, 4.1.3. Причем на рис. 4.1.3 показан общий вид блоков TIM_3 - TIM_10 ( TIM_(n+2); n-порядковый номер блока; n=1,2,...,8).

4.2 Размещение элементов схемы на поле БМК.

Размещение элементов схемы TIMER на поле БМК производится с помощью программы WINRAZM и в частности с использованием непосредственно разработанного блока автоматического размещения. Прежде всего необходимо провести планировку кристалла, т.е. обозначить место для каждого фрагмента схемы. Полученная планировка кристалла показана на рис. 4.2.. Подфрагменты, под которые место не будет выделено будут размещаться в области, выделенной под родительский фрагмент. Также необходимо вручную расставить периферийные ячейки, что обеспечивает начальные условия для автоматического размещения. На этом же этапе можно провести расстановку элементов схемы, положение которых существенно влияет на быстродействие.

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

4.3 Трассировка межсоединений.

Следующим этапом разработки топологии схемы является трассировка межсоединений. Этот этап проводится с использованием программы SINWIN. Этот этап является контрольным для предыдущего этапа. Если не удается провести трассировку межсоединений, то необходимо либо возвращаться к предыдущему этапу и пытаться улучшить размещение элементов, либо проводить трассировку вручную, что позволяет делать топологический редактор STALKER. Результат трассировки межсоединений для схемы TIMER представлен на рис. 4.4.

4.4. Полученные результаты.

Далее последовательно выполняется контроль полученной топологии (с помощью программы CONTROL) и расчет задержек в цепях (с помощью программы ZADER). Список цепей, задержки в которых превышают 50 нс, приведен ниже.

INFORM: Задержки (нс) в цепях топологии БИС 'timer', превышающие 50.0нс:

( Х, У) Тз01 Тз10

0001)

Источ:( 70440, 43080) Z1 1>9(2)

Прием:( 56760, 11460) W2A 7>14(2) . . . . . . . . . . . . 82.9 77.3

( 22200, 11460) W2A 6>14(2) . . . . . . . . . . . . 65.1 59.6

( 20280, 25140) W2A 8>14(2) . . . . . . . . . . . . 62.1 56.6

( 20280, 31260) W2A 5>14(2) . . . . . . . . . . . . 59.5 53.9

( 16440, 51900) W2A 10>14(2). . . . . . . . . . . . 36.9 31.8

( 16440, 55500) W2A 9>14(2) . . . . . . . . . . . . 36.9 31.8

( 58680, 65580) Y3 1>7>9(4). . . . . . . . . . . . 20.5 16.1

( 64440, 35220) W2A 2>10(2) . . . . . . . . . . . . 19.7 16.0

( 66360, 59100) W2A 4>14(2) . . . . . . . . . . . . 15.2 11.7

( 68280, 51180) W2A 3>14(2) . . . . . . . . . . . . 10.5 7.3

0002)

Источ:( 27240, 69480) Z3 1>27>4(3)

Прием:( 39480, 16500) W18 7>1>8>1(6). . . . . . . . . . . 75.8 72.9

( 18360, 16860) W18 6>1>8>1(6). . . . . . . . . . . 71.8 68.9

( 24120, 34500) W18 5>1>8>1(6). . . . . . . . . . . 70.0 67.2

( 22200, 27660) W18 8>1>8>1(6). . . . . . . . . . . 69.7 66.9

( 22200, 48300) W18 10>1>8>1(6) . . . . . . . . . . 68.9 66.0

( 26040, 57660) W18 9>1>8>1(6). . . . . . . . . . . 64.5 61.7

( 52920, 53340) W18 3>1>8>1(6). . . . . . . . . . . 37.8 34.9

( 52920, 56580) W18 4>1>8>1(6). . . . . . . . . . . 32.3 29.4

( 52920, 65220) W18 1>7>8>1(6). . . . . . . . . . . 32.2 29.3

0003)

Источ:( 21480, 69480) Z3 1>25>4(3)

Прием:( 37560, 14700) W18 7>1>6>1(6). . . . . . . . . . . 74.6 71.8

( 22200, 16140) W18 6>1>6>1(6). . . . . . . . . . . 70.9 68.2

( 26040, 35940) W18 5>1>6>1(6). . . . . . . . . . . 70.4 67.7

( 24120, 26580) W18 8>1>6>1(6). . . . . . . . . . . 70.2 67.5

( 24120, 48300) W18 10>1>6>1(6) . . . . . . . . . . 68.4 65.7

( 24120, 57660) W18 9>1>6>1(6). . . . . . . . . . . 67.3 64.6

( 51000, 57660) W18 4>1>6>1(6). . . . . . . . . . . 40.6 37.8

( 51000, 50820) W18 3>1>6>1(6). . . . . . . . . . . 40.5 37.7

( 51000, 64860) W18 1>7>6>1(6). . . . . . . . . . . 35.9 33.2

0004)

Источ:( 30120, 69480) Z3 1>24>4(3)

Прием:( 47160, 16500) W18 7>1>5>1(6). . . . . . . . . . . 71.5 68.6

( 16440, 15780) W18 6>1>5>1(6). . . . . . . . . . . 62.8 60.0

( 22200, 26220) W18 8>1>5>1(6). . . . . . . . . . . 61.6 58.8

( 20280, 36660) W18 5>1>5>1(6). . . . . . . . . . . 59.0 56.2

( 20280, 48300) W18 10>1>5>1(6) . . . . . . . . . . 55.5 52.7

( 26040, 58740) W18 9>1>5>1(6). . . . . . . . . . . 48.4 45.6

( 51000, 49740) W18 3>1>5>1(6). . . . . . . . . . . 25.7 23.6

( 51000, 58740) W18 4>1>5>1(6). . . . . . . . . . . 25.7 23.6

( 49080, 67020) W18 1>7>5>1(6). . . . . . . . . . . 24.1 22.1

0005)

Источ:( 62280, 69480) Z3 1>20>4(3)

Прием:( 52920, 15420) W18 7>1>1>1(6). . . . . . . . . . . 69.2 66.0

( 10680, 16140) W18 6>1>1>1(6). . . . . . . . . . . 63.5 60.4

( 26040, 22980) W18 8>1>1>1(6). . . . . . . . . . . 57.1 54.0

( 22200, 40020) W18 5>1>1>1(6). . . . . . . . . . . 54.6 51.5

( 24120, 51540) W18 10>1>1>1(6) . . . . . . . . . . 54.3 51.2

( 24120, 53700) W18 9>1>1>1(6). . . . . . . . . . . 54.3 51.2

( 24120, 63060) W18 1>7>1>1(6). . . . . . . . . . . 50.3 47.2

( 56760, 51180) W18 3>1>1>1(6). . . . . . . . . . . 12.1 9.6

( 62520, 55860) W18 4>1>1>1(6). . . . . . . . . . . 9.2 7.1

0006)

Источ:( 24360, 69480) Z3 1>23>4(3)

Прием:( 51000, 16140) W18 7>1>4>1(6). . . . . . . . . . . 65.4 62.3

( 16440, 14340) W18 6>1>4>1(6). . . . . . . . . . . 57.6 54.6

( 26040, 26220) W18 8>1>4>1(6). . . . . . . . . . . 54.2 51.2

( 24120, 38580) W18 5>1>4>1(6). . . . . . . . . . . 53.0 50.0

( 24120, 49380) W18 10>1>4>1(6) . . . . . . . . . . 52.9 50.0

( 24120, 56580) W18 9>1>4>1(6). . . . . . . . . . . 52.9 49.9

( 52920, 49380) W18 3>1>4>1(6). . . . . . . . . . . 37.6 34.6

( 52920, 57660) W18 4>1>4>1(6). . . . . . . . . . . 37.6 34.6

( 45240, 65940) W18 1>7>4>1(6). . . . . . . . . . . 31.0 28.0

0007)

Источ:( 18600, 69480) Z3 1>22>4(3)

Прием:( 49080, 16500) W18 7>1>3>1(6). . . . . . . . . . . 64.9 61.6

( 14520, 16140) W18 6>1>3>1(6). . . . . . . . . . . 58.9 55.7

( 26040, 25140) W18 8>1>3>1(6). . . . . . . . . . . 53.8 50.7

( 20280, 38580) W18 5>1>3>1(6). . . . . . . . . . . 49.2 46.1

( 20280, 49380) W18 10>1>3>1(6) . . . . . . . . . . 49.1 46.0

( 22200, 56580) W18 9>1>3>1(6). . . . . . . . . . . 45.0 41.8

( 54840, 50100) W18 3>1>3>1(6). . . . . . . . . . . 41.6 38.2

( 54840, 56580) W18 4>1>3>1(6). . . . . . . . . . . 41.6 38.2

( 43320, 65940) W18 1>7>3>1(6). . . . . . . . . . . 33.0 29.7

0008)

Источ:( 53640, 69480) Z3 1>21>4(3)

Прием:( 45240, 16140) W18 7>1>2>1(6). . . . . . . . . . . 56.9 53.4

( 10680, 17220) W18 6>1>2>1(6). . . . . . . . . . . 54.4 51.0

( 26040, 24060) W18 8>1>2>1(6). . . . . . . . . . . 48.1 44.7

( 20280, 39660) W18 5>1>2>1(6). . . . . . . . . . . 46.2 42.9

( 24120, 50460) W18 10>1>2>1(6) . . . . . . . . . . 45.4 42.0

( 24120, 55500) W18 9>1>2>1(6). . . . . . . . . . . 40.9 37.5

( 24120, 64140) W18 1>7>2>1(6). . . . . . . . . . . 27.7 24.6

( 54840, 51180) W18 3>1>2>1(6). . . . . . . . . . . 24.2 21.5

( 56760, 55860) W18 4>1>2>1(6). . . . . . . . . . . 23.9 21.2

0009)

Источ:( 33000, 69480) Z3 1>26>4(3)

Прием:( 37560, 16500) W18 7>1>7>1(6). . . . . . . . . . . 53.9 51.4

( 20280, 16500) W18 6>1>7>1(6). . . . . . . . . . . 50.1 47.7

( 24120, 27660) W18 8>1>7>1(6). . . . . . . . . . . 49.3 46.8

( 24120, 35580) W18 5>1>7>1(6). . . . . . . . . . . 49.3 46.8

( 22200, 49380) W18 10>1>7>1(6) . . . . . . . . . . 48.8 46.3

( 26040, 56580) W18 9>1>7>1(6). . . . . . . . . . . 44.7 42.3

( 51000, 52260) W18 3>1>7>1(6). . . . . . . . . . . 25.7 23.1

( 51000, 56580) W18 4>1>7>1(6). . . . . . . . . . . 23.4 20.9

( 49080, 65220) W18 1>7>7>1(6). . . . . . . . . . . 18.5 16.7

Г л а в а 5.

Расчет годового экономического эффекта от внедрения системы автоматического размещения элементов топологии матричных БИС.

Консультант_________Короткова Т.Л.