РУБРИКИ |
Алгоритмы трассировки |
РЕКОМЕНДУЕМ |
|
Алгоритмы трассировкиАлгоритмы трассировкиМИНИСТЕРСТВО ОБРАЗОВАНИЯ УКРАИНЫ ВОСТОЧНОУКРАИНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СЕВЕРОДОНЕЦКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ РЕФЕРАТ на тему: "Алгоритмы трассировки " |Руководитель: |Исполнитель: | г. Северодонецк 2000 г Введение В настоящее время используются различные варианты волнового алгоритма, в частности, лучевой и маршрутные. Простейшим видом волнового алгоритма является волновой алгоритм нахождения кратчайшего пути без пересечения множества занятых и запрещенных элементов (участков печатной платы). Его целесообразно использовать при трассировке соединений в одной плоскости, когда недопустимо выходить из пределов этой плоскости. Определяются начальная и конечная точки и моделируется распространение волны от конечной точки к начальной в направлении волны. Недостатком этого алгоритма является то, что он мало пригоден для трассировки многослойных печатных плат, проводники прокладываются по краям платы, значительное число длинных параллельных проводников являются причиной большой взаимоиндуктивности. Более совершенным волновым алгоритмом является волновой алгоритм
прокладки пути с минимальным числом пересечения. В этом случае
число пересечений ранее проложенных трасс должно быть минимальным. Если одним из условий является требование регулярности соединений (один слой горизонтальные, другой – вертикальные и т.п.), то удобнее использовать волновой алгоритм прокладки пути с минимальным числом изменений направления, который позволяет минимизировать количество межслойных соединений. В отличие от волновых и лучевых алгоритмов, в которых на начальной стадии перебираются все возможные варианты трассы, в маршрутных алгоритмах прокладка трассы ведется сразу и по кратчайшему маршруту. Маршрутный алгоритм трассировки Каждый слой платы представлен в памяти ЭВМ булевой матрицей, элементы которой имеют значение 0, если соответствующий элемент свободен для прокладки пути, и имеют значение 1, если соответствующий элемент занят. Все элементы матрицы, которые принадлежат исходным препятствиям, задаются единичным значением. Алгоритм реализует следующие последовательно выполняемые этапы: Этап 1. Пусть требуется проложить путь между элементами da, булевой матрицы, описывающей модель платы. При отсутствии препятствий между элементами можно проложить конечное множество путей, имеющих минимальную длину в выбранной геометрии. Процесс построения Р-пути (Н-пути) сводится к тому, чтобы определить такую последовательность элементов L=, что любой элемент dk принадлежит Р-окрестности (Н-окрестности) элемента dk-1. Если будем рассматривать Н-окрестность, то вектор перехода Zk от элемента dk к элементу dк+1 возможен только в направлениях, параллельных координатным осям. Для случая Р-окрестности вектор перехода может иметь диагональные направления. На каждом шаге построения пути направление вектора перехода Zk от элемента dk к элементу dк+1 определяется функциями sgn(xb-xk), sgn(yb-yk), где xb, yb - координаты элемента db пути, xk, yk - координаты элемента dk. Правило выбора направления построения пути до встречи с препятствием в наилучшем направлении приведено в таблице 1. Таблица 1. |Функция |Zk | Наименование направлений приведено на рисунке 1. |3 |2 |1 | Рисунок 1. Наименование направлений вектора перемещения Zk. После каждого шага построения пути необходимо по вектору перехода Zk определить состояние очередного элемента dk (свободный или занятый) булево матрицы. Рассмотрим построение Н-пути. Для описания дискретного пространства, в котором строим путь,
используем булеву матрицу С размером m(n. Кроме того, для
сокращения вычислений введем усеченную матрицу А размером m(l. Состояние элементов описывается через булеву функцию [pic], где ci,j – элемент матрицы С; ai - элемент матрицы-сторки А. Здесь через индекс j обозначается номер строки матрицы С, который определяется координатой yk элемента dk. Если V=1, то элемент dk занят, и построение пути прекращается. При построении Р-пути распознавание состояния элемента выполняется в два этапа. На первом этапе определяем, принадлежит ли элемент dk какому-либо объекту, записанному в матрице С. Если элемент dk не принадлежит никакому объекту, то переходим к выполнению второго этапа, суть которого сводится к следующему: определяем состояние элементов, которые принадлежат одновременно Н- окрестностям элементов dk, dk-1. Таких элементов может быть только два, причем они расположены диагонально. Если оба элемента заняты, то построение пути из элемента dk-1 в dk запрещено. При построении пути в диагональных направлениях состояния элементов описывается булевой функцией [pic], i=1, 3, 5, 7. (1) Булевы функции Vi, Vi-1, Vi+1 определяются при просмотре Р-окрестности элемента dk. Если функция (1) равна нулю, то выбранный элемент свободный; в противном случае – занятый. Если очередной элемент dk булевой матрицы С, через который должен пройти путь занят, то из элемента dk-1, который назовем элементом встречи с препятствием (на рисунке 2 это элемент 1), начинается обход препятствия. Этап 2. Переход от элемента встречи с препятствием к следующему свободному элементу пути выполняются согласно правилу первого шага. Правило первого шага. Этап обхода препятствия начинается с
элемента dk встречи с препятствием в направлении Zk, двоичный код
которого определяется путем сложения кода предшествующего направления Если выбранное направление запрещено, то принимаем первое возможное направление. При построении пути выполняется отрицательный (правый) и положительный (левый) обход всей группы препятствий, лежащих между конечными элементами пути. В этом случае у первого элемента встречи с препятствием путь разветвляется на два. По одному пути осуществляется обход препятствий справа, а по другому – слева. При построении Н-пути для обхода препятствий используется алгоритм Н-слежения, а при построении Р-пути – Р-слежение. При отрицательном направлении Р-слежения двоичный код приоритетного направления опреднляется соотношением [pic], а при положительном [pic]. Если направление с высшим приоритетом запрещено, то выбирается первое возможное направление с низшим приоритетом. Определяемое соотношением [pic], где n – двоичный код чисел из последовательности 1, 2, …,8. Суммирование по модулю 8 выполняется при отрицательном направлении слежения, вычитание – при положительном. Важным моментом является определение элемента, в котором
заканчивается обход препятствий и начинается построение пути в
оптимальном направлении (по прямой к элементу db). Если в нужный
момент не прекратить обход препятствий, то неизбежно зацикливание
пути вокруг препятствий. Элемент пути, в котором прекращается обход препятствий, назовем элементом спуска. На рисунке 2 элементом
спуска является элемент 19. Здесь приведен путь в лабиринте,
построенный согласно этой методике от элемента da к элементу db. этап 1. Для определения элемента спуска пути предлагается следующий алгоритм: a) определяем двоичный код угла поворота вектора перехода относительно вектора Z’ из соотношения [pic]; причем суммирование выполняется при отрицательном направлении обхода препятствий, вычитание – при положительном. b) В каждом элементе излома проверяем значение двоичного кода ak и направление построения пути в наилучшем направлении. Если ak(0 и направление обхода препятствий совпадает с наилучшим направлением построения пути, то элемент dk будет элементом спуска. В противном случае dk не является элементом спуска. Этап 3. Минимизация длинны пути сводится к построению выпуклого контура, описанного вокруг первоначального пути. Если нет возможности получить выпуклый контур из-за наличия препятствий, то строится сглаженный контур, т.е. контур, имеющий меньшую длину, чем первоначальный. Находим все элементы спуска первоначального пути и разбиваем
его на отдельные участки, разграниченные элементами спуска. Осуществляется минимизация обоих первоначально построенных путей, полученных при положительном (левом) и отрицательном (правом) обходе группы препятствий, из которых выбирается минимальный (рисунок 3). Волновой алгоритм трассировки. Дискретное поле платы разбивают на три множества, описываемых с помощью булевых матриц: С – множество элементов поля, требующих соединения между собой Р – множество элементов поля, запрещенных для трассировки (на рисунке 4,а(б) это множество закрашено черным); S – множество свободных элементов поля платы. Требуется, используя элементы множества S, соединить элементы множества С в одну цепь, не пересекающую Р. Процесс нахождения минимального пути состоит из двух этапов: - Распространение волны от источника до встречи с одним из приемников; - Определение пути от источника к приемнику. В качестве источника выбирается один из элементов множества С, все остальные элементы являются приемниками. Обозначим через Rk множество элементов волны на шаге k и назовем его k-фронтом волны, тогда Rk+1 принадлежит Н-окрестности Rk. На каждом шаге расширения делается проверка пересечения фонта волны с приемником. Как только какой-либо элемент приемника будет включен в волну, процесс распространения волны завершается, и от ближайшего к источнику элемента приемника начинается построение пути. Для построения волны используются матрицы распространения волн в горизонтальном (Rk’), и вертикальном (Rk) направлении и матрицы точек поворота с вертикального направления на горизонтальное (Mk) и с горизонтального направления на вертикальное (Mk’), где [pic]; [pic]; [pic]. На рисунке 5, а - г приведены соответственно матрицы Rk, Rk’, На этапе построения пути определяется, каким фронтом достигнут приемник: горизонтальным или вертикальным. От элемента пересечения волны с приемником в направлении, соответствующему последнему фронту волны, определяем элементы, не принадлежащие множеству Р. При встрече с первым же элементом множества точек поворота рассмотренного направления движение прекращается. Все пройденные элементы включаются в искомый путь. Элемент встречи принимается за исходный для движения по другому фронту волны. Направление чередуется таким образом до тех пор, пока не будет достигнут элемент источника. На рисунке 5, д показан пример построения пути от приемника Процесс заканчивается, когда все элементы С будут связаны в единую цепь (рисунок 5, е), либо когда оставшиеся элементы этого множества уже не могут быть присоединены к источнику. |
|
© 2010 |
|