
книги из ГПНТБ / Штейн М.Е. Методы машинного проектирования цифровой аппаратуры
.pdfв |
котором |
максимальная длина |
связи (провода) |
от установки |
моду |
|||||||
ля Шгь в позицию |
pj7 равна |
9 (см. табл. 5.3.3). |
|
|
|
|
|
|||||
|
В соответствии с описанным выше правилом |
образуем |
матрицу |
|||||||||
С<г>, в которой все допустимые элементы с оценкой, большей |
или рав |
|||||||||||
ной 9, становятся |
недопустимыми, и в |
X ^ снова |
строим максималь |
|||||||||
ное множество независимых допустимых клеток |
(табл. 5.3.6). |
Полу |
||||||||||
чаем новое |
размещение |
|
|
|
|
|
|
|
|
|||
|
|
|
|
тити |
mi3mitmibmumi7milt |
|
|
|
|
|
||
|
|
|
|
Рп Pi\ Pit РиРиРйь Pie Pit |
|
|
|
|
|
|||
с |
максимальной |
длиной провода, равной 8 (от установки |
модуля |
mtb |
||||||||
в |
позицию Рц). |
Повторение |
итерации |
приводит к |
матрице |
СС), |
в ко |
|||||
торой вся |
строка |
mi5 содержит |
недопустимые |
элементы, |
т. |
е. |
||||||
z(r) < Ыг). И, таким образом, полученное размещение оптимально. |
|
|||||||||||
|
Модуль |
mi5 |
устанавливается |
в |
позицию рц, |
затем |
осуществ |
ляется трассировка цепей между контактами этого модуля и моду
лей, закрепленных в соответствующих |
позициях предыдущими шага |
|||||
ми алгоритма. Множество рабочих модулей и позиций |
сокращается, |
|||||
определяется новая вектор-строка |
в соответствии |
с новой |
||||
трассировкой, |
и алгоритм |
повторяется |
до тех пор, пока |
не |
останется |
|
ни одного |
неразмещенного модуля или же размещение |
оставшихся |
||||
модулей в |
свободные позиции будет |
недопустимым в |
соответствии |
|||
с (5.3.9). |
|
|
|
|
|
|
Укажем некоторые известные модификации алгорит |
||||||
мов последовательного размещения. |
|
|
||||
При описании системы автоматизированного |
проек |
|||||
тирования |
IBM/360 |
в задачах |
размещения |
Кейс П., |
Графф Г. и др. [11] рассматривают модули не как мате риальные точки, а как геометрические фигуры с коорди натами контактов, к которым осуществляется подсоеди нение цепи, что позволяет при подсчете длины цепи учи тывать эти координаты.
В ряде алгоритмов, например в [12], в критерий опти мизации вводится величина, учитывающая число связей
модуля с еще неразмещенными. В первую |
очередь |
||
закрепляются модули |
с меньшим |
числом таких |
связей. |
В алгоритме [6] |
при выборе |
следующего |
модуля |
используется разность числа связей ранее размещенных модулей с еще неразмещенными. Прежде всего устанав ливается модуль, имеющий минимальную разность. Размещение осуществляется в два этапа. На первом модули разбиваются на группы, которые могут разме
щаться в горизонтальных рядах. Далее |
осуществляется |
|||
последовательное |
заполнение позиций |
|
вертикальных |
|
рядов; при этом |
принадлежность |
модуля |
к |
горизонталь |
ному ряду сохраняется. Выбор |
каждого |
следующего |
||
122 |
|
|
|
|
модуля в группу (горизонтальный ряд) |
и на позицию |
при заполнении вертикальных рядов |
осуществляется |
с учетом разности числа связей размещенных с еще не размещенными модулями.
5.4. Алгоритмы, использующие силовые функции
В основе алгоритмов, использующих силовые функ ции, лежит механическая интерпретация задачи разме щения модулей как задачи движения материальных то чек (модулей) к положению равновесия при действии на них некоторых сил притяжения и отталкивания, кото рыми являются связи между модулями. При этом поло жение равновесия соответствует минимуму суммарной длины всех связей.
Для системы размещаемых модулей суммарную дли ну связей
где 1ц — расстояние |
между модулями |
и ms, |
можно |
считать потенциалом |
некоторой системы |
сил с |
обрат |
ным знаком, т. е. силовой функцией, а условие миними зации L интерпретируется как условие равновесия дан ной системы модулей (материальных точек).
Таким образом, минимизация L рассматривается как задача поиска равновесия системы материальных точек, способ решения которой заимствован из механики и заключается в решении дифференциальных уравнений движения этих точек с единичными массами под дей ствием рассмотренных сил. Однако для того чтобы дви жение системы к положению равновесия не преврати лось в незатухающее колебательное движение, нужно ввести еще силы трения, которые направлены в сторону,
противоположную |
скорости, |
и |
прямо пропорциональ |
|||
ны ей. |
|
|
|
|
|
|
Отметим еще |
одну |
особенность задачи |
размещения, \ |
|||
рассматриваемую |
как |
динамическую |
задачу механики: \ |
|||
так как нас интересуют координаты |
материальных то |
|||||
чек в положении |
равновесия, |
а |
не |
пути, |
проходимые |
системой к равновесию, то и вычислительные методы в связи с этим существенно упрощаются. Так, при при менении метода Эйлера для решения дифференциаль-
123
ных уравнений можно выбирать большой шаг, что со кращает число итераций, ускоряет вычисления.
В [13] размещение, использующее силовые функции, осуществляется в несколько этапов. Сначала размеща ются материальные точки (модули) на некотором услов ном поле позиций, для которого места закрепления модулей не фиксированы. Это, как правило, приводит к неравномерному размещению, т. е. на поле позиций возникают области большого скопления и, наоборот, разряжения точек. Полученное размещение использует ся в качестве начального приближения для решения задачи на втором этапе. Математически получение на чального приближения связано с решением системы линейных уравнений.
На втором этапе материальные точки подвергаются действию сил притяжения и отталкивания и приводятся в движение к положению равновесия. В равновесии достигается равномерность размещения точек на поле позиций. Как указывалось выше, решение задачи на втором этапе связано с решением системы обыкновен ных дифференциальных уравнений. И, наконец, в соот ветствии с установленным на втором этапе взаиморас положением материальных точек осуществляется их сдвиг в фиксированные позиции без существенного изме нения размещения предыдущего этапа.
Рассмотрим более подробно некоторые особенности предлагаемого в [13] алгоритма размещения.
Несмотря на то, что критерием оптимизации является суммарная длина всех связей, расстояние между моду лями trii и m.j в отличие от предыдущего равно
|
|
1ц = |
ац[{х1—Xj)2+ |
(yi—yj)2], |
(5.4.1) |
где (Xi, |
yi) |
и (Xj, |
r/j) — координаты указанных |
модулей |
|
в некотором |
размещении. |
|
|
||
Размеры модулей при этом не учитываются, т. е. |
|||||
каждый |
модуль |
принимается |
за материальную точку. |
В тех случаях, когда такое упрощение недопустимо, раз мещаются точки, которые являются центрами модулей. Кроме того, при размещении учитывается положение контактов выходных разъемов, через которые осущест вляется связь с модулями, расположенными на другом поле позиций. Как правило, эти разъемы располагают на внешней стороне поля позиций, и поэтому все точки, соответствующие контактам разъемов, будем называть
124
граничными. Часто проектировщики считают некоторые контакты фиксированными для специальных электри
ческих цепей, такие точки в дальнейшем будем |
называть |
||||||
фиксированными |
граничными. |
|
|
|
|
||
Итак, для |
размещаемых точек |
введем |
следующие |
||||
названия и обозначения: |
точек от 1 до д; |
|
|||||
— |
множество |
нефиксированных |
|
||||
— |
множество |
нефиксированных |
граничных |
точек |
от |
||
д + 1 до п; |
|
|
|
|
|
|
|
— |
множество |
фиксированных |
граничных |
точек |
от |
||
п+ 1 до N. |
|
|
|
|
|
|
|
Как правило, поле позиций имеет форму прямоуголь |
|||||||
ника |
R — bXd |
с |
координатами; О ^ х ^ б |
и |
0^,y^d. |
Позиции для установки модулей фиксированы в опре деленных местах прямоугольника R, поэтому некоторое множество координат фиксировано как установочные места для модулей. Поскольку модули в рассматривае мой модели представляются точками, то каждое уста новочное место представляется фиксированными коор динатами.
Получение начального приближения связано с мини
мизацией суммарной длины: |
|
|
|
|
|||
|
L = |
S S |
<Ы № |
~ *iY + (yt ~ УЛ |
(5-4-2) |
||
при условиях: |
0<Хг<Ь |
для |
l^t<T'<7; |
х* = 0 для |
<7+1<: |
||
s^is^n; |
0<tji<d |
для |
1 < ; я |
; |
Xi = au, |
г/г=р\ для |
я + К ; |
sO'^W, |
точка |
(at, Рг) задана |
и принадлежит R. |
|
Частные производные по всем нефиксированным точ кам, приравненные к нулю, дают систему линейных
уравнений, решение |
которой |
минимизирует |
(5.4.2): |
||
N |
|
|
|
|
|
I] |
aij(Xi |
— Xj) = 0, |
i = l , |
2,...,q, |
|
i. i = i |
|
|
|
(5.4.3) |
|
|
|
|
|
|
|
N |
Oijiyi — У}) = 0, |
i=l, |
|
n. |
|
2 |
2 |
I, ;'=l
Система уравнений (5.4.3) решается методом итера ций Зейделя. В [13] показано, что необходимым усло вием сходимости итераций является наличие хотя бы одной фиксированной точки для каждого компонента
125
связности. С другой стороны, минимизация (5.4.2) при одной фиксированной точке приводит к тому, что все остальные точки данного компонента связности совме щаются с фиксированной. Поэтому в каждом компонен те связности должны быть точки (как минимум две), фиксированные на противоположных границах прямо угольника. Как правило, одна такая точка имеется в каждой электрической цепи па разъеме. Другая же точка фиксируется искусственно, причем место ее фикса ции должно находиться как можно ближе к той границе прямоугольника JR, которая противоположна располо жению разъема.
Решение системы (5.4.3) дает размещение матери альных точек в прямоугольнике R без требования рав номерности. Однако это решение используется в качест ве исходной информации для второго этапа.
В основе размещения на втором этапе — аналогия движения материальных точек единичной массы под действием системы сил притяжения и отталкивания. Если две точки ( т и rtij) связаны между собой по элек трической схеме, то между ними действуют силы при тяжения
Рц=ацТ(т, |
т])=ацЛхи |
уи xjt у-). |
Для того чтобы размещаемые модули не совпадали, между ними вводится некоторая сила отталкивания
Фц = 9(пц, mj) = ?(.**, уи Xj, у-).
Кроме того, для каждого модуля вводятся аналогичные силы отталкивания от границ прямоугольника R:
Gi=~g(mi)=g(Xi, yt)
и силы так называемого сопротивления среды, пропор циональные скорости Vi движения материальной точки, kvu где k — некоторое положительное число.
Система дифференциальных уравнений
N N
Xi= 2 Oijfx(mi, / П ^ + |
Ц 9х(Шг, Tllj) |
+ |
/ = 1 |
/ = 1 |
|
+ gx(mi) — kxit |
i== 1, 2,... , q; |
(5.4.4) |
126
N N
Уг = |
2 <bifv (mi> Щ) + |
S Ь (m, |
Щ) + |
|
/ = 1 |
/ = 1 |
|
+ |
S T y — ktji, t = |
1, 2,..., |
n |
определяет движение нефиксированных точек к поло жению равновесия. Систему дифференциальных уравне ний при начальных условиях
|
Ъ(0) = х1°\ |
j^(0) = |
0, |
|
|
взятых из |
решения |
системы |
алгебраических |
линейных |
|
уравнений |
(5.4.3), на |
первом |
этапе |
решают |
итерацион |
ным методом Эйлера.
С вычислительной точки зрения наибольшие труд ности представляет решение системы дифференциальных уравнений (5.4.4). Здесь учет сил отталкивания требует значительного машинного времени, так как на любую материальную точку могут действовать силы отталки вания от остальных N—1 точек и, как показано в [13], это требует около qN арифметических операций. Поэто му для ограничения счета учитываются только те силы отталкивания, которые возникают между точками, на ходящимися от данной на расстоянии, не большем, чем заданное. Величина этого расстояния определяется
опытным |
путем. |
|
|
|
|
|
|
|
|
|
|
R |
Получив размещение |
модулей |
в |
прямоугольнике |
|||||||||
по уравнениям |
(5.4.4), осуществляют |
их |
сдвиг |
в |
фикси |
|||||||
рованные |
позиции, |
при |
этом |
минимизируется |
сумма |
|||||||
квадратов всех сдвигов. |
|
|
|
|
|
|
|
|
|
|||
Для |
(х{, уг)—координат |
|
размещенных |
точек |
и |
|||||||
(A], Bj)—координат |
фиксированных |
позиций |
сумма |
|||||||||
квадратов сдвигов |
равна |
|
|
|
|
|
|
|
|
|
||
S = |
(JC, — Ahf |
+ (у, - |
В}1)2 |
+ |
... + |
(*,_ |
Aj4y+ |
|
||||
|
|
|
i = l |
|
1=1 |
|
/ = 1 |
j = l |
|
|
|
|
- |
2 |
+ |
|
+ |
- + |
(*Им |
|
+ УяЩяЯ |
|
|
В работах [2, 14, 15] задача размещения решается аналогичными методами; при этом в каждом случае
127
силы притяжения и отталкивания определяются кон структивными и технологическими особенностями поля позиций.
Вообще алгоритмы данного типа, появившиеся ранее других, сейчас в машинном проектировании используют ся редко. Это объясняется и их плохой реализуемостью на ЦВМ, и необходимостью «округлять» результаты размещения, получаемые в непрерывных координатах. В цифровой аппаратуре задача размещения чаще всего должна решаться в целочисленных координатах.
Программист, выбирающий алгоритм размещения для системы машинного проектирования, должен пре жде всего проанализировать конструктивные и техноло гические особенности проектируемой аппаратуры и воз можности используемой ЦВМ.
5.5. Размещение с учетом ограничений трассировки
(алгоритм размещения цепей)
Как уже указывалось, учет ограничений трассировки составляет в задачах размещения наибольшую пробле му. Особенно важной эта проблема оказалась при про ектировании аппаратуры с печатным монтажом. Ограни чения трассировки формулируются по-разному в зависи мости от технологии производства печатных плат. Автору удалось сформулировать такие ограничения для плат со сквозными металлизационными отверстиями.
Ниже описан вариант задачи размещения модулей, учитывающего эти ограничения; приведены математиче ская модель, более точно в сравнении с ранее изложен ными постановками, представляющая соединения, и алгоритмы решения задачи.
В работе [17] указано, что задача трассировки явля ется комбинаторной с несколькими упорядоченными друг относительно друга критериями оптимизации. В со ответствии с этими критериями прежде всего решаются следующие задачи:
а) максимизация числа проложенных трасс для за данной схемы соединений и заданного ресурса печатных проводников на плате;
б) построение для каждой электрической цепи свя зывающей ортогональной сети, содержащей минималь ное число различных печатных магистралей.
128
В печатных платах магистрали чаще всего представ ляются ортогональными сетями, модули размещаются в фиксированных позициях на плате, а контакты моду лей попадают в узлы указанной сети.
Из сказанного должно быть ясно, что для улучшения решения задач а) и б) требуется размещение модулей, обеспечивающее на плате наиболее простую конфигура цию возможно большего количества цепей. Иными словами, необходимо решать задачу размещения не
модулей, а |
цепей, и учитывать |
при этом конфигурацию |
||||||
последних. |
Так |
как |
наиболее |
простой |
конфигурацией |
|||
цепи, представляемой |
в |
ортогональной |
сети, |
является |
||||
прямая, параллельная |
одной из |
осей |
координат |
(X, У), |
||||
то содержательно |
задача |
размещения, |
наилучшим обра |
зом удовлетворяющего требованиям трассировки, может быть выражена следующим образом. Необходимо полу
чить |
размещение модулей, |
обеспечивающее |
максималь |
|||||||||||||
но |
возможное |
число линейно |
расположенных |
|
цепей, |
|||||||||||
ориентированных вдоль краев платы. Среди эквивалент |
||||||||||||||||
ных по числу линейных цепей можно выбрать размеще |
||||||||||||||||
ние, минимизирующее суммарную их длину. |
|
|
|
|
||||||||||||
|
Введем основные понятия и предложения. Регуляр |
|||||||||||||||
ную |
сеть r Gp |
= |
[Vp ; |
Лр ], |
дуги |
{аР 1 , |
я Р 2 , а р |
? } — Av |
ко |
|||||||
торой |
суть |
только |
взаимно перпендикулярные |
прямые, |
||||||||||||
а |
узлы |
jt»Pl , |
у |
Р 2 , ... ,vpJ |
= |
Vv |
'расположены в |
фиксирован |
||||||||
ных |
точках |
|
плоскости |
XOY, |
|
назовем |
ортогональной |
|||||||||
реализующей сетью или просто реализующей сетью. |
||||||||||||||||
Реализующая сеть представляет систему проводящих |
||||||||||||||||
магистралей |
(проводников) |
печатной платы, |
|
|
|
|
||||||||||
г |
CeTbr Gc '=[Vc ; Ас], |
узлы |
{uC l , t>C 2 ,... ,vcJ |
= |
Vc |
которой |
||||||||||
сопоставлены |
контактам |
модулей, |
а дуги {ас\, |
аС2, |
..., |
|||||||||||
...,асЪ} |
|
— Ас — электрическим |
соединениям |
|
между |
|
соот |
|||||||||
ветствующими парами контактов, назовем сетью соеди |
||||||||||||||||
нений. Эта сеть представляет схему соединений устрой |
||||||||||||||||
ства, расположенного на одной печатной плате. Мно |
||||||||||||||||
жество узлов MCk = {vc}mj<= V0 |
сети соединений, представ |
|||||||||||||||
ляющих контакты одного модуля /и,, назовем |
С-моду- |
|||||||||||||||
лем. Размещенным модулем назовем множество |
узлов |
|||||||||||||||
Mpk |
= |
{vp}ejC:Vv |
|
реализующей |
сети, |
взаимно |
однозначно |
|||||||||
сопоставленное |
С-модулю MCk |
|
при |
размещении |
модуля |
|||||||||||
rrij |
в |
позицию |
р е платы. Относительное взаимное |
распо |
||||||||||||
ложение узлов |
одного размещенного модуля не меняет |
|||||||||||||||
ся |
при |
любом |
расположении модуля т , - на |
плате. |
|
|
9^-230 |
W |
Подсеть |
fi=\[{vc}n; |
{ас}ц] |
сети соединений |
Gc , |
|
fiCzGc, |
{vc}ficzVc, |
{ac}ficzAc, |
(5.5.1) |
все узлы |
Vi^{vc}fi |
которой |
представляют |
контакты, |
объединяемые только одной электрической цепью п*, назовем связывающей цепью. Так как различные элек трические цепи не связаны друг с другом, то каждая
связывающая цепь |
соответствует |
одному |
из |
компонен |
||
тов связности сети соединений. |
|
|
|
|
||
Поскольку каждый из узлов Vi^{vc}fi |
цепи U |
при |
||||
надлежит также какому-либо С-модулю, |
Vi^Mki, |
то |
||||
можно говорить, что цепь fi |
связывает множество {Mh}i |
|||||
С-.модул ей. |
|
|
|
|
|
|
Цепи fi и /,-, множества |
объединяемых |
С-модулей |
||||
которых совпадают, |
{Mh}i = {Mh}j, |
назовем |
кратными. |
|||
Подсеть di=[{vp}di; |
{av}di] реализующей |
сети, |
|
|||
didGp, |
{vp}diczVp, |
|
{ap}diczAv, |
|
(5.5.2) |
все узлы которой представляют контакты, объединяемые только одной электрической цепью щ, обычно называют связывающим деревом для щ. Дерево d\ является одним
из возможных |
представлений |
связывающей |
цепи /, |
в реализующей |
сети. |
|
|
Введем ряд понятий, характеризующих свойства це |
|||
пей и расположение деревьев в реализующей |
сети. |
||
Две цепи |
и fj назовем независимыми, если они свя |
||
зывают узлы только различных |
С-модулей: |
|
|
|
Vj<={vc}fj, |
Vj^{Mk}j; |
|
|
{МъЬГ\{МнЪ = Л. |
(5.5.3) |
|
Аналогично |
два дерева d% и dj назовем независимы |
ми, если они представляют независимые цепи, т. е. свя зывают узлы только различных С-модулей:
|
Vi^{vp}di, |
|
Vi^{Mh}i; |
|
|
{Mh}iC[{Mh}j |
= A. |
(5.5.4) |
|
Цепи fi и fj |
(и соответственно |
деревья d\ и dj), |
среди |
|
узлов которых |
по крайней |
мере |
два (i>j, Vj) принадле- |
130
жат одному С-модулю:
|
Vi^{Mk}u |
VjGE{Mk}j, |
|
|
|
|
{Mh}{ |
П {Мк}}ф\, |
(5.5.5) |
||
назовем |
зависимыми. |
|
|
|
|
Дерево d"i, все |
связываемые С-модули |
которого |
|||
Mha{Mh}"i |
расположены |
в реализующей сети |
вдоль |
ли |
|
нии, параллельной одной из координатных |
осей |
(ОХ |
|||
или OY), |
назовем линейным. В этом случае можно |
так |
же говорить о линейной реализации дерева di. В против ном случае будем называть дерево нелинейным.
Два |
линейных дерева d"i и d"j, |
расположенные |
|
в реализующей сети вдоль разных координатных |
осей |
||
(ОХ или |
OY), назовем ортогональными |
(di±dj). |
Ука |
занные свойства деревьев трансформируются в экви валентные свойства связывающих цепей.
Рассмотрим теперь некоторые свойства названных типов деревьев и соответствующие свойства цепей в за висимости от способа расположения первых в реали зующей сети.
Назовем показателем сложности (или просто слож ностью) дерева количество входящих в него различных магистралей реализующей сети. Нижней оценкой слож ности дерева назовем сложность простейшего [17] дере ва, построенного без учета «конкуренции» различных деревьев за ресурс магистралей реализующей сети или при бесконечном (достаточном) ресурсе. Под слож ностью расположения в реализующей сети некоторого множества С-модулей будем понимать число различных рядов позиций, занятых всеми С-модулями указанного множества. Примем без доказательства, что сложность какого-либо дерева есть простая функция (например, линейная) от сложности расположения множества С-мо дулей, объединяемых соответствующей этому дереву цепью. Из этого непосредственно следует
Лемма. Нижняя оценка сложности линейной реали зации какого-либо дерева di не более соответствующей оценки любой нелинейной реализации dt.
Наиболее важное для рассматриваемой задачи свой
ство линейных деревьев |
выражает |
Т е о р е м а 5.5.1. Если |
существует размещение модулей, |
делающее линейными все деревья заданного множества,
то при достаточном ресурсе (магистралей) |
реализую- |
9* |
131 |