Министерство образования Российской Федерации
Факультет автоматики и вычислительной техники
Курсовая работа
по дисциплине “Теория автоматов”
на тему: «Синтез и анализ логической схемы при кубическом задании булевой функции»
Томск 2009
Введение
1. Нахождение минимального покрытия
2. Построение факторизованного покрытия
3. Составление логической схемы на основе данного базиса логических элементов
4. Нахождение по пи-алгоритму Рота единичного покрытия
5. Синтез контролирующего теста. Контроль схемы тестом
Заключение
Литература
Аппарат алгебры логики широко применяется в теории ЦВМ, в частности для решения задач анализа и синтеза схем. При решении задачи синтеза исходное логическое выражение, описывающее некоторую логическую функцию, преобразуется и упрощается так, чтобы каждый член полученного эквивалентного логического выражения мог быть представлен простой схемой. Таким образом, при синтезе вычислительных и управляющих схем составляется математическое описание задачи в виде формул алгебры логики. Затем производится минимизация исходной формулы и из числа эквивалентных логических схем выбирается та, которая допускает наиболее простую реализацию.
В данной курсовой работе стоит задача синтеза схемы, реализующей функцию, заданную кубическим комплексом к(f). В табл. 1 приведено исходное покрытие из 8 кубов. Логическую схему следует построить в универсальном базисе элементов ИЛИ-НЕ, который характеризуется коэффициентом объединения по входу к(вх)=4 и коэффициентом разветвления по выходу к(р)=2. Стоимость покрытия равна 48.
Таблица 1
Обозначение куба | Покрытие | Размерность куба |
a | 1011X10 | 6 |
b | 1X1XX11 | 4 |
c | 1011X11 | 6 |
d | XX1X1X0 | 3 |
e | 0X11111 | 6 |
f | 00X0XX0 | 4 |
g | 0X00101 | 6 |
h | 10X00X0 | 5 |
Порядок выполнения работы можно определить следующим образом:
1). Нахождение минимального покрытия;
2). Построение факторизованного покрытия;
3). Составление логической схемы на основе данного базиса логических элементов;
4). Нахождение по пи-алгоритму Рота единичного покрытия;
5). Построение контролирующего теста;
6). Проверка логической схемы контролирующим тестом.
1.НАХОЖДЕНИЕ МИНИМАЛЬНОГО ПОКРЫТИЯ
В первую очередь необходимо найти минимальное в смысле Кванта покрытие. Минимальное покрытие булевой функции ищется в два этапа:
1).получение минимального множества Z простых импликант;
2).выделение L-экстремалей на множестве Z.
Для выполнения этих этапов используются операции *-произведения, #-вычитания кубов.
При выполнении операции *-произведения одного куба на другой получается новый куб, противоположные грани которого лежат в исходных кубах. Этот новый куб может стать простой импликантой исходного покрытия. Надо иметь в виду, что куб является простой импликантой исходного покрытия, если он не составляет грань никакого другого комплекса К или того куба, который получился при произведении в процессе нахождения простых импликант. Это означает, что простые импликанты при *-произведении не дают новых кубов, не входящих в предыдущие кубы.
При нахождении простых импликант выполняются все попарные произведения с учетом того, что произведение куба самого на себя приводит к кубу, участвующему в произведении; что произведение первого куба на второй равно произведению второго куба на первый.
Операция *-произведения двух кубов а=а1а2…аi…an и b=b1b2…bi…bn определяется на основе табл. 2.
Таблица 2
ai * bi | ai | |||
0 | 1 | X | ||
bi | 0 | 0 | Y | 0 |
1 | Y | 1 | 1 | |
X | 0 | 1 | X |
Если значение Y получается только в одной координате, то произведение кубов a и b дает так называемый вновь образованный куб, в котором величина Y заменяется на X. Если же имеется более одной координаты Y, то звездчатое произведение дает 0.
Процесс нахождения множества простых импликант является циклическим. В каждом цикле вначале удаляются те кубы исходного покрытия, которые являются гранями других кубов этого покрытия. Далее удаляются кубы исходного покрытия, являющиеся гранями кубов покрытия. Должны быть удалены полученные при *-произведении кубы, являющиеся гранями кубов покрытия. И наконец, удаляются полученные кубы с размерностью, на единицу меньшей номера цикла. Оставшиеся в таблице кубы передаются на следующий цикл *-произведения. Циклы выполняются до тех пор, пока перестанут появляться вновь образованные кубы. Процесс нахождения множества простых импликант для 35-го варианта приведен в табл. 3,4,5,6. Куб «с» не используется при нахождении данного множества, т.к. он входит в куб «b».
1 цикл нахождения множества простых импликант Таблица 3
1011X10 | 1X1XX11 | XX1X1X0 | 0X11111 | 00X0XX0 | 0X00101 | |
1011X10 | - | |||||
1X1XX11 | 1011X1X | - | ||||
XX1X1X0 | 1011110 | 1X1X11X | - | |||
0X11111 | Æ | XX11111 | 0X1111X | - | ||
00X0XX0 | Æ | Æ | 00101X0 | Æ | - | |
0X00101 | Æ | Æ | Æ | Æ | 000010X | - |
10X00X0 | 101X010 | 101001X | 1010XX0 | Æ | X0X00X0 | Æ |
2 цикл нахождения множества простых импликант Таблица 4
1Х1ХX11 | XX1X1X0 | 00X0XX0 | 0X00101 | 1011X1X | 101X010 | 1X1X11X | XX11111 | 101001X | 0X1111X | 1010XX0 | 000010X | |
1X1XX11 | - | |||||||||||
XX1X1X0 | - | |||||||||||
00X0XX0 | - | |||||||||||
0X00101 | - | |||||||||||
1011X1X | 1011X11 | 101111X | Æ | Æ | - | |||||||
101X010 | 101X01X | 101XX10 | Y010010 | Æ | 1011010 | - | ||||||
1X1X11X | 1X1X111 | 1X1X110 | Y010110 | Æ | 101111X | 101XY10 | - | |||||
XX11111 | 1X11111 | XX1111X | Æ | Æ | 1011111 | Æ | 1X11111 | - | ||||
101001X | 1010011 | 1010Y10 | Y010010 | Æ | 101X01X | 1010010 | 1010Y1X | Æ | - | |||
0X1111X | XX11111 | 0X11110 | 001Y110 | Æ | X01111X | Æ | YX1111X | 0X11111 | Æ | - | ||
1010XX0 | 1010X1X | 10101X0 | X010XX0 | Æ | 101XX10 | 1010010 | 1010110 | Æ | 1010010 | Æ | - | |
000010X | Æ | 00Y0100 | 0000100 | 0000101 | Æ | Æ | Æ | Æ | Æ | Æ | Æ | - |
X0X00X0 | 101001X | X010XX0 | 00X00X0 | 0000Y01 | 101Y010 | 1010010 | 1010Y10 | Æ | 1010010 | Æ | 10100X0 | 0000Y00 |
1X1XX11 | XX1X1X0 | 00X0XX0 | 0X00101 | 1011X1X | 1X1X11X | 000010X | X0X00X0 | 101X01X | 1010X1X | 101XX10 | XX1111X | |
1X1XX11 | - | |||||||||||
XX1X1X0 | - | |||||||||||
00X0XX0 | - | |||||||||||
0X00101 | - | |||||||||||
1011X1X | - | |||||||||||
1X1X11X | - | |||||||||||
000010X | - | |||||||||||
X0X00X0 | - | |||||||||||
101X01X | 101X011 | 101XX10 | X010010 | Æ | 101101X | 101XX1X | Æ | 1010010 | - | |||
1010X1X | 1010X11 | 1010110 | X010X10 | Æ | 101XX1X | 101011X | Æ | 1010010 | 101001X | - | ||
101XX10 | 101XX1X | 101X110 | X010X10 | Æ | 1011X10 | 101X110 | Æ | 1010010 | 101X010 | 1010X10 | - | |
XX1111X | 1011111 | XX11110 | 001X110 | Æ | 101111X | 1X1111X | Æ | Æ | 1011X1X | 101X11X | 1011110 | - |
X010XX0 | 1010X1X | X0101X0 | 0010XX0 | Æ | 101XX10 | 1010110 | 00X0100 | X0100X0 | 1010010 | 1010X10 | 1010X10 | X01X110 |
4 цикл нахождения множества простых импликант Таблица 6
1X1XX11 | XX1X1X0 | 00X0XX0 | 0X00101 | 000010X | X0X00X0 | XX1111X | X010XX0 | 101XX1X | |
1X1XX11 | - | ||||||||
XX1X1X0 | - | ||||||||
00X0XX0 | - | ||||||||
0X00101 | - | ||||||||
000010X | - | ||||||||
X0X00X0 | - | ||||||||
XX1111X | - | ||||||||
X010XX0 | - | ||||||||
101XX1X | 101XX11 | 101X110 | X010X10 | Æ | Æ | 1010010 | 101111X | 1010X10 | - |
1X1X11X | 1X1X111 | 1X1X110 | X010110 | Æ | Æ | 1010X10 | 1X1111X | 1010110 | 101X11X |
В таблицах 3, 4, 5 и 6 опущены те *-произведения, которые были рассмотрены раньше. Множество простых импликант Z выглядит следующим образом:
Z={ 1X1XX11, XX1X1X0, 00X0XX0, 0X00101, 000010X, X0X00X0, XX1111X, X010XX0, 101XX1X,1X1X11X }.
Стоимость данного покрытия составляет 53, что на 5 больше стоимости исходного покрытия.
После нахождения множества Z в нем необходимо выделить такое подмножество, которое покрывало бы все вершины из комплекса L и имело бы минимальную стоимость по Квайну. В основе лежит понятие L-экстремали, то есть куба Zi, содержащего в себе одну или несколько вершин из комплекса L (L=C), которой нет ни в одной другой простой импликанте из множества Z.
Куб Ziявляется L-экстремалью, если для него выполняется следующее соотношение:
[ Zi# ( Z - Zi)] ÇL¹Æ,
где # - знак операции вычитания кубов.
Операция вычитания, например, из куба а куба b служит для удаления их общей части, т.е. их пересечения, из куба а. Эта операция определяется следующим образом:
ai # bi | ai | |||
0 | 1 | X | ||
bi | 0 | Z | Y | 1 |
1 | Y | Z | 0 | |
X | Z | Z | Z |
Операция вычитания из куба а куба b определяется следующим образом:
a, при наличии Y,a # b = Æ, если ai# bi= Z,
È ( a1a2…ai-1aiai+1…an),