Графоаналитические методы минимизации логической функции и синтез логического устройства

Определение минимальной дизъюнктивной нормальной формы логической функции устройства. Таблица истинности функции. Минимизация функции алгебры логики. Задача определения простых импликант по методу Квайна-Маккласки. Синтез схемы для МДНФ в базисе Буля.

Рубрика Математика
Вид курсовая работа
Язык русский
Дата добавления 21.11.2010
Размер файла 121,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство общего и профессионального образования Российской Федерации

Дагестанский Государственный

Технический Университет

Кафедра ВТ

Пояснительная записка

к курсовой работе

по дисциплине

“Дискретная математика”

на тему:

“Графоаналитические методы минимизации логической функции

и синтез логического устройства”

Выполнил: ст-т 2-го курса

гр. 3931

Гаджиев Р.Ю.

Принял: Гаджиев А.А

Аннотация

Цель курсовой работы - закрепление у студента основных теоретических положений дисциплины, приобретение навыков практического решения технических задач логического проектирования узлов ЭВМ, а также формализации и составления алгоритмов решения логической задачи.

В настоящей курсовой работе проводится минимизация логической функции по методам Квайна, карт Карно, неопределенных коэффициентов, методу прямого алгебраического преобразования и по методу Квайна-Маккласки. По методу Квайна-Маккласки и задаче минимального покрытия по таблице меток составлены содержательные алгоритмы, блок-схемы, а также приводится пример программной реализации этого метода. Выполнен синтез схемы для МДНФ с использованием логических элементов и интегральных схем серии К155.

Перечень ключевых слов, используемых в курсовом проекте:

ДНФ - дизъюнктивная нормальная форма;

ДСНФ - дизъюнктивная совершенная нормальная форма;

МДНФ - минимальная дизъюнктивная нормальная форма;

ИМС - интегральная микросхема;

НК - неопределенный коэффициент;

ФАЛ - функция алгебры логики.

Оглавление

Задание к курсовой работе

Глава 1. Определение минимальной дизъюнктивной нормальной формы логической функции устройства

1.1 Таблица истинности функции

1.2 Аналитическая форма логической функции

1.3 Минимизация ФАЛ

1.1.1 Метод прямого алгебраического преобразования

1.1.2 Метод Квайна

1.1.3 Метод Квайна-Маккласки

1.1.4 Метод карт Карно

1.1.5 Метод неопределенных коэффициентов

Глава 2. Формализация задачи минимизации ФАЛ

2.1 Задача определения простых импликант по методу Квайна-Маккласки

2.2 Задача минимального покрытия по таблице меток в методе Квайна

Глава 3. Синтез логической схемы

3.1 Синтез схемы для МДНФ в базисе Буля (И, ИЛИ, НЕ) с использованием двухвходовых логических элементов

3.2 Представление МДНФ в базисах Шеффера и Пирса

3.3 Сравнительный анализ аппаратурных затрат

Заключение

Список использованной литературы

Приложение

Рабочая программа решения задачи по методу Квайна-Маккласки

Рабочая программа решения задачи минимального покрытия по таблице меток в методе Квайна

Задание к курсовой работе

Задание 1. Определить МДНФ логические функции устройства.

1.1 Составить таблицу соответствия (истинности) функции.

1.2 Перевести логическую функцию от табличной к аналитической форме в виде ДСНФ.

1.3 Найти МДНФ следующими методами:

а) прямым (алгебраическим) преобразованием;

б) методом Квайна;

в) усовершенствованным методом Квайна (Квайна-Маккласки);

г) методом карт Карно;

д) методом неопределенных коэффициентов.

Задание 2. Составить алгоритм метода минимизации.

2.1. Составить содержательные (словесные) машинные алгоритмы минимизации функции по методу Квайна-Маккласки и задаче минимального покрытия по таблице меток.

2.2. Разработать граф-схемы алгоритмов.

2.3. Разработать логические схемы алгоритмов в нотации Ляпунова.

2.4. Разработать рабочие программы по алгоритмам.

Задание 3. Синтез логических схем функции.

3.1. Выполнить синтез схемы МДНФ в базисе Буля с использованием 2-х ходовых логических элементов и интегральных микросхем серии 155.

3.2. Функцию МДНФ в базисе Буля полученную в первом задании представить в базисах Шеффера и Пирса.

3.3. Обосновать выбор базиса по формулам МДНФ.

3.4. Реализовать в выбранном базисе логическую схему.

Глава 1. Определение МДНФ логической функции устройства

1.1 Таблица истинности функции

Составим таблицу истинности для заданной функции F(X1,X2,X3,X4).

X1

X2

X3

X4

F(X1, X2, X3, X4)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

1

1

1

1

0

1

1

1

0

1

0

1

1.2 Аналитическая форма логической функции

Для того, чтобы записать функцию алгебры логики в ДСНФ, берем те строки из таблицы истинности, для которых значение функции соответствует единице. Получим следующую таблицу:

X1

X2

X3

X4

1

3

4

5

6

7

9

10

11

13

15

0

0

0

0

0

0

1

1

1

1

1

0

0

1

1

1

1

0

0

0

1

1

0

1

0

0

1

1

0

1

1

0

1

1

1

0

1

0

1

1

0

1

1

1

Для каждой такой строки записываем минитерм. Буквы, входящие в минитерм, представляются в прямом виде, если этой букве соответствует “1” в таблице истинности, и в инверсном виде, если “0”. Получим следующие минитермы:

1. X1X2X3X4; 4. X1X2X3X4; 7. X1X2X3X4; 10. X1X2X3X4;

___ ___ ___ ___ ___ ___

2. X1X2X3X4; 5. X1X2X3X4; 8. X1X2X3X4; 11. X1X2X3X4;

___ ___ ___ ___ ___

3. X1X2X3X4; 6. X1X2X3X4; 9. X1X2X3X4;

Если взять дизъюнкцию этих минитерм, то получим функцию алгебры логики в виде ДСНФ:

___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___

f(X1X2X3X4) = X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V

___ ___ ___ ___ ___ ___ ___

V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4.

1.3 Минимизация ФАЛ

1.3.1 Метод прямого алгебраического преобразования

Используя закон тавтологии и неполного склеивания имеем:

___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___

f(X1X2X3X4) = X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V

___ ___ ___ ___ ___ ___ ___

V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 V X1X2X3X4 =

___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___

=(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V

___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___

V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V

___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___

V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V

___ ___ ___ ___ ___ ___ ___

V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V

___ ___ ___ ___ ___ ___ ___

V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V(X1X2X3X4 V X1X2X3X4)V

___

V(X1X2X3X4 V X1X2X3X4) =

___ ___ ___ ___ ___ ___ ___ ___ ___ ___

= X1X2X4 V X1X3X4 V X2X3X4 V X1X3X4 V X2X3X4 V X1X2X3 V

___ ___ ___ ___ ___ ___

V X1X2X4 V X1X2X4 V X2X3X4 V X1X2X3 V X2X3X4 V X1X2X4 V

___ ___

V X1X3X4 V X1X2X3 V X1X3X4 V X1X2X4 =

___ ___ ___ ___ ___ ___

= (X1X2X4 V X1X2X4 V X1X3X4 V X1X3X4) V

___ ___ ___ ___ ___ ___

V (X1X2X4 V X1X2X4 V X2X3X4 V X2X3X4) V

___ ___ ___ ___ ___ ___

V (X1X3X4 V X1X3X4 V X2X3X4 V X2X3X4) V

___ ___

V (X1X3X4 V X1X3X4 V X2X3X4 V X2X3X4) V

___ ___ ___ ___ ___ ___

V (X1X2X3 V X1X2X3 V X1X2X4 V X1X2X4) V

___ ___

V (X1X2X4 V X1X2X4 V X2X3X4 V X2X3X4) V

___ ___ ___

V (X1X2X4 V X1X2X4 V X1X3X4 V X1X3X4) V X1X2X3 =

___ ___ ___ ___ ___

= X1X4 V X2X4 V X3X4 V X3X4 V X1X2 V X2X4 V X1X4 V X1X2X3 =

___ ___

= X1X2 V X4 V X1X2X3.

Дальнейшее упрощение невозможно.

1.3.2 Метод Квайна

При минимизации по методу Квайна предполагается, что исходная функция задана в виде ДСНФ. Функция алгебры логики f1(X1X2…Xn) называется импликантой ФАЛ f2(X1X2…Xn), если на любом наборе переменных, на которых значение f1 равно единице, значение f2 также равно единице. Простая импликанта функции - импликанта типа элементарной конъюнкции некоторых переменных, никакая часть которой не является импликантой.

Задача минимизации по методу Квайна состоит из двух этапов:

нахождение простых импликант;

нахождение минимального покрытия.

При нахождении простых импликант производится попарное сравнение всех минитерм, входящих в ДСНФ, с целью выявления возможности склеивания. Таким образом, удается снизить ранг минитермов. Эта процедура проводится до тех пор, пока не останется ни одного члена, допускающего склеивание с каким-либо другим минитермом. Минитермы, подвергшиеся склеиванию, отмечаются. Неотмеченные минитермы представляют собой простые импликанты.

Наборы 4-го ранга

Наборы 3-го ранга

1

2

3

4

5

6

7

8

9

10

11

0001

0011

0100

0101

0110

0111

1001

1010

1011

1101

1111

1 (1-2)

2 (1-4)

3 (1-7)

4 (2-6)

5 (2-9)

6 (3-4)

7 (3-5)

8 (4-6)

9 (4-10)

10 (5-6)

11 (6-11)

12 (7-9)

13 (7-10)

14 (8-9)

15 (9-11)

16 (10-11)

00*1

0*01

*001

0*11

*011

010*

01*0

01*1

*101

011*

*111

10*1

1*01

101*

1*11

11*1

Наборы 2-го ранга

Наборы 1-го ранга

1 (1-8)

2 (1-12)

3 (2-4)

4 (2-13)

5 (3-5)

6 (3-9)

7 (4-15)

8 (5-11)

9 (6-10)

10 (7-8)

11 (8-16)

12 (9-11)

13 (12-16)

14 (13-15)

0**1

*0*1

0**1

**01

*0*1

**01

**11

**11

01**

01**

*1*1

*1*1

1**1

1**1

1 (1-13)

2 (2-11)

3 (4-7)

***1

***1

***1

В таблицах простые импликанты подчеркнуты. Следовательно их дизъюнкция даст нам сокращенную ДНФ, которую можно представить следующим образом:

___ ___

f(X1X2X3X4) = X1X2 V X4 V X1X2X3.

Полученное логическое выражение не всегда является минимальным. Поэтому исследуется возможность дальнейшего упрощения - нахождение минимального покрытия. Для этого составляется таблица, в строках которой записываются найденные простые импликанты, а в столбцах указываются минитермы исходного уравнения. Клетки этой таблицы отмечаются в случае, если простая импликанта входит в состав какого-либо минитерма.

0001

0011

0100

0101

0110

0111

1001

1010

1011

1101

1111

101*

*

*

01**

*

*

*

*

***1

*

*

*

*

*

*

*

*

Как видно из таблицы покрыть все столбцы можно только всеми полученными простыми минитермами. Следовательно все они войдут в МДНФ.

1.3.3 Метод Квайна-Маккласки

В отличие от метода Квайна, метод Маккласки основывается на задании элементарных конъюнкций ДСНФ не в их натуральном виде, а в виде условных чисел, которые называются номерами элементарных конъюнкций ДСНФ (соответствующих конституент единицы). Метод Маккласки позволяет существенно уменьшить число сравнений, осуществляемых на первом этапе, Это достигается тем, что разбив все множества конституент единицы на группы по индексу, сравнение осуществляется только между соседними группами, а не попарно всех, как в методе Квайна. Для определения простых импликант по методу Квайна-Маккласки достаточно попарно сравнить только наборы, входящие в соседние группы с индексами, отличающимися на 1. Это условие является достаточным в силу того, что только в соседние группы могут входить наборы, отличающиеся в одном разряде, т.е. склеивающиеся. Проведем склеивание по методу Квайна-Маккласки.

Наборы 4-го ранга

i

i=1

i=2

i=3

i=4

1

2

3

4

5

6

7

8

9

10

11

0001

0011

0100

0101

0110

0111

1001

1010

1011

1101

1111

1

2

1

2

2

3

2

2

3

3

4

0001

0100

0011

0101

0110

1001

1010

0111

1011

1101

1111

Распределенные наборы 4-го ранга

Наборы 3-го ранга

i

i=1

i=2

i=3

i=4

1 (1-2)

2 (1-4)

3 (1-7)

4 (2-6)

5 (2-9)

6 (3-4)

7 (3-5)

8 (4-6)

9 (4-10)

10 (5-6)

11 (6-11)

12 (7-9)

13 (7-10)

14 (8-9)

15 (9-11)

16 (10-11)

00*1

0*01

*001

0*11

*011

010*

01*0

01*1

*101

011*

*111

10*1

1*01

101*

1*11

11*1

3

2

1

2

1

4

3

3

1

4

1

3

2

4

2

3

*001

*011

*101

*111

0*01

0*11

1*01

1*11

00*1

01*0

01*1

10*1

11*1

010*

011*

101*

Распределенные наборы 3-го ранга

Наборы 2-го ранга

i

i=23

i=13

i=12

i=34

1 (1-8)

2 (1-12)

3 (2-4)

4 (2-13)

5 (3-5)

6 (3-9)

7 (4-15)

8 (5-11)

9 (6-10)

10 (7-8)

11 (8-16)

12 (9-11)

13 (12-16)

14 (13-15)

0**1

*0*1

0**1

**01

*0*1

**01

**11

**11

01**

01**

*1*1

*1*1

1**1

1**1

23

13

23

12

13

12

12

12

34

34

13

13

23

23

0**1

1**1

*0*1

*1*1

**01

**11

01**

Распределенные наборы 2-го ранга

Наборов первого ранга всего один: ***1, таким образом он также является простой импликантой. Следовательно, простых импликант у нас 3:

101*

01**

***1

В алгебраической форме это будет выглядеть так:

___ ___

f(X1X2X3X4) = X1X2 V X4 V X1X2X3.

Дальнейшие действия аналогична методу Квайна.

1.3.4 Метод карт Карно

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

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

___ ___

X1X2

___

X1X2

X1X2

___

X1X2

___ ___

X3X4

1

___

X3X4

1

1

1

1

X3X4

1

1

1

1

___

X3X4

1

1

Для полученных прямоугольников получим следующие конъюнкции:

L1 - X4

___

L2 - X1X2

___

L3 - X1X2X3

МДНФ примет следующий вид:

___ ___

f(X1X2X3X4) = X1X2 V X4 V X1X2X3.

квайн маккласки логический функция

1.3.5 Метод неопределенных коэффициентов

В данном методе для определения МДНФ используют следующие свойства:

1. X1+X2+ … + Xn = 0, если все Xi = 0 (i=1…n)

2. X1+X2+ … + Xn = 1, если хотя бы один элемент Xi = 1 (i 1…n)

Составим уравнения для данного метода.

= 0

= 1

= 0

= 1

= 1

= 1

= 1

= 1

= 0

= 1

= 1

= 1

= 0

= 1

= 0

= 1

В полученных уравнениях вычеркиваем строки, для которых функция равна нулю. Все коэффициенты, которые входят в эти строки, равны нулю, поэтому находим их в остальных строках и вычеркиваем. В результате получим:

= 1

= 1

= 1

= 1

= 1

= 1

= 1

= 1

= 1

= 1

= 1

Как уже было сказано, для всех уравнений выполняется следующее условие: левая часть будет тождественна правой, если хотя бы один коэффициент равен 1. Все остальные могут быть равными 0. Для того, чтобы получить МДНФ, необходимо приравнять один коэффициент соответствующий минитермам минимального ранга.

= 1 X4

___

= 1 X1X2

___

= 1 X1X2X3

В итоге получим минимальную ДНФ:

___ ___

f(X1X2X3X4) = X1X2 V X4 V X1X2X3.

Глава 2. Формализация задачи минимизации ФАЛ

2.1 Задача определения простых импликант по методу Квайна-Маккласки

1. Начало

2. Вычислить вектор-столбец индексов строк матрицы ДСНФ.

3. Расположить строки матрицы ДСНФ по возрастанию их индексов и формировать подматрицы из строк с одинаковыми индексами.

4. Определить путем попарного сравнения каждой строки матрицы с индексом i со всеми строками матрицы с индексом i+1 логически соседние строки.

1, если строки логически соседние,

P =

0, в противном случае.

Если i-я строка матрицы с индексом i логически соседняя со строкой с индексом i +1, то перейти к пункту 5, в противном случае перейти к пункту 6.

5. Пометить “*” символ, по которому строки логически соседние и сформировать новую строку (n-1)-го ранга.

6. Формировать массив простых импликант.

7. Из строк (n-1)-го ранга формировать новые подматрицы по позиции расположения в них “*”.

8. Определить путем попарного сравнения первой строки матрицы с (1+m)-й строкой логически соседние строки в каждой подматрицы

1, если строки логически соседние,

P =

0, в противном случае.

Если строки логически соседние, то перейти к пункту 9, в противном случае перейти к пункту 6.

9. Пометить “*” символ, по которому строки логически соседние и формировать массивы по методу расположения двух меток.

10. Перейти к пункту 8.

11. Конец.

Граф-схема алгоритма метода Квайна-Маккласки

Логическая схема алгоритма в нотации Ляпунова

1 1 2 3 2 3

VНV1 V2V3Z1^V4vvV5V6vZ2^V7Z3^VK.

VН - Начало

V1 - Ввод матрицы ДСНФ исследуемой ФАЛ.

V2 - Вычислить вектор столбец индексов строк матрицы ДСНФ.

V3 - Расположить строки матрицы ДСНФ по возрастанию их индексов и формировать подматрицы из строк с одинаковыми индексами.

V4 - Пометить “*” символ, по которому строки логически соседние и формировать новую строку из (n-1)-го ранга.

V5 - формировать массив простых импликант.

V6 - из строк (n-1)-го ранга формировать новую матрицу по позиции расположения метки.

V7 - Пометить “*” символ, по которому строки логически соседние, и формировать массивы по месту расположения двух меток.

Z1- Определить путем попарного сравнения каждой строки матрицы с индексом i со всеми строками матрицы с индексом i+1 логически соседние строки; если i-1 строка матрицы с индексом i логически соседние с 1-й строкой матрицы с индексом i+1, то перейти к V5, в противном случае к пункту V6.

Z2- Определить путем попарного сравнения 1-й строки матрицы с (1+m)-й строкой логически соседние строки в каждой подматрице; если строки логически соседние, то V9, в противном случае V6.

Z3- если нет больше склеивающихся наборов, то вывод результата, в противном случае V8.

2.2 Задача минимального покрытия по таблице меток в методе Квайна

Схема алгоритма для решения задачи минимального покрытия по таблице меток в методе Квайна

1. Начало.

2. Ввести матрицу ДСНФ исходной функции и простые импликанты, полученные в методе Квайна.

3. Составить таблицу меток.

4. Выбрать комбинацию из простых импликант.

5. Проверить, накрывают ли выбранные импликанты все столбцы таблицы меток. Если не накрывают, то переход к пункту 4.

6. Если данная комбинация не является минимальной, то переход к пункту 4.

7. Формируем минимальную ДНФ по выбранным простым импликантам.

8. Вывод полученной матрицы.

9. Конец.

Логическая схема алгоритма в нотации Ляпунова

1 2 1 2

VHV1V2V3V4 Z1 Z2V5V6VK

VH - начало.

V1 - ввести матрицу ДСНФ исходной функции и простые импликанты, полученные в методе Квайна.

V2 - составить таблицу меток.

V3 - выбрать комбинацию из простых импликант.

V4 - проверить, накрывают ли выбранные импликанты все столбцы таблицы меток.

Z1 - выбранные простые импликанты не накрывают всех столцов таблицы меток.

Z2 - данная комбинация не является минимальной.

V5 - формировать МДНФ.

V6 - вывод полученной матрицы.

VK - конец.

Граф-схема алгоритма

Глава 3. Синтез логической схемы

3.1 Синтез схемы для МДНФ в базисе Буля (И, ИЛИ, НЕ) с использованием двухвходовых логических элементов

В базисе Буля используется 3 логические схемы: НЕ, ИЛИ, И. Вот их графическое изображение:

X1 X1

__

X X X1VX2 X1*X2

X2 X2

Для аппаратной реализации минимальной ДНФ нам потребуется 3 ИМС серии К155 : одна ИМС К155ЛН1 (элементы НЕ), одна ИМС К155ЛЛ1 (элементы ИЛИ) и одна ИМС К155ЛИ1 (элементы И). Всего в базисе Буля используются 7 логических элементов. Схема для МДНФ в базисе Буля приведена в приложении.

3.2 Представление МДНФ в базисах Шеффера и Пирса

Базис Шеффера. Для того, чтобы реализовать минимальную ДНФ в базисе Шеффера, необходимо перевести базис Буля в базис Шеффера, в котором используется только один логический элемент: И-НЕ.

Формулы перевода из базиса Буля в базис Шеффера записываются следующим образом:

НЕ: X = X*X ИЛИ: X1VX2 = X1*X1 * X2*X2

И: X1*X2 = X1*X2 * X1*X2

Минимальная ДНФ выглядит так:

___ ___

f(X1X2X3X4) = X1X2 V X4 V X1X2X3.

Переведем ее в базис Шеффера с помощью указанных выше формул.

f(X1X2X3X4) = X1X2 V X4 V X1X2X3 = X4 · X1 · X2 · X1 · X3 · X2 =

= X4 · X1 · X2 · X1 · X3 · X2.

Отсюда видно, что для реализации минимальной ДНФ в базисе Шеффера требуется 10 элементов И-НЕ. Соответственно для аппаратной реализации нам потребуется 3 интегральные микросхемы К155ЛА3.

Базис Пирса. Для того, чтобы реализовать минимальную ДНФ в базисе Пирса, необходимо как и в предыдущем пункте перевести МДНФ из базиса Буля в базис Пирса, в котором используется только один элемент ИЛИ-НЕ.

Формулы перевода записываются следующим образом:

НЕ: X = XVX ИЛИ: X1VX2 = X1VX2 V X1VX2

И: X1*X2 = X1VX1 V X2VX2

Переведем МДНФ в базис Пирса.

f(X1X2X3X4) = X1X2 V X4 V X1X2X3 = X4 · X1 · X2 · X1 · X3 · X2.

Всего на реализацию МДНФ в базисе Пирса понадобится 11 логических элементов ИЛИ-НЕ, а для аппаратной реализации 3 ИМС серии К155 (К155ЛЕ1).

3.3 Сравнительный анализ аппаратурных затрат

Для проведения сравнительного анализа составим следующую таблицу:

Базисы

НЕ

и

или

и-не

или-не

Количество элементов

Количество корпусов

Буля

2

3

2

-

-

7

3

Шеффера

-

-

-

10

-

10

3

Пирса

-

-

-

-

11

11

3

Итак, можно подвести итоги: на реализацию МДНФ в различных базисах требуется разное кол-во логических элементов, но целесообразно выбрать тот базис, который будет более универсальным и на реализацию которого потребуется меньшее кол-во логических элементов. Как видно из этой таблицы наиболее рационально было бы применить для аппаратной реализации базис Буля, так как в нем используется меньше всего микросхем при одно м том количестве корпусов ИМС.

Заключение

В процессе выполнения курсовой работы я познакомился с методами минимизации функции, научился применять их на практике, глубже изучил вопросы синтеза схем в базисах Буля, Шеффера и Пирса. В данной курсовой работе приведено пять методов минимизации функции алгебры логики. Рассматривая их, можно сделать вывод об эффективности работы того или иного метода для решения вручную или для машинной реализации.

Программная реализация метода Квайна несколько неудобна, поскольку необходимо программировать операции над массивами переменного размера. С этой стороны удобнее использовать метод неопределенных коэффициентов, где используются массивы фиксированного размера. Кроме того, в методе Квайна проводится большое число проверок на склеивание минитерм, значительную часть которых можно опустить. Этого недостатка лишен метод Квайна-Маккласки. Здесь следует сказать, что оба эти метода не могут дать минимальную ДНФ. С их помощью можно получить только множество конъюнкций (простые импликанты), одна из комбинаций которых и будет являться МДНФ. Это создает дополнительные проблемы в получении МДНФ с помощью этих методов.

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

Методы минимизации очень важны при построении цифрового устройства, так как намного уменьшают аппаратурные затраты, что и продемонстрировано в данной работе.

Список использованной литературы

1. Гаджиев А.А. Методические указания к выполнению курсовой работы по дисциплине “Дискретная математика” для студентов специальности 22.01 (ВМКСиС). Махачкала, 1998 г.

2. Гаджиев А.А. Методические указания к выполнению лабораторного практикума по дисциплине “Дискретная математика” (часть 2. Математическая логика). Махачкала, 1998 г.

3. Савельев А.Я. Прикладная теория цифровых автоматов. Москва. 1987г.

Приложение

Приложение 1. Рабочая программа решения задачи по методу Квайна-Маккласки

Uses Crt;

Const

R = 4;

SR = 16;

Type

Diz = string[R];

Var

S :array[1..SR*2] of Diz;

Rez :array[1..SR*2] of Diz;

Flag :array[1..SR*2] of byte;

Y :array[1..SR] of byte;

IndexM : array[1..SR*2] of byte;

IndexS : byte;

IndexRez : byte;

i, j, k : byte;

FData : Text;

FRez : Text;

FDSNF : file of Diz;

FSImp : file of Diz;

{Функция формирования дизъюнкта}

Function MakeDiz(Number: byte): Diz;

Var

i : byte;

S : Diz;

C : char;

Begin

S:='';

for i:=0 to R-1 do

begin

C:=chr(((Number shr i) and $01) + 48);

Insert(C, S, 1);

end;

MakeDiz:=S;

End;

{Функция склеивания}

Procedure Stuck(S1, S2: Diz; IndexS1, IndexS2 : byte);

Var

i, k, n: byte;

Begin

k:=0; {кол-во разных}

for i:=1 to R do

if S1[i] <> S2[i] then

begin

k:=k+1;

n:=i;

end;

case k of

0 : begin

Inc(IndexRez);

Rez[IndexRez]:=S1;

Flag[IndexS1]:=1;

Flag[IndexS2]:=1;

end;

1 : if (S1[n]<>'*') and (S2[n]<>'*') then

begin

S1[n]:='*';

Inc(IndexRez);

Rez[IndexRez]:=S1;

Flag[IndexS1]:=1;

Flag[IndexS2]:=1;

end;

end;

End;

{Функция проверки на удаление пустого дизъюнкта}

Function Del(S : Diz): Boolean;

Var

i, k : byte;

Begin

Del:=False;

k:=0;

for i:=1 to R do

if S[i]='*' then

k:=k+1;

if k=R then

Del:=True;

End;

Procedure Clear;

Var

i, j : byte;

Begin

IndexS:=0;

for i:=1 to SR*2 do

begin

Flag[i]:=0;

S[i]:='';

end;

for i:=1 to IndexRez-1 do

if Flag[i]=0 then

for j:=i+1 to IndexRez do

if Rez[i]=Rez[j] then

Flag[j]:=1;

for i:=1 to IndexRez do

if Flag[i]=0 then

begin

Inc(IndexS);

S[IndexS]:=Rez[i];

end;

End;

{Процедура разбивает импликанты по индексам}

Procedure MakeIndex(F : Integer);

Var

i : Integer;

Function GetIndex(S : Diz; F : Integer): Integer;

Var

tS : Diz;

i, V, Code : Integer;

Begin

if F=0 then

begin

V:=0;

for i:=1 to 4 do

if S[i]='1' then

V:=V+1;

end

else

begin

tS:='';

for i:=1 to 4 do

if S[i]='*' then

tS:=tS+chr(i+48);

Val(tS, V, Code);

end;

GetIndex:=V;

End;

Begin

for i:=1 to IndexS do

IndexM[i]:=GetIndex(S[i], F);

End;

{Вывод на экран массива Rez}

Procedure PrintRezult(Step: Byte);

Var

IM : array[1..SR*2] of byte;

i, j, k, Count : byte;

Num : Integer;

Begin

ClrScr;

MakeIndex(Step);

for i:=1 to SR*2 do

IM[i]:=0;

if Step=0 then

WriteLn('Исходная ДНФ.')

else

WriteLn('Шаг : ', Step:2);

Count:=0; j:=1;

while Count<IndexS do

begin

Num:=1;

while IM[Num]=1 do

Num:=Num+1;

Num:=IndexM[Num];

k:=0;

for i:=1 to IndexS do

begin

GotoXY(j*8, 5+k);

if IndexM[i]=Num then

begin

Write(S[i]);

IM[i]:=1;

Count:=Count+1;

k:=k+1;

end;

end;

j:=j+1;

end;

ReadKey;

End;

{Основная программа}

Begin

ClrScr;

Assign(FDSNF, 'dsnf.dat');

Rewrite(FDSNF);

Assign(FSImp, 'simplimp.dat');

Rewrite(FSImp);

Assign(FRez, 'rezult.dat');

ReWrite(FRez);

{Считать массив Y из файла}

Assign(FData, 'func.dat');

Reset(FData);

for i:=1 to SR do

Read(FData, Y[i]);

Close(FData);

{Получить массив S}

for i:=1 to SR do

S[i]:=MakeDiz(i-1);

{Преоразовать S: оставив только те элементы, для которых Y=1. Результата в Rez}

IndexRez:=0;

for i:=1 to SR do

if Y[i]=1 then

begin

Inc(IndexRez);

Rez[IndexRez]:=S[i];

end;

for i:=1 to SR*2 do

S[i]:=Rez[i];

IndexS:=IndexRez;

for i:=1 to IndexS do

Write(FDSNF, S[i]);

PrintRezult(0);

{склеивание}

for i:=1 to R-1 do

begin

IndexRez:=0;

{------------------------------------------------------------------------}

for j:=1 to SR*2 do {подготовка массива Flag под склеивание}

Flag[j]:=0;

{------------------------------------------------------------------------}

for j:=1 to SR*2 do {склеивание}

Rez[j]:='';

for j:=1 to IndexS-1 do

for k:=j+1 to IndexS do

Stuck(S[j], S[k], j, k);

{------------------------------------------------------------------------}

for j:=1 to IndexS do {копирование несклеившихся компонент}

if Flag[j]=0 then

begin

Inc(IndexRez);

Rez[IndexRez]:=S[j];

end;

{------------------------------------------------------------------------}

Clear; {удаление одинаковых дизъюнктов}

{------------------------------------------------------------------------}

PrintRezult(i); {вывод результата на экран}

end;

{Удалить все дизъюнкты вида '****'}

IndexRez:=0;

for i:=1 to IndexS do

if not Del(S[i]) then

begin

Inc(IndexRez);

Rez[IndexRez]:=S[i];

end;

for i:=1 to IndexS do

Write(FSImp, S[i]);

PrintRezult(R);

Close(FSImp);

Close(FDSNF);

Close(FRez);

End.

Результаты работы программы

Исходная ДНФ.

0001 0011 0111 1111

0100 0101 1011

0110 1101

1001

1010

Шаг : 1

00*1 0*01 *001 010*

01*0 0*11 *011 011*

01*1 1*01 *101 101*

10*1 1*11 *111

11*1

Шаг : 2

0**1 *0*1 **01 01** 101*

1**1 *1*1 **11

Шаг : 3

***1 01** 101*

Шаг : 4

***1 01** 101*

Приложение 2. Рабочая программа решения задачи минимального покрытия по таблице

Uses Crt;

Type

string4 = String[4];

string16 = String[16];

TImpArray = array[1..16] of string4;

Var

DSNF : TImpArray; {ДСНФ}

SimpleImp : TImpArray; {Простые импликанты}

IndexDSNF : Integer;

IndexSImp : Integer;

QM : array[1..16, 1..16] of integer; {матрица покрытия}

S16Min : string16;

Procedure Input;

Var

FData : file of string4;

i : integer;

Begin

{ввод матрицы ДСНФ}

Assign(FData, 'dsnf.dat');

Reset(FData);

i:=0;

while not eof(FData) do

begin

Inc(i);

Read(FData, DSNF[i]);

end;

IndexDSNF:=i;

Close(FData);

{ввод простых импликант}

Assign(FData, 'simplimp.dat');

Reset(FData);

i:=0;

while not eof(FData) do

begin

Inc(i);

Read(FData, SimpleImp[i]);

end;

IndexSImp:=i;

Close(FData);

{конец ввода}

End;

Function Metka(n, m: integer): boolean;

Var

i, S : integer;

Begin

Metka:=False;

S:=0;

for i:=1 to 4 do

if SimpleImp[n, i]='*' then

S:=S+1

else

if SimpleImp[n, i]=DSNF[m, i] then

S:=S+1;

if S=4 then

Metka:=True;

End;

Procedure FormMatrix;

Var

i, j : integer;

Begin

for i:=1 to IndexSImp do

for j:=1 to IndexDSNF do

if Metka(i, j) then

QM[i, j]:=1

else

QM[i, j]:=0;

End;

Procedure PrintMatrix;

Var

i, j: integer;

Begin

TextColor(YELLOW);

WriteLn;

Write(' ');

for i:=1 to IndexDSNF do

Write(DSNF[i]:6);

WriteLn;

for i:=1 to IndexSImp do

begin

TextColor(YELLOW);

Write(SimpleImp[i]:6);

for j:=1 to IndexDSNF do

case QM[i, j] of

1 : begin TextColor(GREEN); Write(' #'); end;

0 : begin TextColor(GREEN); Write(' -'); end;

end;

WriteLn;

end;

End;

Function Bin(N :integer): string16;

Var

i : integer;

S : string16;

Begin

S:='0000000000000000';

i:=0;

while N>0 do

begin

Inc(i);

Insert(Chr((N mod 2)+48), S, i);

N:=N div 2;

end;

Bin:=S;

End;

Function Pokritie(var S: string16): boolean;

Var

V : array[1..16] of integer;

i, j, Sum: integer;

Begin

Pokritie:=False;

for i:=1 to 16 do

V[i]:=0;

for i:=1 to IndexSImp do

if S[i]='1' then

for j:=1 to IndexDSNF do

if QM[i, j]=1 then

V[j]:=1;

Sum:=0;

for i:=1 to IndexDSNF do

if V[i]=1 then

Sum:=Sum+1;

if Sum=IndexDSNF then

Pokritie:=True;

End;

Function Count(S: string16): integer;

Var

i, j, C: integer;

Begin

C:=0;

for i:=1 to IndexSImp do

if S[i]='1' then

for j:=1 to 4 do

if SimpleImp[i, j]<>'*' then

C:=C+1;

Count:=C;

End;

Procedure Min;

Var

i, j, Index : integer;

S16 : string16;

Begin

Index:=(1 shl IndexSImp)-1;

S16Min:='1111111111111111';

for i:=1 to Index do

begin

S16:=Bin(i);

if Pokritie(S16) then

if Count(S16)<Count(S16Min) then

S16Min:=S16;

end;

End;

Procedure PrintRezult;

Var

i : integer;

Begin

WriteLn;

WriteLn;

TextColor(YELLOW);

WriteLn(' МДНФ.');

WriteLn;

TextColor(GREEN);

for i:=1 to IndexSImp do

if S16Min[i]='1' then

WriteLn(SimpleImp[i]:8);

End;

Begin

ClrScr;

WriteLn('Нахождение минимального покрытия по таблице меток.');

Input; {ввод данных}

FormMatrix; {формирование матрицы покрытия для ее дальнейшей обработки}

PrintMatrix; {вывод матрицы}

Min; {нахождение минимального покрытия по таблице меток}

PrintRezult; {печать МДНФ}

ReadKey;

End.

Результаты работы программы

Нахождение минимального покрытия по таблице меток.

0001 0011 0100 0101 0110 0111 1001 1010 1011 1101 1111

***1 # # - # - # # - # # #

01** - - # # # # - - - - -

101* - - - - - - - # # - -

МДНФ.

***1

01**

101*

Размещено на Allbest.ru


Подобные документы

  • Определение МДНФ логической функции устройства различными методами (Квайна, Петрика, неопределенных коэффициентов и др.). Составление алгоритма метода минимизации функции и разработка его рабочих программ. Выполнение синтеза схемы логического устройства.

    курсовая работа [60,2 K], добавлен 21.11.2010

  • Определение констант нуля и установление эквивалентности линейных функций при помощи таблицы истинности. Нахождение минимальной дизъюнктивной нормальной формы функции с помощью метода неопределенных коэффициентов. Преобразование функции методом Квайна.

    контрольная работа [335,2 K], добавлен 05.07.2014

  • Синтез схемы, реализующей функцию, заданную кубическим комплексом в универсальном базисе логических элементов ИЛИ-НЕ. Нахождение минимального и построение факторизованного покрытий. Составление логической схемы и ее проверка контролирующим тестом.

    курсовая работа [261,7 K], добавлен 16.06.2011

  • Логическая переменная в алгебре логики. Логические операции: отрицание, конъюнкция, дизъюнкция, импликация, эквивалентность. Основные законы алгебры логики. Правила минимизации логической функции (избавление от операций импликации и эквивалентности).

    курсовая работа [857,2 K], добавлен 16.01.2012

  • Логика - наука о законах и формах мышления, а основное понятие алгебры логики - высказывание. Основные понятия и тождества булевой алгебры. Изучение методов минимизации булевых функций. Метод Квайна, основанный на применении двух основных соотношений.

    контрольная работа [178,2 K], добавлен 20.01.2011

  • Алгоритм построения многочлена Жегалкина по совершенной дизъюнктивной нормальной форме. Диаграмма Эйлера-Венна, изображение универсального множества и подмножества. Проверка самодвойственности, монотонности и линейности логической функции двух переменных.

    контрольная работа [227,5 K], добавлен 20.04.2015

  • Основные аксиомы и тождества алгебры логики. Аналитическая форма представления булевых функций. Элементарные функции алгебры логики. Функции алгебры логики одного аргумента и формы ее реализации. Свойства, особенности и виды логических операций.

    реферат [63,3 K], добавлен 06.12.2010

  • Составление таблицы истинности. Получение уравнений функций алгебры логики для заданных выходов. Реализация схемы логического автомата на электромагнитных реле РП-23, на диодной матрице. Реализация структурной схемы логического автомата, на микросхемах.

    курсовая работа [862,4 K], добавлен 12.12.2012

  • Минимизация заданного выражения алгебры множеств на основании известных свойств. Анализ заданного бинарного отношения в общем виде. Вывод формул булевых функций для каждого элемента и схемы в целом. Преобразование формулы булевой функции логической схемы.

    контрольная работа [286,7 K], добавлен 28.02.2009

  • Логический синтез устройства с использованием соотношений булевой алгебры. Составление таблицы истинности. Основные соотношения булевой алгебры. Логическая функция в смысловой, словесной, вербальной, табличной и аналитической математической формах.

    лабораторная работа [83,6 K], добавлен 26.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.