Вопрос 20: Методы трассировки соединений внутри канала.


Одна из основных задач трассировка соединений внутри канала - выделение из множества соединений, отнесенных к каналу, минимального числа h h подмножеств отрезков, каждое из которых может быть назначено на одну магистраль канала.

Магистрали

Магистрали - осевые линии, по которым проходят трассы.

Если пропускная способность γ \gamma канала задана, то должно быть выполнено условие hγ h \leq \gamma .

Пусть дано множество отрезков S={M1,M2,...,Mn} S = \{ M_1, M_2, ..., M_n \} , отнесенных к этому каналу: Mi=[x1i,x2i],i=1,2,...,n. M_i = [ x^i_1, x^i_2 ], i = 1, 2, ..., n. Два отрезка не могут быть помещены на одну магистраль, если они пересекаются MiMj M_i \cap M_j \neq \varnothing

Граф интервалов

Графом интервалов G(S) G(S) множества S S называюется граф, вершинами которого являются интервалы Mi(i=1,2,...,n) M_i(i=1, 2, ..., n) , а ребра соответствуют пересечению интервалов Mi M_i и Mj M_j .

Граф интервалов

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

Алгоритм:

  1. Упорядочить интервалы множества S S по левым концам: M1,M2,...,Mn M_1, M_2, ..., M_n ( Mi<Mj M_i < M_j , если x1i<xij x^i_1 < x^j_i )

  2. После раскраски k<n k < n вершин Mi(i=1,2,..,k) M_i (i=1, 2, .., k) вершину Mk+1 M_{k+1} окрасить первой по порядку краской, которой не окрашены смежные с ней вершины из множества {Mi,i=1,2,..,k} \{ M_i, i=1, 2, .., k \}

Граф горизонтальных ограничений (ГГО)

ГГО представляет собой неориентированный граф G=(M,W) G = (M, W) , вершинами которого являются горизонтальные отрезки цепей Mi M_i , а наличие дуги w=(Mi,Mj) w = (M_i, M_j) говорит о невозможности разместить элементы на одной магистрали MiMj M_i \cap M_j \neq \varnothing .

Граф вертикальных ограничений (ГВО)

Рассмотрим более общую задачу, когда минимизация числа горизонтальных связей осуществляется с учетом вертикальных связей между каналами.

Задача с учетом вертикальных соединений

Будем считать, что горизонтальные отрезки соединений располагаются в слое металлизации, а вертикальные отрезки (подходы к выводам ячеек) в слое диффузии.

При распределении горизонтальных отрезков необходимо следить за тем, чтобы вертикальные отрезки, находящиеся в одном столбце, не перекрывались друг с другом. Зададим данные ограничения с помощью ориентированного графа G=(M,U) G = (M, U) , вершинами которого являются горизонтальные отрезки цепей, а наличие дуги u=(Mi,Mj) u = (M_i, M_j) означает, что отрезок Mi M_i расположен на магистрали, находящейся над магистралью отрезка Mj M_j .

Граф вертикальных ограничений

В случае, если ГВО содержит циклы, может потребоваться несколько горизонтальных отрезков.

Граф вертикальных ограничений с циклами

Таким образом задача состоит в минимизации числа используемых магистралей при соблюдении порядка расположения горизонтальных отрезков цепей.

Алгоритм:

  1. Упорядочить множество горизонтальных отрезков S=(M1,M2,...,Mn) S = (M_1, M_2, ..., M_n) по левым концам.
  2. Применить ранее описанный алгоритм раскраски графа интервалов G(S) G(S) с одним дополнением: при назначении цвета для очередной вершины Mk+1 M_{k+1} проверяется не только смежность ее с вершинами из множества Rk={Mi,i=1,2,...,k} R_k = \{ M_i, i = 1, 2, ..., k \} , но и отношение порядка в графе вертикальных ограничений G=(M,U) G = (M, U) . Иными словами, пусть l(Mi) l(M_i) - номер магистрали для отрезка Mi M_i . Тогда:

Lk={Mi:MiRk,MiMk+1=}, L_k = \{ M_i : M_i \in R_k, M_i \cap M_{k+1} = \varnothing \},

Tk={Mi:MiRk,(Mi,Mk+1)UG(M,U)} T_k = \{ M_i : M_i \in R_k, (M_i, M_{k+1}) \in U \in G(M,U) \}

l(Mk+1)=minMiRkLkl(Mi)>maxMiTkl(Mi) l(M_{k+1}) = \min_{M_i \in R_k \setminus L_k} l(M_i) > \max_{M_i \in T_k} l(M_i)

Решение проблемы перекрестков

Граф вертикальных ограничений с циклами

Участки, занятые перекрестком, не рассматриваются:

  • Соединения, меняющие направление, доводятся до границы перекрестка.
  • Соединения, не меняющие направления, проходят напрямую сквозь перекресток.
  • Перекресток рассматривается отдельным алгоритмом (напр. волновым)

results matching ""

    No results matching ""