Размещение

В качестве модели поля размещения будем использовать граф решетки, вершины которого сопоставлены установочным позициям элементов. За шаг координатной сетки принимаем размер наибольшего элемента схемы.

Рис.18. Поле размещения

Матрица расстояний графа имеет вид:

                   
                   
                   
                   
                   
                   
                   
                   
                   
                   

Перерисуем схему, пронумеровав все цепи:

Рис.19. Пронумерованные цепи схемы

  1 2 3 4 5 6 7 8 9
DD1                  
DD2                  
DD3                  
DD4                  
R1                  
R2                  
C1                  
C2                  
X1                  
GND                  

Построим матрицу связности:

R DD1 DD2 DD3 DD4 R1 R2 C1 C2 X1
DD1     ½   ½        
DD2     ½     ½      
DD3 ½ ½     ½ ½ ½ ½  
DD4                  
R1 ½   ½            
R2   ½ ½            
C1     ½           ½
C2     ½           ½
X1             ½ ½  

Вычислим вектор внешних связей элементов:

Используем последовательный алгоритм размещения.

Введем более удобные обозначения, пусть:

e1 = DD1

e2 = DD2

e3 = DD3

e4 = DD4

e5 = R1

e6 = R2

e7 = C1

e8 = C2

e9 = X1

1. Выбираем первый элемент по связности с элементами – наиболее связанный элемент e3 размещаем в середину монтажного пространства платы – 5 позицию.

Тогда массив элементов Jk={e3}, а массив позиций Tk = {t5}.

2. Находим индекс очередного размещаемого элемента по максимальной связности со всеми размещенными элементами – по матрице связности R.

3 строка матрицы R – {½; ½; 0; 1; ½; ½; ½; ½; 1}.

Элемент e3 со значением 1 связан с е4, e9. Выберем следующий размещаемый элемент – е9, т.к. у этого элемента связь с КГ равна 2, в отличии от e4, у которого связь с КГ равна 1. Поэтому e9 размещаем в позицию 1.

Тогда массив элементов Jk={e3, е9}, а массив позиций Tk = {t5, t1}.

3. Находим индекс очередного размещаемого элемента по максимальной связности со всеми размещенными элементами – по матрице связности R. Находим элемент с наибольшей суммарной связностью с уже размещенными элементами.

3 строка матрицы R – {½; ½; 0; 1; ½; ½; ½; ½; 1}.

9 строка матрицы R – {0; 0; 1; 0; 0; 0; ½; ½; 0}.

Можно выбрать элементы – е4, e7, e8. Выберем элемент e7.

Определим позицию для установки этого элемента. Возможные позиции – 2, 4, 6, 8.

f2 = r37 d52 + r97 d12 + m2 h7= ½*1 + ½*1+2*1=3

f4 = r37 d54 + r97 d14 + m4 h7= ½*1 + ½*1+1*1=3

f6 = r37 d56 + r97 d16 + m6 h7= ½*1 + ½*3+3*1=5

f8= r37 d58 + r97d18 + m8 h7= ½*1 + ½*3+2*1=4

f2 = min[f4; f6; f8; f2] = 3, размещаем элемент e7 в позицию 2. Тогда массив элементов Jk={e3, е9, e7}, а массив позиций Tk = {t5, t1, t2}.

4. Находим индекс очередного размещаемого элемента по максимальной связности со всеми размещенными элементами – по матрице связности R. Находим элемент с наибольшей суммарной связностью с уже размещенными элементами.

3 строка матрицы R – {½; ½; 0; 1; ½; ½; ½; ½; 1}.

9 строка матрицы R – {0; 0; 1; 0; 0; 0; ½; ½; 0}.

7 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

Можно выбрать элементы – е4, e8. Выберем элемент e8.

Определим позицию для установки этого элемента. Возможные позиции –3, 4, 6, 8.

f3 = r38 d53 + r98 d13 + r78 d23 + m3 h8= ½*2 + ½*2+ 0*1+3*1=5

f4 = r38 d54 + r98 d14 + r78 d24 + m4 h8= ½*1 + ½*1+ 0*2+1*1=2

f6 = r38 d56 + r98 d16 + r78 d26 + m6 h8= ½*1+ ½*3+ 0*2+3*1=5

f8= r38d58 + r98d18 + r78 d28 + m8 h8= ½*1 + ½*3+ 0*2+2*1=4

f4 = min[f4; f6; f8; f3] = 2, размещаем элемент e8 в позицию 4. Тогда массив элементов Jk={e3, е9, e7, e8}, а массив позиций Tk = {t5, t1, t2, t4}.

5. Находим индекс очередного размещаемого элемента по максимальной связности со всеми размещенными элементами – по матрице связности R. Находим элемент с наибольшей суммарной связностью с уже размещенными элементами.

3 строка матрицы R – {½; ½; 0; 1; ½; ½; ½; ½; 1}.

9 строка матрицы R – {0; 0; 1; 0; 0; 0; ½; ½; 0}.

7 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

8 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

Можно выбрать элемент – е4. Выберем элемент e4.

Определим позицию для установки этого элемента. Возможные позиции –7, 8, 6, 3.

f3 = r34 d53 + r94 d13 + r74 d23 + r84 d43 + m3 h4= 1*2 + 0*2+ 0*1+ 0*3+3*1=5

f7 = r34 d57 + r94 d17 + r74 d27 + r84 d47 + m7 h4= 1*1 + 0*2+ 0*3+ 0*1+1*1=2

f6 = r34 d56 + r94 d16 + r74 d26 + r84 d46 + m6 h4= 1*1 + 0*3+ 0*2+ 0*2+3*1=4

f8= r34d58 + r94d18 + r74 d28 + r84d48 + m8 h4= 1*1 + 0*3+ 0*2+ 0*2+2*1=3

f7 = min[f7; f6; f8; f3] = 2, размещаем элемент e4 в позицию 7. Тогда массив элементов Jk={e3, е9, e7, e8, е4}, а массив позиций Tk = {t5, t1, t2, t4, t7}.

6. Находим индекс очередного размещаемого элемента по максимальной связности со всеми размещенными элементами – по матрице связности R. Находим элемент с наибольшей суммарной связностью с уже размещенными элементами.

3 строка матрицы R – {½; ½; 0; 1; ½; ½; ½; ½; 1}.

9 строка матрицы R – {0; 0; 1; 0; 0; 0; ½; ½; 0}.

7 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

8 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

4 строка матрицы R – {0; 0; 1; 0; 0; 0; 0; 0; 0}.

Можно выбрать элемент – е1, e2, e5, e6. Выберем элемент e1.

Определим позицию для установки этого элемента. Возможные позиции –8, 6, 3.

f3 = r31 d53 + r91d13 + r71d23 + r81 d43 + r41d73 + m3 h1= ½*2 + 3*1=4

f6 = r31d56 + r91d16 + r71 d26 + r81d46 + r41 d76 + m6 h1= ½*1 + 3*1=3½

f8= r31d58 + r91d18 + r71d28 + r81d48 + r41d78 + m8 h1= ½*1 + 2*1=2½

f8 = min[f6; f8; f3] = 2½, размещаем элемент e1 в позицию 8. Тогда массив элементов Jk={e3, е9, e7, e8, е4, e1}, а массив позиций Tk = {t5, t1, t2, t4, t7,t8}.

7. Находим индекс очередного размещаемого элемента по максимальной связности со всеми размещенными элементами – по матрице связности R. Находим элемент с наибольшей суммарной связностью с уже размещенными элементами.

3 строка матрицы R – {½; ½; 0; 1; ½; ½; ½; ½; 1}.

9 строка матрицы R – {0; 0; 1; 0; 0; 0; ½; ½; 0}.

7 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

8 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

4 строка матрицы R – {0; 0; 1; 0; 0; 0; 0; 0; 0}.

1 строка матрицы R – {0; 0; ½; 0; ½; 0; 0; 0; 0}.

Можно выбрать элемент –e5. Выберем элемент e5.

Определим позицию для установки этого элемента. Возможные позиции –9, 6, 3.

f3 = r35 d53 + r95d13 + r75d23 + r85 d43 + r45d73 + r15d83 + m3 h5= ½*2 + ½*3=3½

f6 = r35d56 + r95d16 + r75 d26 + r85d46 + r45d76 + r15d86 + m6 h5= ½*1 + ½*2=1½

f9= r35d59 + r95d19 + r75d29 + r85d49+ r45d79+ r15d89 + m9 h5= ½*2 + ½*1=1½

f9 = min[f3; f6; f8] = 1½, размещаем элемент e5 в позицию 9. Тогда массив элементов Jk={e3, е9, e7, e8, е4, e1, e5}, а массив позиций Tk = {t5, t1, t2, t4, t7,t8, t9}.

8. Находим индекс очередного размещаемого элемента по максимальной связности со всеми размещенными элементами – по матрице связности R. Находим элемент с наибольшей суммарной связностью с уже размещенными элементами.

3 строка матрицы R – {½; ½; 0; 1; ½; ½; ½; ½; 1}.

9 строка матрицы R – {0; 0; 1; 0; 0; 0; ½; ½; 0}.

7 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

8 строка матрицы R – {0; 0; ½; 0; 0; 0; 0; 0; ½}.

4 строка матрицы R – {0; 0; 1; 0; 0; 0; 0; 0; 0}.

1 строка матрицы R – {0; 0; ½; 0; ½; 0; 0; 0; 0}.

5 строка матрицы R – {½; 0; ½; 0; 0; 0; 0; 0; 0}.

Можно выбрать элемент –e2, e6. Выберем элемент e2.

Определим позицию для установки этого элемента. Возможные позиции –6, 3.

f3 = r32 d53 + r92d13 + r72d23 + r82d43 + r42d73 + r12d83 + r52d93 + m3 h2= ½*2 + 3*1=4

f6 = r32d56 + r95d16 + r72d26 + r82d46 + r42d76 + r12d86 + r52d96 + m6 h2= ½*1 + 3*1=3½

f6 = min[f3; f6] = 3½, размещаем элемент e2 в позицию 6, а оставшийся элемент e6 в позицию 3. Тогда массив элементов Jk={e3, е9, e7, e8, е4, e1, e5, е2, е6}, а массив позиций Tk = {t5, t1, t2, t4, t7,t8, t9, t3, t6}. | Jk | = 9.

9.Конец работы алгоритма.

Итог размещения:

Рис.20. Расположение элементов на плате


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: