85997 (Методы минимизации логических функций), страница 3

2016-07-30СтудИзба

Описание файла

Документ из архива "Методы минимизации логических функций", который расположен в категории "". Всё это находится в предмете "математика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "математика" в общих файлах.

Онлайн просмотр документа "85997"

Текст 3 страницы из документа "85997"

1 1

VHV1V2V3V4V5Z1V6V7VK

VH – начало.

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

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

V3 – по таблице меток построить конъюнкцию дизъюнкций, каждая из которых есть совокупность тех импликант, которые в данном столбце имеют метки.

V4 – произвести раскрытие скобок в полученном выражении с учетом законов поглощения.

V5 – выбрать одну из полученных конъюнкций и представить ее как совокупность соответсвующих простых импликант.

Z1 – если выбранная комбинация не является минимальной, то перейти к пункту 6, в противном случае перейти к пункту 8.

V6 – формировать МДНФ.

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

VK – конец.

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


V7

V4

V3

V2

V1


Описание машинных процедур

Procedure FormMatrix;

Данная процедура формирует матрицу меток путем попарного анализа дизъюнктов из ДСНФ и матрицы простых импликант. Если стравнение прошло успешно, то соответствующему элементу матрицы меток присваивается значение 1, в противном случае – значение 0.

Function Pokritie(var S: string16): boolean;

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

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

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

ИЛИ

И

НЕ

X1 X1

__

X X X1VX2 X1*X2

X2 X2


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

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

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


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


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

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

f (X1, X2, X3, X4) = X3X4VX2X3VX1X3VX1X2X4VX1X2X4;

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


О бозначим A = X3X4VX2X3VX1X3 = X3·( X4VX2VX1) = X3·X4·X4·X2·X1=


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


B = X1X2X4VX1X2X4= X1·(X2·X4VX2·X4) = X1·X1·X2·X2·X4·X4·X2·X4.


О кончательно получим Y = A · B .

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

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

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


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


И: X1*X2 = X1VX1 V X2VX2

Переведем МДНФ в базис Пирса. Введем обозначения:


A = X3X4VX2X3VX1X3 = X3·X4·X2·X3·X1·X3 = X3VX4VX2VX3VX1VX3.


B = X1·(X2X4VX2X4) = X1·(X2·X4·X2·X4) = X1·X2VX4VX2VX4 =


= X1VX2VX4VX2VX4.

Y = A V B.

Чтобы реализовать каждую отдельную логическую сумму нам потребуется 2 элемента ИЛИ-НЕ, т.е. для 4-х логических сумм, которые составляют функцию, нам потребуется 6 логических элементов.

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

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

Заключение

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

Иначе выглядит метод неопределенных коэффициентов. Для машинной реализации он подходит больше других, так как в нем мы имеем дело с массивами, для работы с которыми не надо особо сложной логики. И конечно ручное исполнение этого метода крайне нерационально, так как приходиться решать систему из 16-ти уравнений. Это для четырех переменных, а для пяти это будет 32 уравнения. Такой метод для ручного исполнения не подходит.

В задаче курсовой работы также входил синтез логической схемы. Полученная схема МДНФ была реализована в трех базисах: Буля, Пирса, Шеффера. Анализ и оценка аппаратурных затрат также приведена в данной записке.

Список литературы

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

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

Приложение

Программа для метода Квайна

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;

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;

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5231
Авторов
на СтудИзбе
424
Средний доход
с одного платного файла
Обучение Подробнее