В качестве модели поля размещения будем использовать граф решетки, вершины которого сопоставлены установочным позициям элементов. За шаг координатной сетки принимаем размер наибольшего элемента схемы.
Рис.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. Расположение элементов на плате |