Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы конструирования.doc
Скачиваний:
358
Добавлен:
16.04.2013
Размер:
9.26 Mб
Скачать

Математическая формулировка задачи трассировки электрических соединений.

Исходными данными являются:

КС, конструкция плоскости, результаты размещения элементов.

Будем считать, что:

- все трассы прокладываются в одном слое;

- КС определяет подмножества непересекающихся множеств контактов Cp (p=1,2, .i,.., k), координаты которых заданы. Контакты каждого подмножества СрiCp в КС объединены электрическим соединением, т. е. цепью.

Требуется: соединить контакты цепей |таким образом, чтобы фрагменты различных цепей не пересекались и располагались друг от друга на расстоянии не меньшем заданного.

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

Пусть ячейки ДРП имеют форму квадратов, и через каждую ячейку xi X\X3 может проходить только одно соединение, где Х3—множество запрещенных для введения трасс ячеек ДРП. Каждой ячейке ДРП будет соответствовать вершина Gr = (Xr, Ur). Тогда любую цепь tf КС можно представить в виде ориентированного дерева Tf G (граф КС) с корнем в произвольно выбранной вершине xf (рис. ) Тогда дерево Tf можно рассматривать как объединение простых путей (xf, cf,1) U (xf, cf,2) U (xf, cf,3) U (xf, cf,4) U (xf, cf,5). Причем каждый (xf, cf,r) состоит из дуг uij = (xi, xj), которые соответствуют прохождению трассы из ячейки xi в соседнюю ячейку xj.

Введем псевдобулевы переменные

{

{

1, если дуга ui,j принадлежит пути (xf, cf,r);

i,jf,r =

0 в противном случае

Длина цепи будет выражаться числом покрываемых ячеек, т.е. вершин Gr, и определяться как

Lf = i,jf + 1,

где j Xj – множество ячеек, соседних с i и принадлежащих Xi\Xз;

i,jf = Ui,jf,r , где 1≤ rnf, nf = |T| - 1 – число вершин дерева.

На основе вышеизложенного, критерий трассировки записывается в виде:

L = Lf = i,jf + m

Для каждого пути (xf, cf,r) обычно задают следующие ограничения:

  • Из вершины xf выходит только одно ребро, принадлежащее пути,

  • В каждую вершину xf не должны заходить никакие ребра;

  • В вершины cf,r заходит единственное ребро из пути;

  • В вершинах cf,r нет выходящих ребер;

  • В любой вершине i  Xi\Xз не должно быть обрыва пути (xf, cf,r);

Для учета требований непересечения различных трасс вводятся ограничения:

i,jf =1.

Алгоритмы трассировки

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

Опишем основные принципы волнового алгоритма Ли.

1°. Плоскость трассировки (плата, кристалл) разбивается на прямоугольные площадки (дискреты) заданного размера. Размер дискретной площадки определяется допустимыми размерами проводников и расстояниями между ними. Задача проведения трасс сводится к получению последовательности дискретов, соединяющих элементы Xi, Xj, соответствующих выводам (контактам) элементов схем.

2°. Вводится весовая функция F=F(f1, f2,...., fr), которая является критерием качества пути, а fi, характеризует путь с точки зрения длины, числа пересечений, переходных отверстий, изгибов и т. п.

3°. Начиная с элемента xi, дискретам, соседним с ранее просмотренными, присваиваются определенные значения весовой функции F = mi. Этап 3° проводится итерационно и продолжается до тех пор, пока элементу хj не будет присвоено некоторое значение веса mj.

4°. Начиная от элемента хj, производится перемещение к элементу xi по пройденным дискретам таким образом, чтобы значения весовой функции дискретов убывали монотонно. В результате получается трасса, соединяющая элементы xi и хj.

Рассмотрим подробнее процесс проведения трассы из элемента хi, в элемент хj. На плоскости, где необходимо провести трассу, моделируется распространение волны из «источника» xi, до тех пор, пока фронт волны не достигнет «приемника» хj, или пока на k-м шаге фронт волны не поглотит ни одного незанятого дискрета. Отметим, что волна распространяется только по свободным дискретам. Эта часть алгоритма называется «распространение волны». Если после ее окончания достигнут элемент xj, то выполняется вторая часть алгоритма, называемая «проведение трассы». При распространении волны алгоритм последовательно, шаг за шагом строит 1, 2, ..., k-й фронт источника хi.

Процесс построения нового фронта начинается с присваивания дискретам, соседними с дискретами предыдущего фронта, весов mi + 1. Вес m(ik, jk), присвоенный дискретам k-гo фронта, на единицу больше веса дискретов (k— 1)-го фронта. Кроме веса mk, каждому дискрету k-го фронта приписывается путевая координата, определяющая дискрет, из которого в данный момент поступила волна. При проведении трассы следуют по путевым координатам, выполняя пункт 4° алгоритма.

На рис. показан пример соединения элементов хi, хj с помощью волнового алгоритма. Заметим, что существует несколько вариантов проведения пути, из которых ЭВМ или конструктор выбирает один, наиболее удовлетворяющий заданным критериям.

1 2 3 4 5 6 7 8 9

1

4

3

2

1

Xi

1

2

5

4

3

2

1

2

3

6

5

4

3

2

3

4

7

6

5

5

8

7

6

Xj

6

9

8

7

11

12

7

10

9

8

9

10

12

8

11

9

12


Р ис. Пример соединения ячеекXi, и Xj с помощью волнового алгоритма (Ÿ —свободная ячейка, - занятая ячейка, - соединяемые ячейки)

Для повышения быстродействия волновых алгоритмов предлагают:

1) одновременное распространение волны от двух соединяемых точек;

2) начало трассировки с точки, максимально удаленной от центра;

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

Рис.1 Рис.2 Рис. 3

Метод двойного Выбор начальной Метод обрамле-

разветвления по выходу точки волны ния

Для уменьшения объема требуемой оперативной памяти ЭВМ предлагается соблюдать условие: метки-предшественники должны отличаться от меток преемников. Это дает возможность использовать последовательность кодирования 1—1—2—2—1—1—2—2—1... Следовательно, для описания состояния любой ячейки фронта волны достаточно иметь два бита памяти ЭВМ.

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

В примере (см. Таблицу) требуемое число разрядов памяти на одну ячейку КП составляет {log2(L + 2)}, где L—максимальная длина пути на КП.