Содержание
Раздел 1. Простановка номеров цепей в соответствие с техническим заданием
Раздел 2. Компоновка типовых элементов конструкции
Раздел 3. Размещение микросхем на коммутационных платах
Раздел 4. Минимизация длины связей между контактами разъема и контактами внешних цепей
Первым этапом работы является простановка номеров цепей на принципиальной схеме в соответствие с техническим заданием. В нашем случае цепи представляют собой выводы, соединенные с общей шиной, которая, в свою очередь соединена с разъемом. Всего на схеме 18 элементов. В соответствие с техническим заданием они представляют собой 6 отдельных микросхем К155ЛА4 в корпусе DIP14 по 3 "3И-НЕ" (3 секции) с 4 выводами (3 входа и один инверсный выход). Поэтому был создан элемент: символ элемента в Symbol Editor, посадочное место и тип корпуса элемента (в Pattern Editor), затем символ и посадочное место были объединены в компонент и сохранены в библиотеке с помощью Library Executive [1, 2]. В редакторе Schematic работают с принципиальной схемой. Вместо компонента на шаблоне ставится созданный элемент. Используется Place Port. Стирают цепи и номера цепей, затем элемент соединяется проводом c шиной посредством Place Wire. Затем назначается номер новых цепей (Place Wire+ Port Properties/Net Name). Номера цепей, подходящих к разъему, назначаются произвольно (из списка номеров в техническом задании). Результатом является исходная функционально-логическая схема проектируемого узла (задание на курсовой проект) (рис.1).
Рис.1. Функционально-логическая схема проектируемого узла.
Компоновка - первый этап конструкторского синтеза, при котором определяется однозначное соответствие между функционально-логическим, схемотехническим и конструкторским делением проектируемого устройства. Предполагается, что конструкция разбивается на унифицированные и неунифицированные элементы нескольких уровней конструкторской иерархии. По сути, компоновка - это разбиение общей схемы на части, соответствующие конструктивным единицам по определенным критериям.
На этапе компоновки могут решаться задачи типизации, покрытия и разрезания.
Типизация - это процедура выделения в схеме частей, повторяющих друг друга, при этом число типов может быть задано, либо определяться в процессе типизации.
Покрытие - это определение минимального числа корпусов, покрывающих логические элементы принципиальной схемы, то есть задача покрытия решается на этапе перехода от логической схемы к электрической.
Разрезание - это разбиение общей схемы на части, число которых либо задано, либо определяется в процессе разрезания, при этом стремятся обеспечить минимум суммы межблочных связей.
В курсовой работе решается задача разрезания заданной схемы устройства на подсхемы с целью определения принадлежности логических элементов отдельным микросхемам.
Алгоритм разрезания схемы состоит из двух этапов:
1) предварительное разрезание (быстрое получение результата)
2) окончательная компоновка (улучшение результата итерационным методом).
Последовательный алгоритм предварительной компоновки:
1. Построение матрицы смежности взвешенного графа схемы A.
2. Для каждого элемента рассчитывается его суммарная тяга к остальным элементам.
3. Выбирается элемент, имеющий максимальную локальную степень.
4. Выбранный элемент помечается меткой m. Вначале выполнения алгоритма m=0.
5. Выбираются все элементы, связанные с выбранными ранее, но непомеченные метками.
6. Увеличивается метка m=m+1. Помечаются выбранные в блоке 5 элементы метками m.
7. Выполняются блоки 5, 6, 7 пока не будут помечены все элементы.
8. Выбирается очередной модуль верхнего уровня М j для компоновки.
9. Компонуются в M j элементы с младшими метками, не вошедшие в компоновку ранее.
10. Компоновка в М j заканчивается, когда модуль полностью заполнен.
11. Продолжается выполнение блоков 8-11, пока не будут заполнены
все модули или пока не будет исчерпан список элементов.
12. Выход из алгоритма.
Итерационный алгоритм улучшения компоновки:
Процесс оптимизации выполняется путем последовательной перестановки элементов из разных модулей.
Пусть элемент Ei установлен в модуль Ms, а элемент Ej установлен в модуль Mt.
Рассчитываем показатель качества перестановки:
Rij =R внш it +R внш jt - R внт i - R внт j - 2 Rij, (1) где
R внш it - количество связей Ei с элементами в Mt, R внш jt - количество связей Ej с элементами в Ms, R внт i - количество связей Ei внутри модуля, R внт j - количество связей Ej внутри модуля.
Выбираем ту пару, для которой показатель качества перестановки максимален.
Алгоритм:
1. Ввод начальной компоновки.
2. Расчет матриц связности Cs и Cst и заполнение их.
3. Расчет матрицы эффективности перестановок Rij для всех пар модулей.
4. Выбирается из этих матриц максимальный элемент.
5. Проверка: если показатель качества перестановок отрицательный, переход к блоку 7, иначе к блоку 6.
6. Перестановка элементов Ei и Ej и возврат к блоку 2.
7. Выход из алгоритма. Дальнейшее улучшение с помощью данного алгоритма невозможно [3].
Таким образом, на этапе компоновки 18 элементов сортируются по 6 микросхемам (в каждой - по 3 элемента) оптимальным образом. Для сортировки используем программу PROG (18 элементов, 6 блоков - максимальные значения входных данных для компоновки). Алгоритм работы в этой программе:
1) Сначала надо составить (заполнить) симметричную матрицу смежности (матрицу связей). Ее размер 18×18 (по количеству элементов). Главная диагональ - нулевая. Для каждого элемента электрической принципиальной схемы (начиная с первого) ищут элементы (последовательно перебирают оставшиеся 17), у которых повторяются номера связей с этим элементом (которые с ним связаны). Соответственно, на пересечении этих элементов в матрице ставится цифра (от 1 до 4, если повторения есть; 0, если повторений нет), которая говорит о количестве одинаковых цепей (количество связей) в двух элементах. Заполнив матрицу, смотрят предварительную схему соединений (F2). В ней 37 внешних связей и 8 внутренних. Таким образом, на данном этапе используют последовательный алгоритм предварительной компоновки, предварительное разрезание (быстрое получение результата) в автоматическом режиме. Полученная матрица:
Таблица 1
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 3 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
3 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
4 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
5 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
7 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
9 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 2 | 2 | 0 | 0 | 0 |
10 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
11 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
12 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
13 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
14 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
15 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
16 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
17 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
18 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
От заполнения матрицы смежности переходят к весовым коэффициентам. Весовые коэффициенты: