рефераты рефераты
Главная страница > Курсовая работа: Методы минимизации логических функций  
Курсовая работа: Методы минимизации логических функций
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Методы минимизации логических функций



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;

 for i:=1 to IndexRez do

 if Flag[i]=0 then

 begin

 Inc(IndexS);

 S[IndexS]:=Rez[i];

 end;

 End;

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

 Procedure PrintRezult(Step: Byte);

 Var

 i : byte;

 Begin

 WriteLn('{------------------------------------------------}');

 WriteLn(FRez, '{-----------------------------------------}');

 if Step=0 then

 begin

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

 Write(FRez, 'Исходная ДНФ.');

 end

 else

 begin

 Write('Шаг номер :', Step:2, '.');

 Write(FRez, 'Шаг номер :', Step:2, '.');

 end;

 WriteLn(' Количество дизъюнктов :', IndexS:2);

 WriteLn(FRez, ' Количество дизъюнктов :', IndexS:2);

 for i:=1 to IndexS do

 begin

 WriteLn(S[i]);

 WriteLn(FRez, S[i]);

 end;

 ReadKey;

 End;

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

Begin

 ClrScr;

 Assign(FDSNF, 'dsnf.dat');

 Rewrite(FDSNF);

Страницы: 1, 2, 3, 4, 5, 6, 7

рефераты
Новости