Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Штейн М.Е. Методы машинного проектирования цифровой аппаратуры

.pdf
Скачиваний:
13
Добавлен:
24.10.2023
Размер:
11.13 Mб
Скачать

вательных методов осуществляется при убывающем ре­ сурсе печатных магистралей исходной реализующей сети (см. § 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.

Понятие пути также об­

щеизвестно

[13]. Завершенным назовем путь 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

Соседние файлы в папке книги из ГПНТБ