книги из ГПНТБ / Штейн М.Е. Методы машинного проектирования цифровой аппаратуры
.pdfвательных методов осуществляется при убывающем ре сурсе печатных магистралей исходной реализующей сети (см. § 5.5). Для сложных схем соединений практически при любом размещении модулей участки платы, на кото рых расположены различные цепи, перекрываются. Это приводит при трассировке к неизбежной «конкуренции» цепей за ресурс магистралей. В этих условиях задача оптимального распределения ресурса магистралей между цепями приобретает важное значение; при использовании последовательных алгоритмов трассировки она сводится к задаче оптимального упорядочения цепей. Качество решения этой задачи при ограниченном ресурсе маги стралей во многом определяет качество (9.1.6) трасси ровки в целом.
Попытки решения этой задачи при . использовании численных методов оптимизации, основанные на оценках длины цепей, по мнению авторов таких исследований, не дали положительных результатов [8].
Подход, основанный на максимизации числа трасси руемых цепей, позволяет представить следующую не сложную содержательную модель задачи упорядочива ния.
Главной целью оптимального упорядочивания цепей является определение степени «привязанности» каждой цепи к части реализующей сети, включающей все кон такты этой цепи. Различия в конфигурации и относитель ном расположении отдельных цепей обуславливают и различную «привязанность» последних к соответствую щим частям реализующей сети. И действительно, цепь /г, расположенная в малой части }ц реализующей сети и перекрываемая большим числом других цепей, должна трассироваться при большем ресурсе магистралей (т. е. ранее), чем цепь fj, расположенная в большей части hj (например, в hjChi), так как если ресурс hi будет из расходован другими цепями, то связывающее дерево di для fi будет включать большее число магистралей. Инымк словами, главной целью оптимального упорядочива ния является обеспечение для каждой цепи достаточного ресурса магистралей и, с другой стороны, минимально возможное уменьшение ресурса для последующих цепей.
Можно представить различные формальные модели, более или менее хорошо обеспечивающие достижение указанной цели. Главные трудности программной реали зации задачи упорядочивания составляют обеспечение
242
хорошей реализуемости «а ЦВМ и малой зависимости от конструктивно-технологических ограничений печатной
платы. Наилучшим, |
по мнению |
автора, образом |
эти |
||
трудности учитывает |
следующий |
алгоритм, |
основанный |
||
на подсчете для каждой щели коэффициента |
«конкурен |
||||
ции», |
определяющего |
перекрытие |
ее с другими цепями. |
||
При |
этом принимается априори, |
что перекрытие |
цепей |
достаточно точно определяется перекрытием минималь ных охватывающих эти цепи прямоугольников. Алгоритм работает следующим образом.
Каждая |
электрическая |
цепь и соответствующая |
ей |
||
компонента |
связности {/-}, оценивается |
коэффициентом |
|||
«конкуренции» Ки |
|
|
|
|
|
|
Ki = 2ktj, |
|
j^{N\i} |
(9.2.1а) |
|
|
|
|
|
(9.2.16) |
|
|
|
|
|
(9.2.1в) |
|
|
|
|
|
(9.2.1 г) |
|
где а и р — положительные |
числа, |
a gi, |
gj — минималь |
||
ные для компоненты {r}itj |
подсети |
сети |
G={V; А], |
т. е. |
подсети, заключенные внутри прямоугольника минималь ных размеров, но такие, что все узлы {г}г, [r}j при надлежат gi и g3:
(9.2.1д)
Коэффициенты kij подсчитываются для всех возможных пар цепей и для каждой цепи суммируются. О цепи, обладающей максимальным Ki, можно сказать, что она расположена в максимально насыщенном соединениями участке платы и, естественно, должна трассироваться ранее других (при максимальном ресурсе печатных маги стралей). Таким образом, упорядочив все цепи по убы ванию величины Ки можно по мере расходования ресур са печатных магистралей трассировать цепи, располо женные во все менее насыщенных участках платы.
Экспериментальным подбором значений а и р для каждой конкретной конструкции печатной платы можно добиться максимизации числа трассируемых цепей.
Для лучшего учета конструктивно-технологических особенностей платы формульная схема подсчета значе ний Ki (9.2.1) может (быть усложнена введением вместо величин кц, а 'И р их составляющих по осям координат
16* |
243 |
kijX, kijy и т. д. Это, как показывает опыт, позволяет для каждой конкретной конструкции платы подбором назван ных величин добиться увеличения числа трассируемых цепей. Описанная методика упорядочивания цепей была экспериментально исследована на большом числе схем для нескольких различных конструкций плат и во всех случаях позволила заметно увеличить количество трас сируемых цепей в сравнении с упорядочиванием цепей по их длине, по величинам полупериметра охватывающе го прямоугольника или даметра охватывающей окружно сти и т. п, показателям. Следует также отметить, что указанная методика и способ оценки «конкуренции» це пей являются довольно грубым приближением к истин ной картине, но их хорошая реализуемость на ЦВМ и вполне приемлемые результаты делают такое решение задачи упорядочивания весьма полезным в системах ма шинного проектирования печатных плат.
9.3. Минимальная связность и простейшие
связывающие деревья
Как уже указывалось, центральной задачей трасси ровки является построение в ортогональной сети для за данного множества основных узлов простейшего связы вающего дерева. Автором было показано (12], что при использовании некоторых булевых свойств ортогональ ных сетей и специальных булевых функций связности эта задача существенно облегчается и, более того, оказыва ется возможным получить точный алгоритм ее решения. Сначала введем необходимые определения и докажем
основные |
предложения для связывающих |
деревьев |
|
в обычных сетях |
(неортогональных). |
|
|
Понятие |
узла |
сети используется достаточно |
широко |
и общеизвестно. Напомним несколько менее употреби тельные понятия внешнего и внутреннего узлов. Внешним
называется узел |
Vi, степень |
которого в точности равна |
|
единице |
%Vi=\. |
Внутренним |
называется узел Vj, степень |
которого |
не менее двух KVj^2. |
Понятие пути также об |
щеизвестно |
[1—3]. Завершенным назовем путь lvu все |
|
внутренние |
узлы которого имеют степень 2, |
|
* „ t = 2 , |
i^[{l,2,...,i,...,n}\{l,n}], |
244
а конечные — либо являются основными, либо внешни ми, либо имеют степень, не меньшую 3:
(9.3.1а)
(9.3.16)
(9.3.1в)
Заметим, что завершенный путь lv по определению не может содержать внутренних узлов типа (9.3.1а) и (9.3.1в). Путь, содержащий такие внутренние узлы, бу дем считать состоящим из нескольких завершенных пу тей. Незавершенным путем будем называть любую часть l'v = {au, ..., aih} завершенного пути /„ = {ai, ..., ап}, кро ме него самого,
1)> a * j G K ап].
Внешним назовем завершенный путь, заканчивающийся (начинающийся) внешним узлом.
Узел типа (9.3.1в) будем называть внутренним кон цом внешнего пути. Сеть Gn, не содержащую ни одного
внешнего пути, назовем циклической, а часть |
Я ч сети |
|
G={V; |
А], полученную удалением из нее всех внешних |
|
путей |
(без их внутренних 'концов) —циклической |
частью |
сети. |
|
|
Звездой назовем множество завершенных путей, схо дящихся в одном внутреннем узле.
Понятие связывающего все узлы сети дерева — осто ва известно [1—3]. Под связывающим заданные основные узлы деревом будем понимать подсеть, удовлетворяю щую известным характеристическим свойствам дерева [1] обязательно для всех основных узлов и для необхо димого количества дополнительных, т. е. для множеств
узлов, определяемых соотношениями |
(9.1.56) — (9.1.5д). |
|||
Безызбыточным назовем |
дерево, связывающее все основ |
|||
ные узлы |
rj заданной |
компоненты |
связности |
r^{r}i |
[условия |
(9.1.56) — (9.1.5д)] и теряющее связность между |
основными узлами при удалении из него любой дуги.
Сформулированная выше задача построения простей шего связывающего дерева является задачей-минимум. Иногда ее решения недостаточно для хорошей трассиров ки печатных плат с учетом конкретных конструктивнотехнологических ограничений. Поэтому она может быть расширена следующим образом:
17—230 |
245 |
—построить все простейшие деревья для заданной компоненты связности {г};, удовлетворяющие условиям (9.1.5); или даже
—построить все безыэбыточные деревья для {г},. Решение всех модификаций названной задачи может
быть основано -на представлении ортогональных сетей специальными булевыми функциями связности и конст руктивном .использовании их свойств.
Рассмотрим следующее вспомогательное утверждение.
Лемма 9.3.1. Никакая часть l'v^{aiu |
..., ai f e } любого |
|||||
завершенного пути /„ = {а], ..., а„), |
|
|
||||
|
IVzdI'V, |
a;je={ai, . . . , ап}, |
|
|
||
кроме него самого, не может принадлежать |
безызбыточ |
|||||
ному связывающему дереву d,-. |
|
|
|
|||
Д о к а з а т е л ь с т в о . |
Пусть |
/'„ — часть |
некоторого |
|||
завершенного |
пути lv |
— принадлежит |
безызбыточному |
|||
связывающему |
дереву |
dit |
а /„ — дереву di не принадле |
|||
жит. /'„ может |
принадлежать di |
только |
в случае, если |
он обеспечивает связность хотя бы одного основного узла г,- с остальной частью дереза (непосредственно или через дополнительные узлы). Это значит, что либо
а) |
l'v |
включает |
один из основных |
узлов |
г^{г},', |
либо |
l'v |
|
|
|
|
б) |
включает |
дополнительные |
узлы, |
связанные |
|
с другими путями, включающими основные узлы. |
|||||
Заметив, что из |
определения незавершенного пути |
следует, что хотя бы один конец части l'v не удовлетво ряет условиям (9.3.1), перейдем к рассмотрению указан
ных случаев. |
|
|
|
|
|
а) Здесь г,- будет |
одним концом |
части |
так как |
||
в противном случае l'v |
был бы двумя частями двух |
раз |
|||
личных |
завершенных |
путей. Тогда |
второй |
конец |
части |
l'v имеет |
степень X»t = |
2, а это означает, что для обеспе |
чения связности г, с остальной частью дерева di к 1\
необходимо добавить дугу аци+ц, ai(k+i) |
ф. l'v, |
a^k+i^lv, |
|||
и т. д. до тех пор, пока |
конец наращиваемой |
части l'v |
|||
не совпадет с узлом |
типа |
(9.3.1), т. е. пока |
/'„ не совпа |
||
дет с /„. |
|
|
|
|
|
б) Аналогичным |
образом мы придем |
к |
необходимо |
||
сти удлинения части /'„ для обеспечения |
связности меж |
ду основными узлами до тех пор, пока концы его не ста-
246
кут дополнительными узлами со степенью X«i, n >3, т. е. |
||||
пока l'v не совпадет |
с /„. |
завершенный путь lv = {ai, |
..., |
|
Таким |
образом, |
любой |
||
ап) может |
принадлежать |
(или не принадлежать) |
без |
убыточному дереву di только полностью (всеми входя щими в него дугами).
Следствие 9.3.1. Любое безызбыточное дерево dt мо жет состоять только из набора связных завершенных путей.
Введем специальные булевы переменные, функции и операции связности. Независимой переменной связности назовем булеву переменную xit сопоставленную каждой дуге at сети G = [ l / ; А] и равную единице, если а, вклю чается в множество связывающих основные узлы дуг, и
нулю — в |
противном случае. Функцией |
связности |
|
Fc{rj) |
{xj, |
заданной для множества основных узлов |
|
|
назовем булеву функцию от множества |
независи |
|
мых |
переменных связности {ха}, обращающуюся в еди |
||
ницу, |
если |
соответствующее множество дуг {аа} |
обеспе |
чивает связность между любой парой основных узлов
/'j,fee{r}j, и в пуль — в противном |
случае. |
|
||||
Операцией последовательной |
(конъюнктивной) связ |
|||||
ности © |
(или О) |
назовем двуместную операцию |
над |
|||
двумя независимыми переменными |
связности Xi и х2, |
ре |
||||
зультатом |
которой |
будет |
единица, |
только если дуги ai |
||
и й2 .инцидентны одному |
узлу. Запись О {хг} будем |
по |
нимать в том смысле, что операция конъюнктивной связ ности даст единицу лишь для пар Хц, x,fc^{*i} перемен ных, соответствующих парам инцидентных одному узлу
дуг aih aih.
Операцией параллельной (дизъюнктивной) связности Q) назовем многоместную операцию над множеством не зависимых переменных Q) {*;}, результатом которой бу дет единица, если любая из дуг а^{а^ обеспечивает связность некоторого фрагмента сети с остальной ее частью.
Используя введенные понятия, определим основные
принципы связности в сетях. |
|
|
|
П1. Каждой дуге |
ai сети сопоставляется |
переменная |
|
СЕЯЗНОСТИ Xi. |
..., ап) |
|
|
П2. Пути /„ = {ai, |
в сети сопоставляется мно |
||
жество переменных связности (конъюнктивный терм) |
|||
|
Q f o , |
...,хп}, |
(9.3.2) |
17* |
247 |
объединенных операцией конъюнктивной связности. Ё со ответствие с леммой 1 завершенному пути lv = {au • •., ап} вместо множества переменных О {хь ..., хп} сопостав ляется одна обобщенная переменная связности Xv =
= Q{xit |
..., Хп}. |
{щ} |
(или |
завершенных путей |
|
ПЗ. Множеству дуг |
|||||
{lVi}), |
каждая из которых связывает |
некоторый |
фрагмент |
||
сети с остальной ее частью, |
сопоставляется |
множество |
|||
переменных связности |
© |
объединенных |
операцией |
||
дизъюнктивной связности. |
|
|
|
Сформулируем теперь правила образования функций связности, основанные на принципах связности П1—ПЗ.
A. В заданной минимальной подсети gi выделяются все завершенные пути и каждый из них заменяется одной дугой. Всем таким путям сопоставляются в соот ветствие с принципом П2 переменные связности.
Б. В видоизмененной таким образом сети для каждого основного узла последовательно строятся связные фраг менты. За один очередной шаг к такому фрагменту при соединяются только дуги, инцидентные узлам, вошедшим в фрагмент на предыдущем шаге. Одновременно в соот ветствие с принципами П1 и ПЗ для каждого фрагмента образуются функции связности, которые в дальнейшем мы будем называть частичными: операцией дизъюнктив ной связности объединяются переменные, соответствую щие присоединенным к фрагменту на очередном шаге дугам; частичные функции для всех фрагментов объеди няются операцией конъюнктивной связности. Такую функцию, полученную для всех фрагментов на i-u шаге, будем называть частичной функцией связности t-ro по
рядка. |
|
B. Правило Б применяется до |
тех пор, пока в сети |
gi не останется ни одной дуги, не |
присоединенной к ка |
кому-либо фрагменту; при этом последние заведомо все
объединятся. |
|
|
|
Г. Частичные |
функции |
связности 1-го — п-го |
поряд |
ков, полученные |
на всех |
п шагах, объединяются |
опера |
цией конъюнктивной связности. Будем называть такую функцию полной функцией связности.
Д. Дуги, присоединенные к какому-либо фрагменту (фрагментам) на одном шаге, не могут присоединяться к другим фрагментам на последующих шагах. Исключе ние составляет последний шаг, когда вместе с последней, еще не присоединенной дугой, соединяющей какие-то два
248
фрагмента, к ним присоединяются и все другие дуги, соединяющие эти два фрагмента, «о we вошедшие в них (в другие—может быть) на предыдущих шагах. При меняя правила А — Д к заданной сети, получаем одно значно соответствующую ей полную функцию связности Fc. Раскрывая все скобки в выраже
нии для функции, т. е. объединяя все возможные множества переменных операцией конъюнктивной связности (будем условно называть эту процеду ру приведением Fc к д. н. ф. связно сти), можно получить все безызбыточ ные наборы переменных связности, со ответствующие связывающим деревьям для заданного множества основных вершин { r j . Прежде чем переходить
к описанию указанной процедуры, рассмотрим пример получения Fc для сети, приведенной на рис. 9.3.1.
Пример. Задана сеть |
рис. 9.3.1 и |
основные |
узлы на |
ней |
(Л, |
|
В, С). |
Эта сеть получена |
из какой-то |
другой сети |
заменой |
всех |
за |
вершенных путей дугами. Для упрощения будем обозначать послед ние символами соответствующих переменных связности (дуга «а» — переменная «а»). Применяя правило Б, на первом шаге получаем фрагменты для узлов Л, В и С и соответствующие им функции связ ности
fcA = a ® b Q c , f^B^aQeQd, |
fcC=-cQ)g. |
Частичная функция связности 1-го порядка, полученная на пер |
|
вом шаге, имеет следующий вид: |
|
f o i = 0 [ ( « © 6 © c ) , (aQjeQd), |
(cQg)]. |
После первого шага не включенной пи в один из фрагментов останется дуга f, связывающая фрагменты для Л и В. В соответствие с правилами В, Г и Д дуга f и вместе с ней d (включенная ранее в фрагмент для В) должны быть включены в фрагмент (Л, С). При этом
а полная функция связности для узлов А, В, С принимает вид:
Fc |
(А.В.С) = |
О {fau fe.} = О { 0 |
\{а Q Ъ Q с), |
|
|
(aQeQd), |
(cQg)], |
(fQd)}. |
|
Приведение |
F c < A , В , о |
К |
Д . Н . ф. связности |
осуществляется в точном |
соответствии с определениями операций конъюнктивной и дизъюнк
тивной связности и с использованием операции поглощения |
(aQ)ab = |
= а) и ряда других операций (например, aQa=a и т. д.), |
имеющим |
однако некоторые особенности, вызванные несоответствием функций связности и указанных операций общеизвестным булевым функциям
249
и операциям над ними. Приведение начинается раскрытием всех вну тренних скобок, т. е. выполнением операций конъюнктивной связности В частичных функциях связности 1-го — re-го порядков.
fci-0[(a®6® |
|
с), |
(а®е®dj, |
|
|
|
|
(с®д)]=аас®аад® |
||||
® |
аес® |
аед® |
adc® |
adg® |
bac ® bag® |
bee® |
beg® |
bde® |
||||
®bdg® |
cac®cag® |
|
cec ® |
сед® |
cde® |
cdg=a£® |
ag® |
|||||
©лет® |
a eg ®jHfc® |
|
adg |
® ь<?с |
® bag® |
bee® |
beg® |
bde® |
||||
® |
bdg®jce-®jceg® |
|
|
се ® сед ® cd® |
cdg. |
|
|
|||||
|
Термы foi, обращающие |
в |
единицу |
полную функцию |
связности |
|||||||
F С |
( А , в, с), сразу |
включаются |
в д. н. ф. связности FC(A, В, С>). Все |
|||||||||
термы, поглощаемые |
включенными в д. н. ф. термами, |
вычеркиваются |
||||||||||
из fci и в дальнейших |
преобразованиях |
не участвуют, |
так как соот |
|||||||||
ветствующие деревья |
уже не могут |
быть |
безызбыточными. |
|
Операция поглощения не можег применяться к термам, соответ ствующим несвязным подсетям, так как при включении в такие термы переменных из последующих частичных функций связности может образоваться терм, соответствующий связному фрагменту.
Все оставшиеся термы fC\ дополняются с помощью операции конъюнктивной связности переменными (не более одной из любой дизъюнкции связности из fci, t = 2, ..., ft) до получения термов, обра щающих FC(A, в, с)) в единицу. В рассматриваемом примере получим
fc{A,B,c)=ac®adg® |
|
bee® |
|
|
cdg®Q[fag®aeg®bag® |
|||
® |
beg® |
bde® bdg®ce®ceg®cd), |
(f |
® d)]= |
ac®adg® |
|||
® |
bee® |
cdg®0fd® |
aegf |
® |
|
aegxT®bagf®Ъ<гдтГ® |
||
® |
begf |
® begd® |
bdef® |
bdgf® |
cegf |
®-cegd; |
|
|
Fc(A,B7o=ac®agd® |
|
bec®cdg® |
aegf®8agf® |
begf® |
||||
® |
begd® |
bdef® |
bdgf |
® |
cegf. |
|
|
|
|
Из -приведенного |
примера |
видно, |
что в процессе по |
строения д. н. ф. связности перебираются все возможные наборы переменных, но включаются в нее только те, ко торые соответствуют безызбыточным связывающим де ревьям. Причем все избыточные деревья обязательно по глощаются одним из безызбыточных.
Рассмотренные процедуры и функции связности могут применяться для построения безызбыточных (в том числе и минимальных) связывающих деревьев в обычных не направленных сетях без циклов. Рассмотрим еще две теоремы, определяющие дополнительные упрощения про цедуры построения безызбыточных деревьев.
250
Теорема 9.3.1. Внешний путь / * в н |
сети |
G=[V; |
А], со |
|||||
держащий |
хотя бы |
один |
основной узел |
r*j^{r}it |
войдет |
|||
в любое |
безызбыточное |
связывающее |
дерево |
dik |
для |
|||
(;}г ('подмножеством своих дуг, соединяющих r*j |
с |
Я ц — |
||||||
циклической частью G=[V; |
А]). |
|
|
|
|
|
||
Содержательно |
справедливость |
этого |
утверждения |
очевидна. Некоторые пояснения, вероятно, требуются 'при
рассмотрении |
соответствующей |
функции |
связности |
|
РС(Г}) для Tje{r}j . |
Из определения функции |
связности |
||
следует, 'что |
в нее |
обязательно войдет по крайней мере |
одна из переменных, соответствующих дугам, инцидент
ным любому основному узлу |
r , e { r } j . |
|
|
|
|
||||||
Отсюда и |
из принципа П2 |
следует, |
что |
в функцию |
|||||||
Fc(rj) |
войдет конъюнктивный |
терм |
0 { д : } * в я |
вида (9.3.2), |
|||||||
переменные |
которого |
соответствуют |
дугам |
пути |
/ * в н , |
||||||
соединяющего г*э- |
с |
узлом |
v.b |
степени |
Я и |
5 > 3 ( и / 5 ^ Я Ц |
|||||
сети G = [V; |
А] по определению). Ясно, что любой терм, |
||||||||||
обращающий |
Fc(r^) |
в единицу, должен |
содержать 0 { х } * / в я . |
||||||||
Теорема |
9.3.2. |
Внешний |
путь |
/ в я |
(без своего |
внут |
|||||
реннего конца vjb), |
не содерл<ащий основных узлов, не |
||||||||||
войдет |
ни в |
одно |
безызбыточное |
дерево |
d*i. |
|
|
Действительно, пусть в функцию Fc (г-;) включен терм О W;BH вида (9.3.2), соответствующий такому пути. Лю бая переменная хи входящая в этот терм, соответствует дуге, неинцидентной ни одному из основных узлов (это следует из принципа П2). Следовательно, значение
функции Рс(Гг) |
не изменится при любых значениях |
переменных |
О {л:}(Вн; такие переменные, как известно |
[9], являются абсолютно избыточными и могут быть ис ключены из функции Fс (г,).
Учитывая сказанное выше, можно алгоритм построе ния множества всех безызбыточных деревьев предста вить следующим образом.
I . Из заданной подсети gi исключаются все внешние пути. Те из них, которые содержат хотя бы один основ ной узел, сразу включаются во все безызбыточные де ревья. Основной узел переносится при этом во внутрен ний конец исключенного пути. Внешние пути, не содер жащие ни одного основного узла, просто отбрасываются (без своих внутренних концов) и «а последующих шагах алгоритма не рассматриваются.
I I . По правилам А — Д для полученной циклической части сети gi образуется функция связности, которая за-
251