281

digitalna logika

Embed Size (px)

DESCRIPTION

Dokument

Citation preview

Page 1: digitalna logika
Page 2: digitalna logika

Цвета Мартиновска

Дигитална логика

Штип, 2011

Page 3: digitalna logika

Рецензенти: Проф. д-р Зоран Гацовски Проф. д-р Иван Краљевски

ФОН Универзитет - Скопје Лектор: Д-р Толе Белчев Издавач: Универзитет „Гоце Делчев“ – Штип Печати: Печатница 2-ри Август - Штип Тираж: 300 примероци

CIP – Каталогизација во публикација Национална и универзитетска библиотека „Св. Климент Охридски“-Скопје 004.312(075.8) МАРТИНОВСКА, Цвета Дигитална логика / Цвета Мартиновска. Штип: Универзитет „Гоце Делчев“, Факултет за информатика, 2011. -275 стр.: табели: 21 см Библиографија: стр.274 ISBN 978-608-4504-40-5 а) Компјутерски системи – Логички кола – Високошколски учебници COBISS.MK-ID 89142282

Page 4: digitalna logika

Предговор Книгата содржи материјал за логичките кола и нивното поврзување во компоненти кои ги извршуваат аритметичките и логичките операции над бинарните броеви кај компјутерите. Се воведуваат основните поими потребни за проучување на архитектурата на компјутерите. Наменета е за студентите по предметот Дигитална логика на Факултетот за информатика при Универзитетот „Гоце Делчев“ -Штип. Секако, може да им користи на сите оние кои се занимаваат со проектирање на комбинациони и секвенцијални мрежи како елементи на дигиталните компјутери и други дигитални системи. Во првиот дел се опишуваат начини на претставување на броевите и другите податоци кај компјутерите. Се разгледува преведување од еден во друг броен систем, кодирање, откривање и коригирање на грешки во податоците. Во вториот дел се дефинирани основните поими за Буловата алгебра и теоријата на прекинувачките функции. Се воведуваат логичките кола за реализација на Буловите функции. Во третиот дел се вклучени методите за минимизација на прекинувачките функции, кои овозможуваат наоѓање на оптимална форма за хардверска реализација. Се разгледуваат; методот Карноови мапи и методот Квин-МекКласки. Четвртиот дел е посветен на анализа и синтеза на комбинациони кола составени од основните логички порти И, ИЛИ, НЕ, НИ и НИЛИ. Опишана е реализацијата на функциите со мултиплексери и декодери како стандардни интегрирани кола. Се разгледуваат основните аритметички кола, како и програмабилните уреди ROM, PAL и PLA. Во последниот дел е претставена анализа и синтеза на секвенцијални кола со различни флип-флопови. Како основни алатки се воведуваат табелите и графовите на состојби. Претставени се различни изведби на регистри и бројачи кои претставуваат стандардни секвенцијални кола. Авторот е однапред благодарен за сите сугестии и предлози во врска со содржината на книгата.

Page 5: digitalna logika
Page 6: digitalna logika

I

Содржина

1. БРОЈНИ СИСТЕМИ И КОДОВИ ........................................................ 1

1.1 Позициони бројни системи.................................................... 2 Бинарни, октални и хексадекадни конверзии ........................ 3 Конверзија во декаден броен систем ...................................... 4 Конверзија од декаден во друг броен систем ........................ 5 Конверзија од еден во друг броен систем .............................. 6

1.2 Бинарна аритметика ............................................................... 6 1.3 Претставување на броеви .................................................... 12 1.4 Комплемент аритметика ...................................................... 16 1.5 Претставување на броеви со подвижна запирка ............... 22 1.6 Бинарни кодови .................................................................... 25

Самокомплементирачки BCD кодови .................................. 32 Циклични кодови .................................................................... 34 Kонтрола на точност на пренесените информации ............ 37

1.7 Алфанумерички кодови ....................................................... 52 1.8 Примери................................................................................. 56 1.9 Задачи .................................................................................... 59

2. ПРЕКИНУВАЧКА АЛГЕБРА ............................................................ 63 2.1 Аксиоми и теореми во Булова алгебра ............................... 64 2.2 Прекинувачки операции ...................................................... 70 2.3 Прекинувачки изрази ........................................................... 71 2.4 Минтерм, макстерм и канонични форми ........................... 72 2.5 Генерализација на Де Моргановите закони ....................... 74 2.6 Прекинувачки функции ....................................................... 75 2.7 Шенонова теорема ................................................................ 79

Форма сума од производи...................................................... 79 Форма производ од суми ....................................................... 81

2.8 Елементарни логички кола .................................................. 82 Универзални множества на операции .................................. 83 Симболи за логичките порти ................................................. 84 Алтернативно претставување на портите ............................ 85 Претставување на функции со НИ и НИЛИ порти ............. 87

2.9 Електронски компоненти..................................................... 89

Page 7: digitalna logika

II

Интегрални кола ..................................................................... 90 2.10 Примери............................................................................... 92 2.11 Задачи .................................................................................. 96

3. ИМПЛЕМЕНТАЦИЈА НА ПРЕКИНУВАЧКИ ФУНКЦИИ ........... 99 3.1 Алгебарска минимизација ................................................. 100 3.2 Импликанти и имплиценти................................................ 101 3.3 Минимизација со Карноови мапи ..................................... 103

Карноови мапи за функции со 5 и 6 променливи .............. 113 Минимизација на непотполно дефинирани функции ....... 115 Карнови мапи за минимални ДНФ и КНФ на функциите 116 Составување на комбинациони кола .................................. 119 Минимизација на мрежи со повеќе излези ........................ 123

3.4 Минимизација со метод Квин-МекКласки ...................... 125 Минимизација на потполно дефинирани функции ........... 126 Минимизација на непотполно дефинирани функции ....... 134 Циклична табела на примарни импликанти ...................... 136 Разлики при одредување минимални ДНФ и КНФ на функции ................................................................................. 137 Минимизација на систем од функции ................................ 141

3.5 Примери............................................................................... 146 3.6 Задачи .................................................................................. 148

4. КОМБИНАЦИОНИ КОЛА .............................................................. 151 4.1 Аритметички кола .............................................................. 152

Бинарни собирачи ................................................................ 152 Бинарни одземачи................................................................. 160

4.2 Мултиплексер ..................................................................... 164 4.3 Демултиплексер .................................................................. 170 4.4 Декодер и кодер .................................................................. 172 4.5 ROM (Read Only Memory) ................................................. 176 4.6 Програмабилни логички уреди ......................................... 178

Програмабилно логичко поле ............................................. 179 Логика на програмабилно поле ........................................... 182

4.7 Примери............................................................................... 184 4.8 Задачи .................................................................................. 206

5. СЕКВЕНЦИЈАЛНИ КОЛА .............................................................. 209 5.1 Лечеви и флип-флопови ..................................................... 212

SR леч .................................................................................... 212 D леч ...................................................................................... 217 Флип-флопови ...................................................................... 220

Page 8: digitalna logika

III

Формирање на флип-флопови од лечеви ........................... 221 JK флип-флоп ........................................................................ 222 D флип-флоп кој се тригерира на раб ................................. 224 T флип-флоп .......................................................................... 225 Табели на побуди на флип-флоповите ............................... 227

5.2 Анализа на секвенцијални кола ........................................ 228 5.3 Синтеза на секвенцијални кола ......................................... 232 5.4 Еквивалентност на состојби и минимизација на секвенцијални машини ............................................................ 234 5.5 Изведување на функции на побуда ................................... 239 5.6 Правила за бинарно кодирање на состојбите .................. 245 5.7 Регистри и бројачи ............................................................. 251

Регистри ................................................................................. 252 Бројачи ................................................................................... 256

5.8 Примери............................................................................... 262 5.9 Задачи .................................................................................. 269

Литература ............................................................................................. 272

Page 9: digitalna logika
Page 10: digitalna logika

1. БРОЈНИ СИСТЕМИ И КОДОВИ

Page 11: digitalna logika

2 Дигитална логика

Како дигитален уред компјутерот ги обработува сите инструкции и податоци во бинарен облик, односно како низи од нули и единици. Во оваа глава се разгледуваат различни репрезентации на броевите и другите податоци кај компјутерите.

1.1 Позициони бројни системи

Бројните системи може да бидат позициони и непозициони. На пример, непозиционен броен систем е системот на римски броеви. Кај позиционите бројни системи важна е позицијата на цифрата во бројот. Бројот N во броен систем со основа b кај позиционите бројни системи се означува

bmnnb PPPPPPPN ) ... .... ()( 21011 −−−−= (1.1) каде b>1 и 10 −≤≤ bPi . Позиционата репрезентација на бројот N има облик

mm

nn

nnb bPbPbPbPbPbPN −

−−

−−

−−

− +++++++= ......)( 22

11

00

11

∑−=

=n

mi

iib bPN )( (1.2)

Во табела 1.1 се претставени најчесто користените бројни системи, со нивните основи и цифри. Во позиционата репрезентација на бројот, цифрата nP се нарекува

најзначајна цифра (MSD - Most Significant Digit), а цифрата 0P најмалку значајна цифра (LSD - Least Significant Digit). Пример 1.1:

012310 104103102101)1234( +++=

Позиционата репрезентација на декадниот број 1234 во броен систем со основа b=10 е

Page 12: digitalna logika

1. Бројни системи и кодови 3

Табела 1.1: Бројни системи, основи и цифри на бројните системи

име основа цифри бинарен 2 0,1 тернарен 3 0,1,2 кватернарен 4 0,1,2,3 квинтален 5 0,1,2,3,4 октален 8 0,1,2,3,4,5,6,7 декаден 10 0,1,2,3,4,5,6,7,8,9 дуодекаден 12 0,1,2,3,4,5,6,7,8,9,А,B хексадекаден 16 0,1,2,3,4,5,6,7,8,9,A, B,C,D,E,F

Бинарни, октални и хексадекадни конверзии

За окталниот и хексадекадниот броен систем конверзијата во бинарен систем е едноставна. Општо, за броеви од бројни системи каде основата е степен на бројот 2, конверзијата во бинарни броеви е едноставна. Претворањето од бинарен во октален броен систем се врши на тој начин што бинарните цифри се групираат по 3 и тоа почнувајќи од запирката налево за целиот дел и надесно за децималниот дел. Потоа, секоја група од 3 цифри се претвора во октална вредност. Доколку е потребно, пред бројот може да се додадат нули при групирање на целиот дел. Исто така, може да се додадат нули по бројот, при групирање на децималниот дел. Со три бита може да се претстават броевите од 0 до 7. Пример 1.2: Да се претстави бинарниот број 10110111011,1101 во октален број. 010 110 111 011, 110 100 2 6 7 3 6 4 Претворањето од октален во бинарен систем се прави со замена на секоја октална цифра со нејзината 3-битна бинарна репрезентација. Слично, за претворање на бинарен во хексадекаден број се формираат групи од 4 цифри и се претвораат во хексадекадна вредност.

= (2673,64)8

Пример 1.3: Да се претстави бинарниот број 10100 во хексадекаден и декаден броен систем.

Page 13: digitalna logika

4 Дигитална логика

0001 0100

Конверзија во декаден броен систем

= (14)16 = (20)10 1 4

Еден начин на конверзија на број од систем со било која основа во декаден броен систем се изведува со користење на позиционата репрезентација. Позиционата репрезентација уште се нарекува полиномијална репрезентација. Пример 1.4:

625,1181

21128

21202121212021 3210123

=++++

=++++++ −−−

Да се претвори бинарниот број 1011.101 во декаден

Пример 1.5:

3 5 2 5 4 5 1 5 4463 2 1 0 + + + =

Да се претвори квинталниот број (3241)5 во декаден

Друг начин на конверзија на број во декаден е со користење на формулата ( ) ...N P b P b P bb n

nn

n= + + +−−

11

00

))...)))((...( 0121 PbPbPbPbP nnn ++++= −− . (1.3) Оваа формула се користи за претворање на целиот дел од бројот во декаден броен систем. Ваквиот начин на претставување овозможува конверзија на бројот во чекори, односно претворањето се врши со последователно множење со основата и собирање. Пример 1.6: Бројот (3241)5 се претвора во декаден така што се множи секоја цифра почнувајќи од најзначајната цифра со основата 5 и производот се собира со следната цифра 3*5+2=17 17*5+4=89 89*5+1=(446)10 Претворање на децималниот дел од бројот се врши со користење на следната формула

Page 14: digitalna logika

1. Бројни системи и кодови 5

( ) ...N P b P b P bb m

m= + + +−−

−−

−−

11

22

= + + +−

−−

−−

−b P b P b P m1

11

21( ( ... ( )...)) (1.4)

Според формулата 1.4 претворањето на децималниот дел е последователно делење со основата на бројниот систем и собирање. Пример 1.7

Конверзија од декаден во друг броен систем

: Да се претвори (0,534)8 во декаден броен систем. Се започнува од најмалку значајната цифра 4 и се изведува последователно делење со основата на бројниот систем 8 и собирање на следната цифра. 4:8 + 3 = 3,50 3,50:8 + 5 = 5,4375 5,4375:8 + 0 = 0,6796875

Претворањето на број од декаден броен систем во броен систем со основа b, за целиот дел од бројот, се изведува со последователно делење со основата и запишување на остатокот, се до добивање на 0 како количник. Пример 1.8:

44:2 = 22 остаток 0 22:2 = 11 остаток 0 11:2 = 5 остаток 1 5:2 = 2 остаток 1 2:2 = 1 остаток 0 1:2 = 0 остаток 1 Запишаните остатоци од долу нагоре го претставуваат бројот во бинарен броен систем (44)10=(101100)2. Претворањето на децималниот дел од бројот од декаден во систем со основа b се изведува со последователно множење на бројот со основата и одземање на целиот дел, се до добивање на 0, ако е тоа можно. Во случај да не се добие нула, бројот во бројниот систем со основа b има бесконечно многу цифри по запирката.

Да се претвори (44)10 во бинарен броен систем.

Page 15: digitalna logika

6 Дигитална логика

Пример 1.9

Конверзија од еден во друг броен систем

: Да се претвори (0,6796875)10 во октален броен систем. 0,6796875*8 = 5,4375 0,4375*8 = 3,50 0,50*8 = 4,0 0 Според тоа (0,6796875)10 = (0,534)8.

Оваа конверзија се изведува со претворање на броевите од системот со основа b1 во декаден броен систем и потоа на декадните броеви во броеви на систем со основа b2. Пример 1.10:

( ) ( )16 1 7 6 7 1371 0

10= + =

Да се конвертира (16)7 во систем со основа 3.

13 : 3 = 4 остаток 1 4 : 3 = 1 остаток 1 1 : 3 = 0 остаток 1 (13)10=(111)3 Ако при конверзија на броеви од еден во друг броен систем процесот не завршува, во тој случај група на цифри се повторуваат бесконечно. Пример 1.11:

( , ) ( , ...) ( , )0 1 1 3 0 333 0 331

10 10= = =−

Конверзија на (0,1)3 во декаден броен систем.

Пример 1.12:

( , ) ( , ...) ( , )0 2 2 11 0 1818 0 18111

10 10= = =−

Конверзија на (0,2)11 во декаден броен систем.

1.2 Бинарна аритметика

• Бинарно собирање

Во табелата 1.2 се претставени правилата за бинарно собирање.

Page 16: digitalna logika

1. Бројни системи и кодови 7

Табела 1.2: Табела за бинарно собирање сума пренос (carry) 0+0=0 0 0+1=1 0 1+0=1 0 1+1=0 1

Преносот е цифра која треба да се додаде на следната колона во лево. Според правилата за собирање:

- збир на две 0 дава 0 - збир на 0 и 1, или 1 и 0 дава 1 - збир на две 1 дава 0 како резултат и 1 како пренос кон битот

со поголема тежина. Општо правило за собирање е да се соберат колоните децимално и да се подели со базата на бројниот систем. Остатокот се внесува како сума за таа колона, а коефициентот се додава на следната колона во лево. Пример 1.13:

• Бинарно одземање

Собирање на два бинарни броеви: 1 11 11 пренос 1001.011 (9.375)10 +1101.101 (13.625)10

________ _________ 10111.000 (23)10

Во табелата 1.3 се претставени правилата за бинарно одземање. Табела 1.3: Табела за бинарно одземање

Разлика позајмување (borrow) 0-0=0 0 0-1=1 1 1-0=1 0 1-1=0 0

Ако треба да се позајми, а во колоната со поголема тежина има цифра 1, цифрата во тековната колона се менува во 2 а во колоната со поголема тежина во 0.

02 позајмување 10

- 01 ___ 01

Page 17: digitalna logika

8 Дигитална логика

Ако колоната од која треба да се позајми има цифра 0 се оди на претходна и таа се менува во 0, сите следни во 1, а последната во 2. 0112 позајмување 11000 24 - 10001 -17 ______ ___ 00111 7

• Шифтирање/поместување (shift) Шифтирање на запирката к места во лево одговара на делење на бројот со 2к, односно множење со 2-к, додека шифтирање на запирката к места во десно одговара на множење со 2к. Пример 1.14:

• Бинарно множење

Ако е даден бројот (110.101)2=(6.625)10 со шифтирање на запирката за 2 места во лево се врши делење со 22 (множење со 2-2) и се добива (1.10101)2=2-2(6.625)10=(1.65625)10 а со шифтирање на запирката за 2 места во десно се врши множење со 22 односно (11010.1)2=22(6.625)10=(26.5)10.

Во табелата 1.4 се претставени правилата за бинарно множење

Табела 1.4: Табела на бинарно множење производ

0x0=0 0x1=0 1x0=0 1x1=1

Пример 1.15: Множење на два бинарни броја 110.10 и 10.1 се изведува на следниот начин 110.10

x 10.1 ________ 11010 11010 ___________ 10000.010

Page 18: digitalna logika

1. Бројни системи и кодови 9

Знакот на производот е негативен ако едниот од множителите е негативен. Можно е да се изведе множење на негативни броеви претставени со комплемент. Ова се изведува со шема Booth Algorithm, со која се забрзува множењето.

• Бинарно делење Бинарното делење е слично на децималното делење. Бидејќи делителот може да се содржи 1 или 0 пати во деленикот бинарното делење е едноставно. Меѓу операциите множење и одземање се изведуваат во бинарниот систем. Пример 1.16:

- 110

Делење на броевите (11000)2= (24)10 и (110)2= (6)10 11000 : 110 = 100

_____ = = 00

Пример 1.17:

- 111

Делење на броевите (101110)2= (46)10 и (111)2= (7)10 101110 : 111 = 0110

_____ 1011

- 111 _____ =1001

- 111 ______ 100 остаток

За да се имплементира бинарно делење на компјутер мора да се користи алгоритам за делење. Во продолжение се опишани 2 алгоритми за делење: со враќање на претходната вредност на деленикот и без враќање на претходната вредност на деленикот (restoring and nonrestoring algorithm).

• Алгоритам за делење со враќање на претходната вредност на деленикот

Во првиот чекор делителот се одзема од деленикот со подредени најлеви цифри. Ако резултатот е позитивен, се пишува 1 во

Page 19: digitalna logika

10 Дигитална логика

количникот како најдесна цифра. Во деленикот се додава следната цифра, делителот се шифтира едно место во десно и се повторува постапката. Ако резултатот е негативен, се пишува 0 во количникот и делителот се собира со негативниот резултат, односно се врши враќање на оригиналниот деленик. Потоа делителот се шифтира едно место во десно и пак се врши делење. Пример 1.18: Да се изврши делењето (1100)2:(1111)2, односно (12)10:(15)10. одземи 1100 -1111 _____ q0=0 нег.рез. -0011 restore +1111 _____ 11000 одземи -1111 ______ q-1=1 поз.рез. 10010 одземи -1111 _______ q-2=1 поз.рез. 000110 одземи -1111 _______ q-3=0 нег.рез. -1001 restore +1111 _______ 01100 одземи - 1111 ________ q-4=0 нег.рез. - 0011 restore + 1111 ________ 11000 одземи - 1111 _________ q-5=1 поз.рез. 1001 остаток Количникот е q0.q-1q-2q-3q-4q-5 односно 0.11001, а остатокот 1001.

Page 20: digitalna logika

1. Бројни системи и кодови 11

• Алгоритам за делење без враќање на претходната вредност на деленикот

Чекорот на додавање на делителот кон парцијалниот негативен деленик не се изведува. Наместо тој чекор се изведува собирање на шифтираниот делител со негативниот парцијален деленик. Овој чекор заменува 2 чекори: додавање на делителот и одземање на шифтираниот делител. Следните чекори ја објаснуваат оправданоста на постапката: Нека X е парцијален негативен деленик, Y е делител, а 1/2Y е шифтирање на делителот за едно место во десно. Додавање на делителот и потоа одземање на шифтираниот делител е X+Y-1/2Y=X+1/2Y, што всушност е додавање на шифтираниот делител. Пример 1.19: Да се изврши делењето (1100)2:(1111)2, односно (12)10:(15)10. 1100 одземи - 1111 _____ q0=0 нег.рез. - 00110 shift+add + 1111 ______ q-1=1 поз.рез. + 10010 shift+subtract -1111 ______ q-2=1 поз.рез. +00110 shift+subtract -1111 ________ q-3=0 нег.рез. -10010 shift+add +1111 ________ q-4=0 нег.рез. -00110 shift+add +1111 _________ q-5=1 поз.рез. +1001 остаток Количникот е q0.q-1q-2q-3q-4q-5 односно 0.11001, а остатокот 1001.

Page 21: digitalna logika

12 Дигитална логика

1.3 Претставување на броеви

Кај компјутерите броевите може да се претстават на три начина: со фиксна запирка (fixed point), со подвижна запирка (floating point) и како бинарно кодирани декадни броеви (BCD-Binary Coded Decimals). Основните математички операции: собирање, одземање, множење и делење може да се изведуваат во сите три начина на претставување на броевите. Кога се работи со броеви претставени со фиксна запирка се разликуваат операции врз целиот дел (запирката е десно од бројот) и операции врз децималниот дел (запирката е лево од бројот). Ако компјутерот има збор од 8 бита бројот 10102 во форматот со фиксна запирка се претставува со дополнување на водечки нули

позиција на запирката

а бројот 0.00110 се дополнува со нули од десната страна.

позиција на запирката При бинарно кодирање на декадни броеви секоја декадна цифра се претставува со четири бинарни цифри. BCD броевите може да бидат во пакуван и непакуван формат. Во пакуваниот формат две декадни цифри се претставуваат со еден бајт, а во непакуваниот формат една декадна цифра се претставува со еден бајт а се сместува во долниот нибл. Нибл е група од четири бита.

• Претставување на негативните броеви Во формат со фиксна запирка со n бита може да се претстават позитивните цели броеви од интервалот [0,2n-1]. При претставување на негативните цели броеви еден бит се користи за претставување на знак. Бит за знак вообичаено е битот со најголема тежина. Другите битови ја претставуваат вредноста на бројот или комплемент на вредноста на бројот.

0 0 0 0 1 0 1 0 .

. 0 0 1 1 0 0 0 0

Page 22: digitalna logika

1. Бројни системи и кодови 13

Постојат три начини за претставување на целите броеви: знак-модул, единечен комплемент и двоен комплемент. Позитивните броеви во сите три нотации се претставуваат со нивната бинарна репрезентација. Репрезентацијата наречена знак-модул (sign-magnitude) се обележува со SM. Кај овој систем најзначајната цифра го означува знакот, а другите цифри се апсолутната вредност на бројот. При собирање на броеви со различен знак прво мора да се споредат апсолутните вредности на собироците за да се одреди знакот на резултатот. Недостаток на овој систем е двојното претставување на нулата. Нулата се претставува како -0 и +0. Опсегот на броеви кои може да се претстават со n бита кога се користи репрезентација знак-модул е [-(2n-1-1),2n-1-1]. Единечниот комплемент на бројот N вообичаено се означува со N или N1C. Се нарекува уште непотполн комплемент и претставува комплемент до најголемата цифра на бројниот систем. Во бинарниот броен систем тоа е 1. За декаден броен систем најголемата цифра е 9. Нека во декаден броен систем треба да се најде комплемент на деветката за четирицифрени броеви. Бројот чиј комплемент до девет се бара треба да се одземе од основата на бројниот систем на степен 4 минус 1 или NNN −=−−= 99991104 . Така комплемент до 9 за бројот N=2345 e 765423459999 =−=N .

Двојниот комплемент на бројот N вообичаено се означува со N или N2C. Се нарекува уште потполн комплемент. Двојниот комплемент претставува комплемент до основата на бројниот систем. Во бинарен броен систем тоа е 2, а во декаден броен систем е 10. Во декаден броен систем двоен комплемент на бројот 2345 се пресметува според

формулата 765510000104 =−=−= NNN . Позитивните броеви во нотација единечен комплемент се претставуваат со својата бинарна репрезентација. Единечниот комплемент на негативен бинарен број се добива со комплементирање на секоја цифра (заменување на 0 со 1 и на 1 со 0). Всушност, секоја цифра на негативните броеви се комплементира до најголемата цифра (до 1 во бинарен броен систем). Собирањето на броевите претставени со единечен комплемент се изведува така да евентуалниот пренос се отфрла од меѓурезултатот и се собира со цифрата со најмала тежина.

Page 23: digitalna logika

14 Дигитална логика

Единечниот комплемент се нарекува и комплемент на цифра (digit complement), основа минус еден (radix minus one), комплемент на единицата (once complement) или прв комплемент. Се означува со DC. Опсегот на броеви кои може да се претстават со n бита кога се користи единечен комплемент е [-(2n-1-1),2n-1-1]. Двојниот комплемент се нарекува и комплемент на основата (radix complement), комплемент на двојката (twos complement), вистински комплемент (true complement) и се означува со RC. Кога се користи претставување наречено двоен комплемент опсегот на броеви кои може да се претстават со n бита е [-2n-1,2n-1-1]. Репрезентацијата двоен комплемент има единствен приказ на нулата и едноставни аритметички операции, но постои негативен број (-2n-1) чиј спротивен позитивен број не може да се претстави. При собирање на броеви претставени со двоен комплемент едноставно се изведува собирање, а евентуалниот пренос се отфрла. На пример со 4 бита (n=4) со единечен комплемент може да се претстават броевите од интервалот [-7,7] а со користење на двоен комплемент броевите од интервалот [-8,7], како што е претставено во табела 1.5. Со системот знак-модул може да се претстават броевите од интервалот [-7,7]. Табела 1.5: Бинарни броеви кои може да се претстават со 4 бита во SM, DC и RC систем

позитивни броеви негативни броеви вредност SM, DC и RC вредност SM DC RC

0 0000 0 1000 1111 / 1 0001 -1 1001 1110 1111 2 0010 -2 1010 1101 1110 3 0011 -3 1011 1100 1101 4 0100 -4 1100 1011 1100 5 0101 -5 1101 1010 1011 6 0110 -6 1110 1001 1010 7 0111 -7 1111 1000 1001 8 / -8 / / 1000

Од табелата се забележува дека позитивните броеви имаат иста репрезентација во било која нотација. Битот со најголема тежина (MSB-most significant bit) има вредност 1 за негативните броеви, а 0 за позитивните броеви. Нотациите SM и DC не обезбедуваат

Page 24: digitalna logika

1. Бројни системи и кодови 15

еднозначност, бидејќи имаат двојно претставување на нулата. Кај RC системот постои единствено претставување на нулата но постои негативен број за кој спротивниот позитивен број не може да се претстави, односно кој е комплемент сам на себе. Бројот (1000)2 е комплемент сам на себе, бидејќи неговиот втор комплемент би бил (0111)2+1=(1000)2. На пример, при 32-битни зборови : • позитивните броеви од 0 до 2 147 483 647 се претставуваат со

бинарните репрезентации. • бројот 10000000000000000000000000000000 го претставува

најголемиот негативен број (-2 147 483 648)10 = (-231). • бројот (-2 147 483 647)10 = (1000…001)2, а (-1)10 = (111…111)2 • негативниот број (- 2 147 483 648)10 нема соодветен позитивен

број. Во табелата 1.6 се претставени некои декадни броеви со знак и нивни бинарни еквиваленти со должина 1 бајт во системот двоен комплемент. Табела 1.6: Дел од декадните броеви и нивни еквиваленти во двоен комплемент кои може да се претстават со 8 бита

декаден број двоен комплемент +127 01111111 +126 01111110 ....... ....... +3 00000011 +2 00000010 +1 00000001 +0 00000000 -1 11111111 -2 11111110 -3 11111101 -4 11111100 ..... .....

-127 10000001 -128 10000000

Единечниот комплемент на бројот е за еден помал од двојниот комплемент N2C=N1C+1. Двојниот комплемент (втор комплемент) на бинарен број е дефиниран со формулата

Page 25: digitalna logika

16 Дигитална логика

N2C=(2n)2-N2. (1.5) Со N2 се означува бинарното претставување на бројот, со N2C двојниот комплемент, а со N1C единечниот комплемент. Според формулата 1.5 за двојниот комплемент на бројот -4 се добива: 0 1 2 позајмување 1 0 0 0 0 (2n)2 - 1 0 0 N2 _________________ 1 1 0 0 N2C Единечен комплемент (прв комплемент) на број во бинарен броен систем е дефиниран со формулата N1C=(2n)2-N2-1. (1.6) Според формулата 1.6 за единечниот комплемент на бројот -4 се добива: 0 1 2 позајмување 1 0 0 0 0 (2n)2 - 1 0 0 N2 _________________ 1 1 0 0 N2C - 1 _________________ 1 0 1 1 N1C

1.4 Комплемент аритметика

За претставување на броевите кај компјутерите се користи системот двоен комплемент. Операцијата одземање се сведува на собирање при што е потребно намалителот да се кодира коректно. Операцијата множење се изведува со собирање и поместување, а операцијата делење со одземање. На тој начин се поедноставува хардверската реализација на компонентата која изведува аритметички операции. Во продолжение се илустрирани аритметичките операции во сите 3 системи за претставување на негативни броеви: знак-модул, единечен и двоен комплемент.

Page 26: digitalna logika

1. Бројни системи и кодови 17

Кај системот знак-модул постојат две претставувања на нулата. Постојат ист број на позитивни и негативни целобројни вредности кои за n-битни броеви се наоѓаат во опсег од -(2n-1-1) до +(2n-1-1). При собирање на два броја претставени во системот знак-модул треба да се споредат знаците и модулите на операндите. На пример, да се изврши одземање на два позитивни броеви во системот знак-модул (01100011)2-(01001111)2

0 1100011 (+99) -0 1001111 (+79)

___________ 0 0010100 (+20) Ако сега треба да се изврши одземањето (01001111)2-(01100011)2 се одземаат броевите по апсолутна вредност и на позицијата за знак се пишува 1 бидејќи разликата е негативен број: (01001111)2-(01100011)2=10010100. За конверзија на негативен декаден број во двоен комплемент не мора да се користи формулата 1.5. Негативниот декаден број може да се конвертира во двоен комплемент на следниот начин: се претставува апсолутната вредност на декадниот број бинарно, се наоѓа единечниот комплемент и се врши инкрементирање за 1. Во продолжение е илустрирана конверзијата на (-5)10 во двоен комплемент. Бинарна репрезентација на 5: 00000101 Единечен комплемент: 11111010 Инкрементирање: + 1 ________ Двоен комплемент на -5: 11111011 Постапката за наоѓање на декадниот број ако е даден двојниот комплемент на некој негативен број се извршува со примена на следните чекори: се наоѓа единечен комплемент на дадениот двоен комплемент, добиениот број се зголемува за 1, се конвертира бинарниот резултат во декаден број и се додава знакот минус. Нека на пример 11111101 е двоен комплемент за кој треба да се најде декадниот еквивалент.

Page 27: digitalna logika

18 Дигитална логика

Двоен комплемент: 11111101 Единечен комплемент: 00000010 Инкрементирање: + 1 ________ Апсолутна вредност: 00000011=3 Декаден број: -3 Често при аритметичките операции треба да се конвертира m-битен број во n-битен. Ако n>m се додаваат n-m нули по битот за знак кај позитивните броеви или n-m единици по бито т за знак кај негативните броеви. Бидејќи се додаваат битови кои се еднакви на битот за знак ова проширување се нарекува знаково проширување (sign-extension). Кога n<m се изведува знаково одсекување (sign-truncation), односно испуштање на m-n битови кои следат по битот за знак. Битовите кои се испуштаат треба да се исти со битот за знак и да не се дел од претставувањето на бројот. При собирање кај системот двоен комплемент ако се добие резултат кој има поголем број на битови од n, се задржуваат само n битови. На пример, да се изврши собирање на два негативни броја 1100 (-4) +1101 (-3) -------------- 1 1001 (-7) При собирањето се игнорира 1 која го надминува опсегот на броевите. При собирање на броеви со различен знак никогаш не настанува надминувањето на опсегот (overflow). Кога се собираат броеви од ист знак ако сумата е поголема од најголемиот број кој може да се претстави се добива некоректен резултат. Следниве резултати не се коректни 0101 (+5) +0111 (+7) -------------- 1100 (-4) или 1010 (-6) +1100 (-4) -------------- 1 0110 (+6)

Page 28: digitalna logika

1. Бројни системи и кодови 19

Правило е дека надминување на опсегот се јавува секогаш кога знакот на сумата е различен од знакот на двата собироци. При проектирање на компонента за собирање кај компјутерите се користи следното правило: ако битот за пренос кој се пренесува во битот за знак е различен од битот за пренос на излезот тогаш се јавува надминување на опсегот и резултатот не е коректен. Ова правило е илустрирано со следните примери: 1 пренос на позиција на битот за знак 01100 (+12) +11011 (-5) -------------- 1 00111 (+7) точен резултат бит на пренос на излез 0 пренос на позиција на битот за знак 10011 (-13) +11001 (-7) -------------- 1 01100 (+12) резултатот не е точен бит на пренос на излез 0 пренос на позиција на битот за знак 11000 (-8) +00110 (+6) -------------- 0 11110 (-2) точен резултат бит на пренос на излез 1 пренос на позиција на битот за знак 11101 (-3) +11010 (-6) -------------- 1 10111 (-9) точен резултат бит на пренос на излез

Page 29: digitalna logika

20 Дигитална логика

Најголемиот број на кола за одземање во двоен комплемент не изведуваат директно одземање туку го комплементираат намалителот и ги собираат двата броја. На пример, (00010111)2-(00001001)2 =2310-910 00010111 (+23) +11110111 (-9) -------------- 1 00001110 (+14) Во табелата 1.7 се претставени броеви во двоен комплемент и знак-модул системите.

Табела1.7:Претставување на броеви во двоен комплемент и знак-модул

Декаден број двоен комплемент знак-модул

-8 1000 - -7 1001 1111 -6 1010 1110 -5 1011 1101 -4 1100 1100 -3 1101 1011 -2 1110 1010 -1 1111 1001 0 0000 1000 или 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111

При собирање на броеви во системот единечен комплемент доколку има пренос, тој се додава на најмалку значајниот бит на резултатот (end around carry). На пример, (00010111)2-(11110110)2 =2310-910

Page 30: digitalna logika

1. Бројни системи и кодови 21

00010111 (23) +11110110 (-9) -------------- 00001101 + 1 --------------- 00001110 (14) Во продолжение се дадени уште неколку примери за операциите во системот двоен комплемент. Кога се изведуваат операции со цели броеви за добивање на единечниот и двојниот комплемент се користат претходно спомнатите формули:

12

2

21

22

−−=

−=

NNNN

nC

nC

Примерите кои следуваат се однесуваат на наоѓање на единечен и двоен комплемент на реални броеви. Пример 1.20:

0011.11101.00000.101101.0 =−=

Двоен комплемент на бројот (0.1101)2 се добива на следниот начин

Се забележува дека 10.000=1.1111+0.0001. Така 10.0000-0.1101=1.1111-0.1101+0.0001. Значи, двојниот комплемент се добива со додавање 0.0001 на единечниот комплемент. Пример 1.21:

0001.00011.11110.0

0011.10001.00010.11101.0

1101.01110.0

=+=+

=+==

−=−

BA

B

BA

Операцијата одземање A-B се сведува на собирање, на тој начин што се наоѓа претставувањето на –B во двоен комплемент и резултатот се собира со намаленикот.

Изразот -A-B се пресметува со собирање на 2 двојни комплементи:

BABA +=−− Пример 1.22:

10001011110101010011 =+=−−=−− BA Пресметување на израз од облик -A-B се изведува

При претходната операција извршено е отфрлање на првиот бит.

Page 31: digitalna logika

22 Дигитална логика

1.5 Претставување на броеви со подвижна запирка

Кај компјутерите реалните броеви се претставуваат со формат подвижна запирка (floating-point), кој го има следниот облик V=(-1)S x F x RE

каде S е знак, F е мантиса, E е експонент и R е основа на бројниот систем. Реалните броевите може да се претстават во нормализирана форма, во која мантисата го исполнува условот

1 1R

F≤ <.

На пример, бројот 234.12 за R=10 може да се претстави во нормализирана форма како 0.23412Е+3. Структурата на форматот подвижна запирка е знак експонент мантиса

Знакот е 0 за позитивни броеви и 1 за негативни броеви. Експонентот може да биде модификуван (biased) и немодификуван (unbiased). За 8-битен експонент вредноста на немодификуваниот експонент е во опсег -128...0...+127, а на модификуваниот 0...+128...+255. Во бинарен броен систем кај нормализираните броеви најзначајниот бит на мантисата секогаш ќе биде 1 (освен кога се претставува вредноста 0). Затоа, најзначајниот бит не мора да се памти и на мантисата може да и се додели уште еден бит, со што се постигнува поголема прецизност. Овој бит се нарекува скриен бит (hidden bit). Тој мора да се земе во предвид при пресметување на бројот иако не е прикажан. Најпознат стандард за форматот подвижна запирка е IEEE 754 кој е воведен кај IBM/3 7 0 и PDP-11 на фирмата DEC. Стандардот ги определува правилата за заокружување, случаите на underflow, overflow и слично. Кај IEEE 754 постојат четири основни формати:

• единечна прецизност Е=8 бита, F=23 бита • двојна прецизност Е=11 бита, F=52 бита • единечна прецизност-проширен формат Е≥11 бита, F≥31 бита • двојна прецизност-проширен формат Е≥15 бита, F≥63 бита.

Page 32: digitalna logika

1. Бројни системи и кодови 23

Во последните два формата бројот на битови за Е и F зависи од имплементацијата. Бројот на битови кај IEEE 754 форматот за единечна прецизност е 32. Форматот е прикажан на следната слика. 1 8 23 знак експонент мантиса

Во форматот за единечна прецизност се користи модификуван (biased) експонент наречен вишок 127. Во форматот за двојна прецизност вкупниот број на битови е 64: 1 11 52 знак експонент мантиса

Во IEEE 754 форматот нулата се претставува со 0 за сите цифри на мантисата и експонентот, без разлика на знакот: ± 0.....................0 0.......................0

Според тоа има две претставувања на нулата, со знак + и знак -. Бесконечен број се претставува со 1 за сите цифри на експонентот и 0 за сите цифри на мантисата: ± 11....................1 0.......................0

NaN (not a number-не е број) се јавува при делење на бесконечен број со бесконечен. За претставување на овој случај се воведува форматот NaN, каде сите цифри на експонентот се 1 а мантисата е било кој број: ± 11....................1 било кој број

Опсегот на броеви кои може да се претстават со IEEE форматот за двојна прецизност е претставен на следната слика нула негативен негативни негативен позитивен позитивни позитивен overflow броеви underflow underflow броеви overflow -1.0x10308 -1.0x10-308 1.0x10-308 1.0x10308 Бројот на битови кои се користат за експонент и мантиса го одредува опсегот на броеви кои може да се претстават (број на битови во

Page 33: digitalna logika

24 Дигитална логика

експонентот) и прецизноста (број на битови во мантисата). Опсегот на броеви е ограничен со најмалиот и најголемиот број кои може да се претстават. При обид за претставување на број помал од најмалиот број кој може да се претстави во форматот се јавува underflow, а при обид за претставување на број поголем од најголемиот кој може да се претстави во форматот се јавува overflow. За илустрација на претставувањето на броевите во формат со подвижна запирка во примерите кои следат се користи модел со 14 бита, каде еден бит е знак, 5 бита се експонент, а 8 бита мантиса. Бројот 1710 во бинарен систем може да се претстави како 10001x20=1000.1x21=100.01x22=10.001x23=1.0001x24=0.10001x25. Последната репрезентација на бројот може да се претстави во формат со подвижна запирка како на следната слика 1 5 8 0 0 0 1 0 1 1 0 0 0 1 0 0 0

Со користење на формат со подвижна запирка може да се претстават броеви со поголема вредност во споредба со форматот со фиксна запирка. На пример, во форматот со подвижна запирка бројот 6553610=0.1x217 се претставува 0 1 0 0 0 1 1 0 0 0 0 0 0 0

Во овој модел проблем е претставувањето на негативните експоненти. На пример не може да се претстави 0.2510=2-2 заради негативниот експонент. Проблемот може да се реши со бит за знак во битовите на експонентот, но поефикасен начин е да се користи модификуван експонент (biased), заради поедноставните кола при споредување на броевите во формат со подвижна запирка. Експонентот се модификува со додавање на вредност која е половина од најголемата вредност што може да се претстави со 5 бита. Најголема вредност која може да се претстави со 5 бита е 32, па затоа се користи модификација вишок 16. Со користење на вишок 16 модификација за експонентот бројот 1710=0.10001x25 ќе има експонент 16+5=21 и може да се претстави 0 1 0 1 0 1 1 0 0 0 1 0 0 0

Со вишок 16 модификација на експонентот бројот 0.2510=2-2= 0.1x2-1 се претставува

Page 34: digitalna logika

1. Бројни системи и кодови 25

0 0 1 1 1 1 1 0 0 0 0 0 0 0

Претставувањето на број во формат со подвижна запирка не е еднозначно. На пример следните претставувања на бројот 1710 се еквивалентни: 0 1 0 1 0 1 1 0 0 0 1 0 0 0

0 1 0 1 1 0 0 1 0 0 0 1 0 0

0 1 0 1 1 1 0 0 1 0 0 0 1 0

0 1 1 0 0 0 0 0 0 1 0 0 0 1

За да се надмине проблемот со нееднозначно претставување на броевите во форматот со подвижна запирка се воведува нормализирано претставување на броевите. Бројот 0.03125=0.00001x20=0.1x2-4 e нормализиран и претставен во формат со подвижна запирка, каде експонентот во вишок 16 нотација изнесува 16-4=12 0 0 1 1 0 0 1 0 0 0 0 0 0 0

За да се изврши собирање на броеви во формат со подвижна запирка броевите треба да се доведат до ист експонент, а потоа да се соберат мантисите. На пример, 1.5x102+3.5x103=0.15x103+3.5x103=3.65x103.

1.6 Бинарни кодови

Интеракцијата меѓу човекот и компјутерот најчесто се одвива преку тастатура. На секоја притисната типка одговара алфанумерички карактер или управувачки знак (табулатор, CR, LF и др.). ASCII кодот е еден начин на кодирање на типките од тастатурата. Дигиталните системи содржат електронски прекинувачи кои може да се наоѓаат само во две состојби, па за нивно претставување погоден е бинарниот систем. За изведување на интерните операции компјутерите користат бинарни броеви но комуникацијата со корисникот се одвива во декаден броен систем. За поедноставна комуникација секој декаден број се претставува со низа од бинарни

Page 35: digitalna logika

26 Дигитална логика

цифри. Овој начин на претставување на декадните броеви се нарекува бинарно кодирање. Покрај наведените постојат и други причини за кодирање, како што се шифрирањето на податоците, откривање и поправање на грешки кои се јавуваат при пренос на информации. Бинарните кодови вообичаено имаат иста должина на кодните зборови. Таквите бинарни кодови се нарекуваат рамномерни бинарни кодови. Коден збор е група на симболи со која се претставува некоја информација. Дел од бинарните кодови се тежински, односно секој бит има одредена тежина, а дел се нетежински. Еден пример за тежински код е бинарниот броен систем. Кај нетежинските бинарни кодови битовите немаат одредена тежина туку важен е распоредот на битовите во кодниот збор. Кај овие кодови врската меѓу декадниот број и кодниот збор се дава преку математички равенки или специјални кодни таблици.

• BCD кодови на броевите Кај дигиталните инструменти има потреба за внесување и прикажување на податоците во декаден облик кој корисниците претпочитуваат да го користат. За таа цел се развиени BCD кодовите. BCD (Binary Coded Decimal) е кратенка за бинарно кодирани декадни броеви. За да може да се претстават 10 декадни цифри потребни се 4 бита. 3 бита не се доволни бидејќи 23=8<10. Со 4 бита може да се претстават 24=16 декадни цифри што значи дека 6 кода ќе останат неискористени, па ова кодирање е редундантно. Во општ случај за бинарно кодирање на N броја (0,…,N-1) потребни се n бита каде n= log2N, односно 2n=N. За кодирање може да се користи било кое произволно доделување на комбинации од битови на цифрите така да има 16!/6! или приближно 2,9*1010 можни кодови. Само неколку од овие кодови се користат бидејќи аритметичките операции во скоро сите кодови се тешки.

Page 36: digitalna logika

1. Бројни системи и кодови 27

BCD кодот 8421 се нарекува природен BCD (NBCD) код. 8421 се ознаки за тежините на четирите бита со кои се кодира секоја цифра од декадниот број. Кодот е прикажан во табела 1.8. За цифрите од 0 до 9 бинарното претставување на цифрата е исто со (8,4,2,1) кодот на цифрата.

Табела 1.8: NBCD код

децимална цифра (8,4,2,1) NBCD код 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1

Кај BCD кодирањето секоја декадна цифра се кодира бинарно, за разлика од бинарното претставување на декадните броеви. На пример, декадниот број 12 се преставува бинарно како 1100, а BCD кодот на бројот 12 е

20010

1

0001

Собирањето на NBCD кодови се одвива според правилата:

• на секој нибл (4 бита, тетрада) се додава 0110, односно бинарната вредност на декадниот број 6

• добиениот бинарен број се собира со вториот собирок следејќи ги правилата за бинарно собирање

• се одзема бинарната вредност на 6 од NBCD цифрите (тетрадите) кај кои не се јавил пренос.

Со други зборови, собирањето на NBCD броевите е исто како кај бинарните броеви се додека сумата е 9 или помала. Кога сумата е поголема од 9 резултатот се коригира со додавање на бројот 6. На пример, собирањето на 3610= 0011 0110NBCD и 9210=1001 0010NBCD се изведува на следниот начин

Page 37: digitalna logika

28 Дигитална логика

0011 0110 36 +0110 +0110 +6 _________________ 1001 1100 +1001 0010 +92 __________________ 1 0010 1110 -0110 -6 __________________ 0001 0010 1000 128 При собирање на броевите 4610=0100 0110NBCD и 9410=1001 0100NBCD се јавува пренос кај двете NBCD цифри па не е потребно да се одземе бинарната вредност на 6 од ниедна цифра 0100 0110 46 +0110 +0110 +6 _________________ 1010 1100 +1001 0100 +94 __________________ 1 0011 1 0000 +1 __________________ 0001 0100 0000 140 При одземање на броевите 9210=1001 0010NBCD и 3610=0011 0110NBCD кај тетрадата во која се позајмува се одзема 6

0112 0 12 1001 0010 92 - 0011 0110 -36 _________________ 0101 1100 -0110 __________________ 0101 0110 56

Page 38: digitalna logika

1. Бројни системи и кодови 29

• Седумсегментен код Некои дигитални уреди ги прикажуваат податоците преку индикатори со LED диоди. Индикаторот се состои од седум сегменти. Секоја од 10-те декадни цифри се претставува со комбинација од осветлени и неосветлени сегменти. Седумсегментните индикатори се произведуваат со заедничка анода или со заедничка катода. Во табелата 1.9 се претставени седумсегментните кодови за индикатори изведени со заедничка анода или со заедничка катода. Табела 1.9: Седумсегментен код

децимална цифра дисплеј со заедничка катода

дисплеј со заедничка анода

a b c d e f g a b c d e f g 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 2 1 1 0 1 1 0 1 0 0 1 0 0 1 0 3 1 1 1 1 0 0 1 0 0 0 0 1 1 0 4 0 1 1 0 0 1 1 1 0 0 1 1 0 0 5 1 0 1 1 0 1 1 0 1 0 0 1 0 0 6 1 0 1 1 1 1 1 0 1 0 0 0 0 0 7 1 1 1 0 0 0 0 0 0 0 1 1 1 1 8 1 1 1 1 1 1 1 0 0 0 0 0 0 0 9 1 1 1 1 0 1 1 0 0 0 0 1 0 0

На сликата 1.1 е претставен индикатор за седумсегментен код.

a

b

cd

e

f g

слика 1.1: Индикатор за седумсегментен код

• Тежински и нетежински кодови

Кај тежинските кодови секоја позиција во кодот има определена тежина. Нека тежините на 4-те позиции за 4-битен тежински код се

Page 39: digitalna logika

30 Дигитална логика

означат со t3, t2, t1 и t0. Децималната вредност на кодниот збор b3b2b1b0 се добива од збирот b3t3+b2t2+b1t1+b0t0. Ако сите тежини на еден тежински код се позитивни тогаш тој се нарекува позитивен тежински код. На пример, кодовите (5,3,2,1), (7,4,2,1) и (4,2,2,1) се позитивни тежински кодови. Кодовите се претставени во табела 1.10. Табела 1.10: (5,3,2,1) код

децимална цифра

(5,3,2,1) код (7,4,2,1) код (4,2,2,1) код

0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 0 0 0 1 0 0 0 1 0 3 0 1 0 0 или 0011 0 0 1 1 0 0 1 1 4 0 1 0 1 0 1 0 0 1 0 0 0 5 1 0 0 0 или 0110 0 1 0 1 0 1 1 1 6 1 0 0 1 или 0111 0 1 1 0 1 1 0 0 7 1 0 1 0 1 0 0 0 1 1 0 1 8 1 1 0 0 или 1011 1 0 0 1 1 1 1 0 9 1 1 0 1 1 0 1 0 1 1 1 1

Постојат и кодови каде некои од тежините се негативни. Тие се наречени негативни тежински кодови. На пример, кодот (8,4,-2,-1) кој е претставен во табела 1.11 е негативен тежински код.

Табела 1.11: (8,4,-2,-1) код

децимална цифра (8,4,-2,-1) код 0 0 0 0 0 1 0 1 1 1 2 0 1 1 0 3 0 1 0 1 4 0 1 0 0 5 1 0 1 1 6 1 0 1 0 7 1 0 0 1 8 1 0 0 0 9 1 1 1 1

Page 40: digitalna logika

1. Бројни системи и кодови 31

Кај нетежинските кодови позицијата на цифрите не е поврзана со одредена тежина. Примери за нетежински кодови се вишок 3 (exceed 3) и Грејовиот код (Gray code). За да се добие вишок 3 кодот (табела 1.12) на декадната цифра се додава 3, а потоа бројот се претвора во бинарен број. Аритметичките операции собирање и одземање кога се користи кодот вишок 3 се едноставни.

Табела 1.12: Вишок 3 код

децимална цифра вишок 3 код 0 0011 1 0100 2 0101 3 0110 4 0111 5 1000 6 1001 7 1010 8 1011 9 1100

Ако збирот на цифрите во декадна репрезентација е поголем од 9, во вишок 3 кодот се јавува пренос кон следна цифра со поголема тежина. Резултатот потоа се коригира со додавање 0011 (3 декадно) на двете добиени цифри. На пример, при собирање на броевите 6 и 5 претставени во вишок 3 се јавува пренос кон цифра со поголема тежина и се изведува корекција на резултатот

декадно собирање собирање во вишок 3 код 6 1001

+5 +1000 ___ __________

11 1 0001 +0011 +0011 додавање 3 ______________ пренос 0100 0100 Ако во вишок 3 се собираат цифри чиј збир во декадна репрезентација е помал или еднаков на 9 резултатот треба да се коригира со одземање на 0011. Овој случај е претставен со следниот пример

Page 41: digitalna logika

32 Дигитална логика

декадно собирање собирање во вишок 3 код 4 0111

+3 +0110 ___ __________

7 1101 -0011 одземање 3 __________ 1010 При одземање во кодот вишок 3 разликата се коригира со додавање 0011, како што е илустрирано со следниот пример

декадно одземање одземање во вишок 3 код 27 0101 1010

-11 -0100 0100 ___ __________

16 0001 0110 +0011 +0011 додавање 3 ______________ 0100 1001

Самокомплементирачки BCD кодови

Некои кодови имаат особина да кодниот збор на деветичниот комплемент на некоја цифра (9-N) се добива како единечен комплемент на неговата кодна репрезентација. На пример, коден збор на декадниот број 7 во кодот (4,2,2,1) е 1101. Деветичен комплемент на 7 е 2 (9-7=2) на кој одговара коден збор 0010. Кодот 0010 е единечен комплемент на 1101. Според тоа, кодот (4,2,2,1) е самокомплементирачки. Дефиниција 1.1: Нека b b b b3 2 1 0 е коден збор на декадната цифра id , а

b b b b3 2 1 0 е единечниот комплемент на кодниот збор. Кодот е самокомплементирачки ако комплементот до 9 на декадната цифра

( id−9 ) може да се претстави со кодниот збор b b b b3 2 1 0 . Пример 1.23:Нека го земеме кодот на бројот 3 како пример. Во (2,4,2,1) кодот бројот 3 се претставува како 0011 (или 1001). Со комплементирање на

Дали кодот (2,4,2,1) е самокомплементирачки?

Page 42: digitalna logika

1. Бројни системи и кодови 33

секоја бинарна цифра се добива 1100 (0110) што претставува (2,4,2,1) код на бројот 6, кој всушност е дополнување на 3 до 9. Затоа, кодот (2,4,2,1) е самокомплементирачки.

Децимална цифра (2,4,2,1) код 3 0 0 1 1 9-3=6 1 1 0 0

Пример 1.24:

Децимална цифра

Дали NBCD кодот е самокомплементирачки?

(8,4,2,1) код 5 0 1 0 1 9-5=4 0 1 0 0

Со комплементирање на секоја цифра од кодот 0101 за декадниот број 5 се добива 1010. Комплементот 1010 е различен од NBCD кодот 0100 на бројот 4. Затоа NBCD кодот не е самокомплементирачки. Пример 1.25:

Децимална цифра

Дали (8,4,-2,-1) кодот е самокомплементирачки?

(8,4,-2,-1) код 7 1 0 0 1 9-7=2 0 1 1 0

Кодот (8,4,-2,-1) е самокомплементирачки. Пример 1.26:

Децимална цифра

Дали кодот вишок 3 е самокомплементирачки?

вишок 3 код 1 0 1 0 0 9-1=8 1 0 1 1

Кодот вишок 3 е самокомплементирачки. Теорема 1: Ако BCD кодот е самокомплементирачки тогаш збирот на неговите тежини е 9. Важи и спротивното тврдење: ако збирот на тежините на кодот е 9 тогаш кодот е самокомплементирачки. Доказ: Нека кодот на бројот е b b b b3 2 1 0 а тежините на кодот се 0123 tttt .

Тогаш декадната вредност на бројот е 00112233 tbtbtbtbd +++= .

Page 43: digitalna logika

34 Дигитална логика

Нека d е комплементот до 9 на декадниот број. За кодот да биде самокомплементирачки кодниот збор за d треба да е еднаков на единечниот комплемент на кодот b b b b3 2 1 0 .

00112233 )1()1()1()1( tbtbtbtbd −+−+−+−=

)( 001122330123 tbtbtbtbtttt +++−+++=

dtttt −+++= 0123

Следи дека 90123 =+++ tttt . Пример 1.27:

Циклични кодови

Да се претстави бројот 462 во NBCD код. Бројот 462 во NBCD код се претставува 0100 0110 0010. Самокомплементирачки кодови со 4 бита се (4,2,2,1), (4,3,1,1), вишок 3 и (2,4,2,1). Постојат и самокомплементирачки кодови кои имаат и негативни тежини, како кодот (8,4,-2,-1).

Циклични кодови се оние кај кои последователните кодни симболи се разликуваат само во една позиција. Тие се нетежински кодови. Во табела 1.13 е претставен цикличен код.

Табела 1.13: Цикличен код

Децимална цифра

цикличен код

0 0000 1 0001 2 0011 3 0010 4 0110 5 0100 6 1100 7 1110 8 1010 9 1000

Page 44: digitalna logika

1. Бројни системи и кодови 35

Друг цикличен код е Грејовиот код (Gray code). Грејовиот код се добива од бинарниот код на бројот со користење на следната формула g b b i ng b

i i i

n n

= ⊕ ≤ ≤ −=

+1 0 1

(1.7) каде b i ni , 0 ≤ ≤ се цифрите на бинарниот код, додека g i ni , 0 ≤ ≤ се цифрите на Грејовиот код. Операцијата ⊕ , се нарекува исклучиво ИЛИ (EXOR) и се изведува според табела 1.14. Операцијата ⊕ претставува собирање по модул 2. Логичките операции се разгледуваат во втората глава од оваа книга.

Табела 1.14: Табела на вистинитост за операцијата исклучиво ИЛИ x y x y⊕ 0 0 0 0 1 1 1 0 1 1 1 0

За добивање на цифрите на Грејовиот код од бинарниот код може да се користи и следната формула g b b i ni i i= + ≤ ≤ −+( ) mod1 2 0 1 . (1.8) Во табела 1.15 е претставен Грејовиот код за цифрите од 0 до 15. Од табела 1.15 се забележува дека Грејовиот код е рефлективен. Освен MS битот другите битови се симетрични во однос на средната точка. Во горната половина MS битот е 0 а во долната 1. Пример 1.28

1 1 1 0

b3 b2 b1 b0

1 0 0 1

: Да се најде Грејовиот код за бинарниот код 1110.

Грејовиот код за (1110)2=(14)10 е 1001.

Page 45: digitalna logika

36 Дигитална логика

За добивање на бинарниот код од Грејовиот код се користат формулите

10 1 −≤≤⊕==

− nibbggb

iii

nn (1.9)

При пресметувањето на бинарните цифри според вториот израз од формулите 1.9 позната е вредноста на gi и bi а се определува вредноста на bi-1.

Табела 1.15: Грејов код

Децимална цифра

Грејов код бинарен код

0 0000 0000 1 0001 0001 2 0011 0010 3 0010 0011 4 0110 0100 5 0111 0101 6 0101 0110 7 0100 0111 8 1100 1000 9 1101 1001 10 1111 1010 11 1110 1011 12 1010 1100 13 1011 1101 14 1001 1110 15 1000 1111

Пример 1.29

: Да се најде бинарниот код за Грејовиот код 1011. g3 g2 g1 g0 1 0 1 1 b3=g3=1 g2=b3 b2 0=1⊕b2 според операцијата ⊕ следи дека b2=1 g1=b2⊕b1 1=1⊕b1 следи дека b1=0 g0=b1⊕b0 1=0⊕b0 следи дека b0=1 На Грејовиот код 1011 одговара бинарниот код (1101)2=(13)10.

Page 46: digitalna logika

1. Бројни системи и кодови 37

Kонтрола на точност на пренесените информации

При пренос на информациите од предавателот кон приемникот низ дигиталните системи може да се јави грешка како резултат на различни фактори. Од тие причини од посебен интерес се техниките за контрола на точноста на пренесените информации. Постојат кодови за откривање и коригирање на грешки. Кодовите за откривање и коригирање на грешки се формираат со додавање дополнителни, контролни битови. Функцијата на дополнителните битови зависи од методот на проверка на точноста на добиената информација.

• Кодови за откривање на грешки Пред да бидат опишани некои кодови за откривање на грешки се воведува поимот Булово (Boole) растојание како растојание меѓу кодните зборови.

а)

б)

слика 1.2: а) Графичко претставување на 2-битни бинарни броеви б)Графичко претставување на 3-битни бинарни броеви

Поимот растојание меѓу кодните зборови може геометриски да се интерпретира преку бинарна n-коцка која има 2n темиња, при што секое теме одговара на n-битна низа. Во коцката две темиња се поврзани со гранка ако низите кои одговараат на темињата се

011 001

111 101

100 110

010 000

11

10 00

01

Page 47: digitalna logika

38 Дигитална логика

разликуваат само во еден бит. Кодните зборови се претставуваат како n-битни бинарни броеви. 2-битните бинарни броеви може да се претстават во дводимензионална рамнина како на слика 1.2а. Растојанието меѓу две соседни темиња е 1, а растојанието меѓу две несоседни темиња во 2-коцка е секогаш 2. 3-битните бинарни броеви може да се претстават во тридимензионален простор како на сликата 1.2б. Растојанието меѓу две соседни темиња е 1. Кај 3-димензионалната коцка растојанието меѓу несоседни темиња може да биде 2 (меѓу 001 и 111) или 3 (меѓу 001 и 110). N-коцката овозможува геометриска интерпретација на концептот растојание, кое се нарекува Хемингово (Hamming) растојание. Дефиниција 1.2: Хемингово растојание меѓу две темиња е најкраткиот пат меѓу темињата. Растојанието е еднакво на бројот на битови во кои се разликуваат двата бинарни кодни зборови со кои се означени темињата. 3-битен Грејов код (табела 1.16) користејќи ја визуелната репрезентација може да се претстави како на сликата 1.3.

слика 1.3: Визуелна претстава на 3-битен Грејов код

Грејовиот код е цикличен, односно за код со 2n кодни зборови кодот за најголемиот број (2n-1) е на растојание 1 од кодот за најмалиот број (0). Кај цикличните кодови во n-коцката се формира затворен пат. Затворениот пат формиран од Грејовите кодни зборови не се сече самиот себе и поминува низ сите 2n точки од n-коцката. На сликата 1.3 затворениот пат е претставен со непрекинати линии.

011-2 001-1

111-5 101-6

100-7 110-4

010-3 000-0

Page 48: digitalna logika

1. Бројни системи и кодови 39

Табела 1.16: 3-битен Грејов код

децимални цифри Грејов код 0 000 1 001 2 011 3 010 4 110 5 111 6 101 7 100

Секој код може да се разгледува како множество од низи од n бита наречени кодни зборови. Кај кодовите за откривање на грешки важна особина претставува минималното растојание меѓу кодните зборови. Дефиниција 1.3: Минимално растојание на еден код е најмалиот број на битови кои треба да се сменат во кодот на некој збор за да се добие кодот на било кој друг збор. На пример, минималното растојание кај NBCD кодот, Грејовиот код, вишок 3 кодот и (2,4,2,1) кодот изнесува 1. Кај NBCD кодот со парност и кодот 2 од 5, кои се опишани понатаму во текстот, минималното растојание е 2.

а) бинарен код б)код со парна парност в) код со непарна парност

слика 1.4: Три начини на кодирање За да се открие грешка во еден бит кодните зборови треба да имаат растојание ≥2. Нека 3-битниот код се состои од следните кодни зборови 000, 011, 100 и 110. Бидејќи кодниот збор 100 е на растојание 1 од 110 и 000 кодот не може да ги открие грешките во еден бит. Ако

Page 49: digitalna logika

40 Дигитална логика

од множеството кодни зборови се изостави кодот 100 а се додаде 101 се добива код чии зборови се на растојание 2. Грешка во еден бит не може да предизвика промена на еден коден збор во друг, па со овој код може да се открие грешка во еден бит. Кодовите со парна и непарна парност на сликата 1.4 се кодови со растојание 2.

• Код за проверка на парност Кодовите за проверка на парност се кодови за откривање на грешки. За минималното растојание меѓу кодните зборови да биде 2 потрeбно е да се изедначи бројот на кодни и некодни зборови. Тоа се постигнува со додавање на бит за парност на информационите битови па се добива код со кодни зборови од n+1 бит. Еден начин на контрола на точноста на информациите е додавање на дополнителен бит со чија вредност се постигнува бројот на единици во кодот секогаш да биде парен. Тој код се нарекува код со парна парност. Друг начин е додавање на бит така да бројот на единици во кодот да биде непарен при што се добива код со непарна парност. Пример 1.30:

Децимална цифра

Во табела 1.17 е прикажан NBCD код со непарна парност. MS (Most Significant) битот е бит за непарна парност а останатите битови се информациони битови. Табела 1.17: NBCD код со непарна парност

NBCD код со непарна парност

0 10000 1 00001 2 00010 3 10011 4 00100 5 10101 6 10110 7 00111 8 01000 9 11001

Со овој код се открива една грешка во пренесената информација. Ако примениот код содржи парен број на единици, настанала грешка при пренесувањето на информацијата. Откриената грешка не може да се

Page 50: digitalna logika

1. Бројни системи и кодови 41

коригира бидејќи не се знае на која позиција се јавува. Со користење на бит за парност не може да се откријат две грешки.

• Код 2 од 5 Кодот 2 од 5 припаѓа на класа кодови m_излези_од_ n (m_out_of_n) кои исто како кодовите за проверка на парност може да откријат грешка во еден бит. Кодовите имаат кодни зборови од n битови а m битови се поставени на 1. Кај кодот 2 од 5 кодните зборови се состојат од 5 бита и секој коден збор содржи 2 единици. Полутежинскиот код (7,4,2,1,0) е код 2 од 5. Претставен е во табела 1.18. Табела 1.18: 2 oд 5 код со тежини (7,4,2,1,0)

децимална цифра (7,4,2,1,0) код 0 1 1 0 0 0 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 0 7 1 0 0 0 1 8 1 0 0 1 0 9 1 0 1 0 0

Бројот на кодни зборови од 5 бита кои содржат по 2 единици може да се пресмета како број на комбинации од 5 елементи од класа 2

( ) !!( )!

52

52 5 2

10=−

=

Кодот се нарекува полутежински бидејќи сите цифри освен нулата се кодирани тежински, додека на нулата и е доделена последната комбинација. Со користење на 2 од 5 кодот може да се открие позицијата на една грешка. Исто така, може да се открие двојна грешка, но само кога грешките настанале на исти вредности (две нули или две единици). Ако двојната грешка вклучува грешка кај една нула и една единица, таквата грешка не може да се открие со овој код.

Page 51: digitalna logika

42 Дигитална логика

Друг ваков полутежински код е (6,3,2,1,0) кој е претставен во табела 1.19. Табела 1.19: 2 oд 5 код со тежини (6,3,2,1,0)

децимална цифра (6,3,2,1,0) код 0 0 1 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 1 0 5 0 1 1 0 0 6 1 0 0 0 1 7 1 0 0 1 0 8 1 0 1 0 0 9 1 1 0 0 0

• Дво-петински (biquinary) код Со овој код може да се открие повеќе од една грешка. Тоа е 7 битен код од два дела. Првиот дел е тежински код 1_излез_од_2, а вториот дел е тежински код 1_излез_од_5. Дво-петинскиот код е претставен во табела 1.20. Табела 1.20: Дво-петински код

децимална цифра (5,0) (4,3,2,1,0) 0 01 0 0 0 0 1 1 01 0 0 0 1 0 2 01 0 0 1 0 0 3 01 0 1 0 0 0 4 01 1 0 0 0 0 5 10 0 0 0 0 1 6 10 0 0 0 1 0 7 10 0 0 1 0 0 8 10 0 1 0 0 0 9 10 1 0 0 0 0

Page 52: digitalna logika

1. Бројни системи и кодови 43

• Кодови со остаток (residue codes) Кодовите со остаток користат модуло аритметика, односно остаток при делење со број наречен модул. При делењето се добива количник и остаток или резидиум R, а операцијата се претставува со формулата R(N)=N mod p. Во табелата 1.21 се претставени остатоците при делење на броевите од 0 до 9 со модулите 2, 3, 5 и 7. Табела 1.21: Остатоци при модули 2,3,5 и 7

број N 2 3 5 7 0 0 0 0 0 1 1 1 1 1 2 0 2 2 2 3 1 0 3 3 4 0 1 4 4 5 1 2 0 5 6 0 0 1 6 7 1 1 2 0 8 0 2 3 1 9 1 0 4 2

Операцијата на собирање на броеви се врши со собирање на остатоците во соодветниот броен систем (односно основата на бројниот систем е модулот p). модул 2 3 5 7 15 1 0 0 1 5 1 2 0 5 ______________________ 15+5=20 0 2 0 6 модул 2 3 5 7 8 0 2 3 1 6 0 0 1 6 ______________________ 8+6=14 0 2 4 0

Page 53: digitalna logika

44 Дигитална логика

Множењето на броевите со остаток се изведува со множење по модул p на остатоците. модул 2 3 5 7 2 0 2 2 2 8 0 2 3 1 ______________________ 2*8=16 0 1 1 2 Бидејќи множењето на броевите со остаток е брза операција, оваа техника се користи за реализација на брзи хардверски множачи кај дигитални филтри. Исто така, аритметиката по модул над броеви со остаток може да се користи за проверка на коректноста на резултатот на аритметичките операции. N1 321 321 mod 9 = 6 N2 248 248 mod 9 = 5 ----- ------------------ N1+N2 569 569 mod 9 = 2 (6+5=11 mod 9=2) Ако се користи модул p=r-1 каде r е основата на бројниот систем пресметувањето може да се поедностави. R(N1)=(3+2+1) mod 9 = (6) mod 9 = 6 R(N2)=(2+4+8) mod 9 = (14) mod 9 = 5 Техниките кои користат проверка на остаток се вградуваат во хардверот за откривање на грешки при аритметичките операции. Кодовите со остаток може да се користат за проверка на податоците на два начина. Првиот начин остатокот за одреден модул го приклучува кон бројот. На пример, ако бројот кој треба да се пренесе е 46, односно N= 101110 се пресметува остаток R(N)=N mod 3=01. Кодниот збор се проширува со остатокот и се добива 101110 01. При вториот начин се множи бројот со одредениот модул (46*3=138) пр и што остато ко т за резултато т е 0 . На пример, ако N=101110 и модулот m=3 се добива коден збор 10001010. Овој начин се нарекува самопроверка (self-checking).

Page 54: digitalna logika

1. Бројни системи и кодови 45

• Бергерови кодови Бергеровите кодови се користат за проектирање на логички кола кои сами ги откриваат своите грешки. Кодниот збор се формира од битови на податоци и битови за проверка. Битовите за проверка се формираат како единечен комплемент од бројот на единици во битовите на податоци. За n податочни битови потребни се )1(log2 += nk битови за проверка. На пример, ако n=100011, 3)16(log2 =+=k , Бергеровиот коден збор ќе има 9 бита. Бројот n има 3 единици. Според тоа битовите за проверка се 011, а единечниот комплемент 100. Бергеровиот коден збор е 100011 100, каде последните 3 бита се битовите за проверка. Со Бергеровите кодови може да се открие повеќе од една грешка но само ако грешките се од ист вид, односно промена на 1 во 0 или на 0 во 1. Доколку еден бит се промени од 1 на 0, а друг од 0 во 1 откривањето на грешките не е можно.

• Кодови за корекција на грешки Кај кодовите за корекција на грешки потребни се повеќе контролни битови за да се добие прецизна информација за тоа во кој бит настанала грешката. Корекцијата ќе биде опишана со едноставен пример за код кој се состои од 2 кодни збора: 000 и 111. Минималното растојание за овој код изнесува 3. Ако при преносот на кодниот збор 000 настане грешка во еден бит се добива коден збор кој не припаѓа на кодот. При грешка во еден бит на приемната страна може да се добијат кодните зборови 100, 010 или 001. Овие кодни зборови се на растојание 1 од зборот 000 и на растојание 2 од 111. На приемната страна може да се коригира кодниот збор во 000. За да може да се коригираат x грешки потребно е минималното растојание на кодот да биде 2x+1. Ако минималното растојание на кодот е 2x+y+1 може да се коригираат x грешки и дополнително да се откријат y грешки.

Page 55: digitalna logika

46 Дигитална логика

• Хемингови кодови за корекција на грешка Хеминговите кодови се едни од најчесто користените кодови за корекција на грешка кај RAM меморијата. Кај овие кодови на n-те податочни битови им се додаваат к битови за парност, при што се формира збор со должина m=n+k. Битовите за парност секогаш се наоѓаат на позициите 1, 2, 4, 8, ..., односно на позициите кои се степени на бројот 2. Кодот може да се користи за пренос на зборови со произволна должина. Секој бит за парност контролира група на позиции така да бројот на единици во групата биде парен. Битот за парност на позиција 2p, ја контролира групата на позиции чија бинарна репрезентација има 1 на локацијата p. Определување на групите чија парност ќе се контролира од одреден контролен бит се изведува на следниот начин: Позициите се претставуваат бинарно. Потоа се групираат во однос на вредностите на одредени битови. На пример, најмалку значајниот (најдесниот) бит е единица за броевите 1,3,5,7 итн. па првиот контролен бит ќе ги контролира 3, 5 и 7 бит. Следниот бит е единица во броевите 2,3,6,7 што значи дека вториот контролен бит ќе ги контролира 3, 6 и 7 бит. Веднаш се воочува дека секоја група започнува со број кој е степен на бројот 2. Затоа на таа позиција се поставува самиот контролен бит.

• Хемингов код со минимално растојание 3, можност за откривање на 1 грешка и коригирање на 1 грешка

Во продолжение е опишан Хемингов код за кодни зборови од 4 податочни бита, на кои се додаваат 3 контролни бита. На тој начин се добиваат кодни зборови од 7 бита кои се означени како во табела 1.22. Табела 1.22: Хемингов коден збор од 7 бита Позиција 1 2 3 4 5 6 7 Име c1 c2 b3 c4 b2 b1 B0 Контролните битови ја контролираат парноста на одреден број на позиции, и тоа: c1 ги контролира позициите 1, 3, 5 и 7 така да има парна

парност (парен број на единици на дадените позиции)

Page 56: digitalna logika

1. Бројни системи и кодови 47

c2 ги контролира позициите 2, 3, 6 и 7 така да има парна парност

c4 ги контролира позициите 4, 5, 6 и 7 така да има парна парност.

Според тоа вредноста на контролните битови може да се пресмета по формулите c b b b1 3 2 0= ⊕ ⊕ (1.10) c b b b2 3 1 0= ⊕ ⊕ (1.11) c b b b4 2 1 0= ⊕ ⊕ (1.12) Пример 1.31:

c1 0 1 1 0= ⊕ ⊕ =

Да се кодира бројот 5 со Хемингов код. NBCD кодот на бројот 5 е 0101. Битовите што ја контролираат парноста се

c2 0 0 1 1= ⊕ ⊕ = c3 1 0 1 0= ⊕ ⊕ = Хеминговиот код за бројот 5 е даден во следната табела Позиција 1 2 3 4 5 6 7 Име c1 c2 b3 c4 b2 b1 B0 Вредност 0 1 0 0 1 0 1 На приемната страна се пресметуваат контролните битови p1, p2 и p4 користејќи ги следните формули p c b b b1 1 3 2 0= ⊕ ⊕ ⊕ (1.13) p c b b b2 2 3 1 0= ⊕ ⊕ ⊕ (1.14) p c b b b4 4 2 1 0= ⊕ ⊕ ⊕ (1.15) Ако сите контролни битови се нула при преносот не настанала грешка. Доколку има грешка, од битовите p1, p2 и p4 се формира образец кој овозможува откривање на позицијата во која настанала грешката. Образецот се формира така што битовите се запишуваат во следниот редослед p4 p2 p1. Тој прочитан како бинарен број ја дава позицијата во која настанала грешката.

Page 57: digitalna logika

48 Дигитална логика

Пример 1.32:

c1

Да се најде и коригира грешката ако при пренос на бројот 5 со Хемингов код на приемната страна се добие кодниот збор 0100111. Примениот коден збор е

c2 b3 c4 b2 b1 b0 0 1 0 0 1 1 1

За p1, p2 и p4 се добива p1 0 0 1 1 0= ⊕ ⊕ ⊕ = p2 1 0 1 1 1= ⊕ ⊕ ⊕ = p4 0 1 1 1 1= ⊕ ⊕ ⊕ = Од овие битови се формира образецот 110 што означува дека грешката се појавила на шестата позиција. Корекција се врши со комплементирање на шестиот бит (b1), при што се добива кодниот збор 0100101. Хеминговите кодови може да се користат за откривање и коригирање на грешки за зборови со било која должина. Грешка може да се јави како кај податочните битови така и кај битовите за проверка на парност. Општо, Хеминговиот код се состои од n податочни и к контролни битови, односно од вкупно n+k битови. Образецот се состои од к битови, што значи дека има 2к вредности, кои може да се менуваат од 0 до 2к-1. Една од овие вредности, најчесто нулата, се зема како индикатор дека нема грешка, оставајќи 2к-1 вредности кои покажуваат кој од n+k битови е погрешен. Од ова разгледување следи релацијата 2к-1 ≥ n+k. Решавајќи ја неравенката по n се добива n ≤ 2 к-1-к. Оваа релација ја дава врската помеѓу бројот на податочни и контролни битови. Во табела 1.23 се дадени интервалите на n за различно к. Така, за k=3 се добива n≤7-3=4, додека за к=4 се добива n≤15-4=11. Тоа значи дека за к=4 контролни битови зборот може да има помалку од 11 битови но мора да има најмалку 5 битови, во спротивно доволни се 3 контролни бита.

Page 58: digitalna logika

1. Бројни системи и кодови 49

Табела 1.23:Врска меѓу број на контролни (к) и податочни (n) битови

к n 3 3-4 4 5-11 5 12-26 6 27-57 7 58-120

Основниот Хемингов код со минимално кодно растојание 3 може да коригира една грешка. Во одредени случаи може да се откријат и две грешки, но не може да се коригираат. Со додавање на бит за парност кој го контролира бројот на единици во целиот збор се добива проширен Хемингов код со кој може да се откријат две грешки и да се коригира една грешка. Пример 1.33:

Позиција

Да се кодира 8-битниот збор 10101100 со Хемингов код. Од Хеминговата неравенка 2к ≥ n+k+1 треба да се определи бројот на контролни битови k. За n=8 податочни бита бројот на контролни битови к треба да е најмалку 4, бидејќи 24 ≥ 8+4+1, односно 16≥13. Контролните битови се наоѓаат на позициите 1, 2, 4 и 8, како што е претставено со следната табела.

1 2 3 4 5 6 7 8 9 10 11 12 Име c1 c2 b7 c4 b6 b5 b4 c8 b3 b2 b1 b0 Вредност 0 1 1 1 0 1 0 0 1 1 0 0 Битовите кои ја контролираат парноста се пресметуваат на следниот начин: c1 се пресметува со операција исклучиво ИЛИ од битовите на позициите 3, 5, 7, 9 и 11 c2 од битовите на позициите 3, 6, 7, 10 и 11 c4 од битовите на позициите 5, 6, 7 и 12 c8 од битовите на позициите 9, 10, 11 и 12. Според тоа, вредностите на контролните битови се

001001134671 =⊕⊕⊕⊕=⊕⊕⊕⊕= bbbbbc

101011124572 =⊕⊕⊕⊕=⊕⊕⊕⊕= bbbbbc

Page 59: digitalna logika

50 Дигитална логика

1001004564 =⊕⊕⊕=⊕⊕⊕= bbbbc

0001101238 =⊕⊕⊕=⊕⊕⊕= bbbbc Пример 1.34:

Позиција

Зборот 111101001100 е Хемингов код од 8 податочни и 4 контролни бита добиен на приемната страна. Да се провери дали постои грешка при преносот. Хеминговиот код со 8 податочни и 4 контролни бита може да се запише како што е прикажано во следната табела:

1 2 3 4 5 6 7 8 9 10 11 12 Име c1 c2 b7 c4 b6 b5 b4 c8 b3 b2 b1 b0 Вредност 1 1 1 1 0 1 0 0 1 1 0 0 За да се провери дали настанала грешка при преносот треба да се пресмета образeцот, односно да се пресметаат контролните битови:

10100111346711 =⊕⊕⊕⊕⊕=⊕⊕⊕⊕⊕= bbbbbcp

00101111245722 =⊕⊕⊕⊕⊕=⊕⊕⊕⊕⊕= bbbbbcp

000101045644 =⊕⊕⊕⊕=⊕⊕⊕⊕= bbbbcp

000110012388 =⊕⊕⊕⊕=⊕⊕⊕⊕= bbbbcp Според тоа образецот е p8 p4 p2 p1 0 0 0 1 и настанала грешка на првата позиција која се коригира со замена на 1 со 0. Кодниот збор кој треба да се добие е 011101001100.

• Хемингов код со минимално растојание 4, со можност за коригирање на една грешка и откривање на две грешки

Нека со L е означено минималното кодно растојание на еден код, со D број на грешки кои може само да се детектираат, а со C број на грешки кои може да се детектираат и коригираат, тогаш важи формулата L-1=C+D и D≥C. Во табела 1.24 се претставени можните вредности за C и D во зависност од L.

Page 60: digitalna logika

1. Бројни системи и кодови 51

Табела 1.24: Број на грешки кои може да се детектираат (D) и коригираат (C) за дадено минимално кодно растојание (L)

L D C 1 0 0 2 1 0 3 2 0

1 1 4 3 0

2 1 5 4 0

3 1 2 2

Од табелата се забележува дека кај кодот кој има минимално растојание L=4 може да се откријат D=2 грешки и да се коригира C=1 грешка. Проширен Хемингов код се добива од основниот со додавање на уште еден контролен бит кој ја контролира парноста на целиот збор, така да зборот има парна парност. За да се добие проширен Хемингов код за коден збор со 4 податочни и 3 контролни бита треба да се додаде контролен бит c8 на 8-та позиција. Ако кај овој код настане грешка во првите 7 позиции: парноста на целиот збор е погрешна со помош на p1, p2 и p4 се пронаоѓа и коригира грешката.

Ако грешката настанала во осмиот бит, тогаш: парноста на зборот е погрешна p4p2p1=000 па следи дека погрешен е осмиот бит.

Доколку се појави двојна грешка, парноста на зборот ќе биде точна, но p1, p2 и p4 ќе укажуваат на грешка. На овој начин може само да се детектира, но не и да се коригира двојната грешка. Проширениот Хемингов код за коден збор со 8 податочни и 4 контролни бита има дополнителен 13 бит кој претставува резултат од операцијата исклучиво ИЛИ на другите 12 бита.

Page 61: digitalna logika

52 Дигитална логика

1.7 Алфанумерички кодови

Покрај претставувањето на броевите, кај компјутерите, потребно е и претставување на буквите и некои специјални знаци. За таа цел се користат алфанумеричките кодови. За кодирање на цифрите и латиничната азбука потребни се 10+26=36 кодни зборови, односно бинарно може да се кодираат со најмалку 6 бита. Еден од најчесто користените алфанумерички кодови е ASCII (American Standard Code for Information Interchange). Првобитниот ASCII код користел 5 бита. Овој код е изведен од Baudot кодот кој се користи кај телексите. Заради ограничените можности на 5-битниот ASCII код, во 1967 година, меѓународната организација за стандарди (ISO - International Organization for Standardization) создала 7-битен код. Со 7-битниот ASCII код (слика 1.5) се кодираат 52 букви (мали и големи букви), 10 цифри, 32 контролни карактери, 32 специјални карактери (како $ и #) и space карактерот. Контролните карактери служат за контрола на комуникацијата, форматирање на текстот, како сепаратори на логички целини и слично (слика 1.6). Најзначајниот бит требало да се користи како бит за парност за откривање на грешки во кодот. Во почетокот на 80-тите години на минатиот век производителите на компјутери започнале да го користат овој бит за проширување на множеството симболи од 128 до 255. Во зависност од производителот додадените симболи биле графички карактери, варијанти на принтерски фонтови, математички симболи и слично. Една варијанта на ASCII кодот е ANSI (American National Standards Institute) кодот, кај кој сите карактери освен контролните се исти со ASCII кодот. IBM користи свој код (слика 1.7) базиран на NBCD кодот, наречен EBCDIC (Extended Binary Coded Decimal Interchange Code). Овој код има 8 бита за кодирање и ги содржи истите симболи како и ASCII кодот, но во друг распоред (слика 1.8). Кодот на карактерите се добива со соединување на битовите за број (digit bits) и битовите за зона (zone bits). EBCDIC е развиен при создавањето на IBM System/360. Пред тоа IBM користел BCD кодирање. Кај BCD секоја цифра се претставува со 4-битна бинарна репрезентација (слика 1.8). Кодовите од 1010 до 1111 не се користат за кодирање на цифрите. Три од овие кодови имаат специфично значење: 1111 означува број без знак, 1100 позитивен број и 1101 негативен број. Овие кодови се

Page 62: digitalna logika

1. Бројни системи и кодови 53

додаваат пред кодот на цифрата и формираат 8-битен податок при процесот наречен пакување на на броевите.

слика 1.5: ASCII код

слика 1.6: Значење на кратенките во ASCII кодот

Page 63: digitalna logika

54 Дигитална логика

На пример, бројот -1265 во пакуван BCD код може да се претстави 1111 0001 0010 0110 0101 1101

Бројот е претставен со 3 бајти, 4-те бита за знак се додадени на крајот, а почетните 4 бита се пополнети со единици.

слика 1.7: EBCDIC код

слика 1.8: Значење на кратенките кај EBCDIC код

Page 64: digitalna logika

1. Бројни системи и кодови 55

слика 1.9: BCD код

Unicode претставува 16 битен код кој е компатибилен со ASCII и множеството карактери Latin-1. Овој код овозможува кодирање на повеќе азбуки и нивно наизменично користење. Кодниот простор на Unicode се состои од 5 дела (слика 1.10).

слика 1.10: Распоред на кодовите за Unicode кодот

Page 65: digitalna logika

56 Дигитална логика

1.8 Примери

1. а) Да се пресмета разликата (2AC)16-(256)8 и резултатот да се напише во вишок 3 код. б) Кои од дадените кодови се самокомплементирачки: (4,4,1,-2), Грејов и (8,4,-3,-2) код. (2AC)16=(0010 1010 1100)2=(684)10 (256)8=(010 101 110)2=(174)10

10 1010 1100 - 0 1010 1110 _________________________ 1 1111 1110 (111111110)2=28+27+26+25+24+23+22+21=(510)10 BCD код на 510 е 0101 0001 0000 а вишок 3 код на 510 е 1000 0100 0011.

Децимална цифра (4,4,1,-2) код 3 0 1 1 1 9-3=6 1 1 0 1

Кодот (4,4,1,-2) не е самокомплементирачки бидејќи единечниот комплемент на 3 не е ист со кодот на 6, а 6 е деветичен комплемент на 3. Збирот на тежините на кодот изнесува 7 а не 9.

Децимална цифра (8,4,-3,-2) код 3 1 0 1 1 9-3=6 1 0 0 1

Кодот (8,4,-3,-2) не е самокомплементирачки бидејќи единечниот комплемент на 3 не е ист со кодот на 6, а 6 е деветичен комплемент на 3. Збирот на тежините на кодот изнесува 7 а не 9. Грејовиот код не е самокомплементирачки

Децимална цифра Грејов код 3 0 0 1 0 9-3=6 0 1 0 1

Page 66: digitalna logika

1. Бројни системи и кодови 57

Грејов код за 3 0 0 1 1

0 0 1 0 Грејов код за 6

0 1 1 0

0 1 0 1 2. а) Да се пресмета разликата (2C2)16-(326)8 и резултатот да се напише во вишок 3 код. б) Кои од дадените кодови се самокомплементирачки: (7,5,3,-6) и (7,4,2,-1) код. (2C2)16=(0010 1100 0010)2=(706)10 (326)8=(011 010 110)2=(214)10

10 1100 0010 - 0 1101 0110 _________________________ 1 1110 1100 (111101100)2=28+27+26+25+23+22=(492)10

BCD код на 492 е 0100 1001 0010 а вишок 3 код на 492 е 0111 1100 0101.

Децимална цифра (7,5,3,-6) код 3 0 0 1 0 9-3=6 1 1 0 1

Кодот (7,5,3,-6) е самокомплементирачки бидејќи единечниот комплемент на 3 е ист со кодот на 6, а 6 е деветичен комплемент на 3. Исто така, збирот на тежините на кодот изнесува 9.

Децимална цифра (7,4,2,-1) код 3 0 1 0 1 9-3=6 1 0 0 1 или 0 1 1 0

Page 67: digitalna logika

58 Дигитална логика

Кодот (7,4,2,-1) не е самокомплементирачки бидејќи единечниот комплемент на 3 не е ист со кодот на 6, а 6 е деветичен комплемент на 3. Збирот на тежините на кодот изнесува 12 а не 9. 3. Да се кодира со Хемингов код бинарниот број 0011. Колку контролни битови се потребни за кодирање на порака со должина n=4 податочни бита? Која неравенка ја определува врската меѓу контролните и податочните битови? c b b b1 3 2 0= ⊕ ⊕ c b b b2 3 1 0= ⊕ ⊕ c b b b4 2 1 0= ⊕ ⊕

11001 =⊕⊕=c 01102 =⊕⊕=c 01103 =⊕⊕=c

c1 c2 b3 c4 b2 b1 b0 1 0 0 0 0 1 1

Хеминговиот код на бинарниот број 0011 е 1000011. Потребни се 3 контролни бита за кодирање на порака со должина 4 податочни бита. Неравенката која ја определува врската меѓу контролните и податочните битови е n ≤ 2к-1-к. За k=3 со добива n≤7-3=4. 4. Да се кодира со Хамингов код бинарниот број 1010. Колку контролни битови се потребни за кодирање на порака со должина n = 4 податочни бита? c b b b1 3 2 0= ⊕ ⊕ c b b b2 3 1 0= ⊕ ⊕ c b b b4 2 1 0= ⊕ ⊕

10011 =⊕⊕=c 00112 =⊕⊕=c 10103 =⊕⊕=c

c1 c2 b3 c4 b2 b1 b0 1 0 1 1 0 1 0

Хеминговиот код на бинарниот број 1010 е 1011010. Потребни се 3 контролни бита за кодирање на порака со должина 4 податочни бита.

Page 68: digitalna logika

1. Бројни системи и кодови 59

1.9 Задачи

1. Кој декаден број одговара на најголемиот број што може да се изрази со: а) 8 битови, б) 16 битови в) 32 битови. 2. Да се изврши конверзија на бинарните броеви во декадни а) 111010, б) 10101111.101 в) 110110110. 3. Да се изврши конверзија на декадните броеви во бинарни а) 194, б) 2006, в) 140, г) 270. 4. Да се изврши конверзија на броевите а) (764.7)8 во хексадекаден броен систем б) (F6D.C)16 во октален броен систем в) (147.5)8 во кватернарен броен систем. 5. Да се изврши конверзија на броевите во декаден броен систем а) (12021)3 б) (4321)5 в) (А98)12. 6. Да се пресмета разликата (3EF)16-(1111)2 и резултатот да се напише во а) вишок 3 код б) Грејов код. 7. Да се кодира со Хeмингов код бинарниот број 1110. Колку контролни битови се потребни за кодирање на порака со должина од 4 податочни бита. 8 . а) Да се коригира грешката ако при пренос на информации со Хeмингов код се добие кодниот збор 1000111. Коригираниот коден збор без контролните битови да се напише во Грејов код. б) Колку контролни битови се потребни за да се кодира со Хeмингов код пораката со должина m=8 податочни битови: 11010010. 9. Да се конвертираат декадните броеви 53, 130 и 214 во а) бинарен броен систем, б) BCD код, в) 84-2-1 код, г) Грејов код.

Page 69: digitalna logika

60 Дигитална логика

10. Да се претстават декадните броеви во бинарен броен систем користејќи претставување знак-модул со 8 битови, единечен и двоен комплемент: а) 77, б) -42, в) 119, г)-107. 11. Користејќи збор од 4 бита да се напишат сите бинарни броеви со знак и нивните декадни еквиваленти кои може да се претстават со а) знак-модул б) единечен комплемент в) двоен комплемент. 12. Кој е опсегот на броевите кои може да се претстават со n бита во системите а) знак-модул б) единечен комплемент в) двоен комплемент. 13. Да се одреди кои од следните тежински кодови се самокомплементирачки? а) (8, 4, -3, -2) б) (7, 5, 3, -6) в) (6, 2, 2, 1) 14. Да се претстават декадните броеви 535 и 637 во а) BCD код б) вишок 3 код. Да се соберат кодираните броеви и да се провери дали сумата е коректно кодирана. 15. Да се пресмета разликата 721 - 423 во кодот вишок 3. 16. Да се одреди бројот на кодни зборови кај кодната шема m-излези-од-n (m-out-of-n) кога а) n=5, m=2 б) n=6, m=3 в) n=8, m=1. 16. Да се пресмета остатокот за следните декадни броеви користејќи модуло 9: а) 1472943 б) 236798 в) 124011.

Page 70: digitalna logika

1. Бројни системи и кодови 61

17. Да се напишат кодните зборови за 2-out-of-5 кодот и да се изведат Бергеровите кодни зборови за секој збор. 18. 7-битниот Хемингов код е составен од 4 информациони и 3 контролни бита. За следните 7-битни кодни зборови да се одреди дали постои грешка. Ако постои да се одреди во која позиција настанала грешката? а) 1110010 б) 0111100 в) 0101001 г) 1000001. 19. Да се претстави декадниот број 9876 во а) код 8421 б) код 2421 в) вишок 3 код г) дво-петински код 20. Колку грешки може да се откријат со код чие минимално растојание е d?

Page 71: digitalna logika
Page 72: digitalna logika

2. ПРЕКИНУВАЧКА АЛГЕБРА

Page 73: digitalna logika

64 Дигитална логика

Буловата алгебра ја дефинирал Џорџ Бул (George Boole) во 1854 година. Како и другите алгебарски системи Буловата алгебра се карактеризира со 4 компоненти:

1. домен на алгебра - множество елементи врз кои е дефинирана алгебрата,

2. множество операции кои се изведуваат со елементите, 3. множество постулати или аксиоми и 4. множество последици или теореми - закони или правила кои

се изведуваат од постулатите. Формирањето на алгебрата не е еднозначно. Некои правила во една алгебра може да се постулати а во друга теореми. Множеството постулати треба да е конзистентно, односно последиците од еден постулат не треба да противречат на последиците од друг. Друго барање е независноста на постулатите еден од друг. Постулатите треба да формираат минимално множество кое сепак овозможува изведување на сите теореми. Постулатите кои се користат во овој курс се дефинирани од Хантингтон (Huntington) 50 години подоцна откако Бул ја дефинирал Буловата алгебра.

2.1 Аксиоми и теореми во Булова алгебра

Во алгебрата која ја дефинирал Хантингтон има 5 постулати: 1. Затвореност (Closure) Постои домен B кој има најмалку два различни елементи и две операции (+) и (*) така да важи: а) Ако x и y се елементи од B тогаш следи дека и x+y е елемент од B. Операцијата + е логичко собирање. б) Ако x и y се елементи од B тогаш следи дека и x*y е елемент од B. Операцијата * е логичко множење.

Page 74: digitalna logika

2. Прекинувачка алгебра 65

2.Неутрални елементи (Identity elements) Нека x е елемент од B: а) Постои елемент 0 во B кој се нарекува неутрален елемент во однос на + со особина x+0=x б) Постои елемент 1 во B кој се нарекува неутрален елемент во однос на * со особина x*1=x. 3.Комутативен закон (Commutative law) а) Комутативен закон во однос на собирање може да се дефинира како x+y=y+x. б) Комутативен закон во однос на множење може да се дефинира како x*y=y*x. 4.Дистрибутивен закон (Distributive law) а) Дистрибутивен закон на множење во однос на собирање гласи x*(y+z)=(x*y)+(x*z) б) Дистрибутивен закон на собирање во однос на множење е од облик x+(y*z)=(x+y)*(x+z) 5.Комплемент (Complement) Ако x е елемент на B тогаш постои елемент x , комплемент на x, кој ги задоволува особините а) x x+ = 1 б) x x* = 0 Некои закони на Буловата алгебра не важат за обичната алгебра. На пример, дистрибутивен закон за собирање во однос на множење дефиниран со 4б и постулатот 5 за комплемент не важат за обичната алгебра. Во Булова алгебра не постојат операции одземање и делење. Множеството елементи во Булова алгебра се нарекува негов домен и се обележува со B. m-арна операција во B е правило кое доделува уникатен елемент од B на секое подредено множество од m елементи. Така, бинарна операција вклучува подреден пар елементи, а унарна операција само еден елемент. Во Булова алгебра има 2 бинарни операции (логичко собирање и множење) и една унарна операција (комплемент).

Page 75: digitalna logika

66 Дигитална логика

Кај Хантингтоновите постулати се забележува симетрија: постулатите доаѓаат во пар. Еден постулат од секој пар може да се добие од другиот со изведување на:

• замена на бинарните оператори и • замена на 0 со 1 и обратно на 1 со 0.

Оваа особина на Буловата алгебра е позната како принцип на дуалност. Дефинирани се 8 теореми кои следат од Хантингтоновите постулати и од принципот на дуалност. Доказите се изведуваат по пат на контрадикција, математичка индукција или со табела на вистинитост. Теорема 1: Закон на нула (Null law) а) x + =1 1 б) x *0 0= Секој од овие закони следи од другиот со принципот на дуалност, па затоа е доволно да се докаже само едниот закон. Доказ на 1б:

x x* ( * )0 0 0= + постулат 2а

= +( * ) ( * )x x x 0 постулат 5б

= +x x*( )0 постулат 4а = x x* постулат 2а = 0 постулат 5б

Доказот на 1а следи од принципот на дуалност. Теорема 2: Инволуција (Involution) или двојна негација x x= Комплементот од комплемент на елементот е самиот тој елемент. Доказ: Нека ax = . Од постулат 5 следува 1=+ ax и 0* =ax само

ако xa = , па следи xx = . Теорема 3: Идемпотентност (Idempotency) или не важење на степенување a) x x x+ = б) x x x* =

Page 76: digitalna logika

2. Прекинувачка алгебра 67

Доказ на 3а: x x x x+ = +( ) *1 постулат 2б

= + +( ) * ( )x x x x постулат 5а = +x x x* постулат 4б = +x 0 постулат 5б = x постулат 2а

Теорема 4: Апсорпција (Absorption) а) x x y x+ =* б) x x y x*( )+ = Доказ на 4а:

x x y x x y+ = +* * *1 постулат 2б = +x y*( )1 постулат 4а = x *1 постулат 3а и теорема 1а = x постулат 2б

Теорема 5: Поедноставување (Simplification)

a) x x y x y+ = +*

b) x x y x y*( ) *+ = Доказ на 5б:

yxxxyxx **)(* +=+ постулат 4а

= +0 x y* постулат 5б yx *= постулат 2а

Теорема 6: Асоцијативен закон (Associative law) a) x y z x y z x y z+ + = + + = + +( ) ( ) б) x y z x y z x y z*( * ) ( * ) * * *= = Доказ на 6а: Се формира логички производ од двете страни на 6а и се добива

A x y z x y z= + + + +( ( )) * (( ) ) Се применува дистрибутивен закон и тоа во првиот случај се зема првиот множител за почетен и се добива

( ( )) * (( ) )x y z x y z+ + + + = + + + + + +( ( )) * ( ) ( ( )) *x y z x y x y z z = + + + +( ( )) * ( )x y z x y z

а во вториот случај се зема вториот множител за почетен и се добива ( ( )) * (( )x y z x y z+ + + +

Page 77: digitalna logika

68 Дигитална логика

= + + + + + +(( ) ) * (( ) ) * ( )x y z x x y z y z = + + + +(( ) ) * ( )x y z x y z

Резултатот е A x y z= + +( ) во првиот случај и A x y z= + +( ) во вториот случај. Од транзитивноста, ако 2 елемента се секој од нив еднакви на трет елемент, тие мора да се еднакви еден на друг. Бидејќи резултатот е ист било како да се групирани заградите, заградите може да се отстранат. Теорема 7: Консензус (Consensus)

a) x y x z y z x y x z* * * * *+ + = +

b) ( ) * ( ) * ( ) ( ) * ( )x y x z y z x y x z+ + + = + + Доказ на 7а: x y x z y z x y x z y z x x* * * * * * *( )+ + = + + + постулат 5а = + + +x y x z y z x y z x* * * * * * постулат 4а = + + +( * * * ) ( * * * )x y x y z x z x y z постулат 3б и теорема 6а = + + +x y z x z y* *( ) * *( )1 1 теорема 4а = +x y x z* * Теорема 8: Де Морганов закон (De Morgan’s law)

a) x y x y+ = *

б) x y x y* = +

Доказ на теорема 8а: Треба да се докаже дека x y* ги задоволува двата услови во постулатот 5 бидејќи е комплемент на x y+ .

услов 1: ( ) * ( * )x y x y x x y y+ + = + + постулат 3а и теорема 6а = + +( )x y y теорема 5а = + +x y y( ) теорема 6а = +x 1 теорема 1а = 1

услов 2: yxyyxxyxyx ******)( +=+ постулат 3б и 4а = +0* * *y x y y постулат 5б и 3б = 0 постулат 5б и теорема 1б

Page 78: digitalna logika

2. Прекинувачка алгебра 69

Во досегашната дискусија не се поставени граници за бројот на елементите во Буловата алгебра. Од постулатите на Хантингтон познато е дека во секоја Булова алгебра има најмалку 2 елементи. Во овој курс се работи само со двоелементната Булова алгебра. Бројот на елементи во било која Булова алгебра е степен од 2, односно 2n каде n≥1. Во 1937 година Клод Шенон (Claude Shannon) опишал двоелементна Булова алгебра реализирана со коло од прекинувачи. Прекинувач е направа која може да се најде во една од две стабилни состојби: исклучено и вклучено. Овие позиции може да се означат со 0 и 1. Од овие причини двоелементната Булова алгебра се нарекува прекинувачка алгебра. Елементите 0 и 1 се нарекуваат прекинувачки константи, а променливите прекинувачки променливи. Имињата логичко множење и собирање во прекинувачката алгебра доаѓаат од изоморфноста на двовредносната Булова алгебра со пропозиционата логика. Дефиниција 2.1: Два алгебарски системи се вели дека се изоморфни ако може да се направат идентични со менување на имињата на елементите и имињата на симболите кои се користат да се означат операциите. Исказната логика (propositional logic) се занимава со искази: дали се точни или грешни, како едноставните искази може да се комбинираат во покомплексни искази и како со дедукција може да се изведе вистинитоста на сложените од простите искази. Заради изоморфноста на двовредносната Булова алгебра и исказната логика било кои операции и техники од логиката може да се применат на Буловата алгебра. На пример, елементите 1 и 0 од Буловата алгебра одговараат на вистина (Т) и лага (F) од исказна логика. Еден исказ се вели дека е негација на друг исказ ако е грешен секогаш кога другиот е точен. На пример, “ Не врне“ е негација на “Врне”. Ако p е исказ, не-p е негова негација. Операцијата негација е изоморфна со комплемент во Булова алгебра.

Page 79: digitalna logika

70 Дигитална логика

2.2 Прекинувачки операции

Со постулатите на Хантингтон се воведени една унарна операција и две бинарни операции. За овие операции вообичаено е да се користат термини од исказна логика И, ИЛИ и НЕ.

• И (AND) операција

Ако x=1 тогаш од постулатот 2б (x*1=x), x*y=x, но ако x=0 од теорема 1 (x*0=0), x*y=0 независно од y. Овие резултати табеларно се искажуваат на следниот начин

x y x*y 0 0 0 0 1 0 1 0 0 1 1 1

Табелата се вика вистинитосна табела. Терминот вистинитосна табела е позајмен од исказна логика. Ако x и y се 1 тогаш x*y=1.

• ИЛИ (OR) операција Исказ составен од два искази поврзани со ИЛИ операција е точен ако едниот или другиот или и двата искази се точни. Оваа операција е изоморфна со логичко собирање во Булова алгебра.

x y x+y 0 0 0 0 1 1 1 0 1 1 1 1

Од Хантингтоновиот постулат 2а ако y=0 тогаш x+y=x односно x+y ќе ја имаат вредноста на x. Но ако y=1 од теорема 1а, x+y=x+1=1.

• НЕ (NOT) операција Операцијата комплемент од Булова алгебра е изоморфна со негација. Изоморфизмот на прекинувачката алгебра со исказната логика

Page 80: digitalna logika

2. Прекинувачка алгебра 71

воведува нова алатка, вистинитосна табела, која може да се користи за докажување теореми. Пример 2.1:

x y x y+ = * Да се докаже со вистинитосна табела првиот Де

Морганов закон . x y x y

x+y x y+ x y* 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0

2.3 Прекинувачки изрази

Дефиниција 2.2: Прекинувачки израз е релација меѓу прекинувачки променливи и прекинувачки константи 0 и 1 поврзани со И, ИЛИ и НЕ операции.

На пример, изразот E x y z x y x y= + + + +( * ) *( ) ( ) е прекинувачки израз. Дефиниција 2.3: Литерали се променливи или комплементи на променливи. Еден израз може да се претстави во повеќе форми. Изразите треба да се доведат до форма со која нивната хардверска реализација е најповолна. Со примена на законите од прекинувачка алгебра изразот Е може да се претстави во следните форми: E x y z x y x y1 = + + + +( * ) *( ) E x x x y x y z y y z x y2 = + + + +* * * * * * * дистрибутивен,Де Морганов E x x y y z x y3 = + + +*( * ) * теорема 3а, постулат 4а и 5б E x x y4 = + * постулат 4а и теорема 4а E x y5 = + теорема 5а Дефиниција 2.4: Се вели дека изразот е редундантен ако содржи:

• литерали кои се повторуваат (x*x или x+x) • променлива и нејзин комплемент (x x* или x x+ ) • експлицитно прикажани прекинувачки константи (0 или 1).

Page 81: digitalna logika

72 Дигитална логика

Редундантните елементи не треба да се имплементираат хардверски туку да се отстранат од изразите пред имплементацијата. Забелешка: Во понатамошниот текст симболот за операцијата логичко множење * е испуштен, секаде каде е можно.

2.4 Минтерм, макстерм и канонични форми

Дефиниција 2.5: Израз со n променливи секогаш може да се конвертира во 2 уникатни форми:

• сума од производи (дисјунктивна нормална форма) • производ од суми (конјунктивна нормална форма).

Во формата сума од производи максималниот број на литерали во нередундантен производ е n. Во формата производ од суми максималниот број на литерали во нередундантната сума е n. Дефиниција 2.6: Изразот со n променливи е во канонична форма ако секој производ во сума од производи формата или секоја сума во производ од суми ги содржи сите n променливи. Каноничната форма сума од производи се нарекува уште совршена дисјунктивна нормална форма (СДНФ). Додека пак каноничната форма производ од суми се нарекува совршена конјунктивна нормална форма (СКНФ). На пример: Изразот Е1 е во канонична форма и претставува производ од суми:

))()((1 zyxzyxzyxE ++++++= . Со конверзија на горниот израз се добива:

)))(())()(((2 zzzzyxyxyxzyxE ++++++++= ))((3 yxzyxE +++=

yzxzyxyxE +++=4 Е4 е во форма сума од производи, но не е во канонична форма. Неканонична сума од производи секогаш може да се конвертира во канонична форма. Термот yx во изразот Е4 може да се помножи со

Page 82: digitalna logika

2. Прекинувачка алгебра 73

z z+ чија вредност е 1 и не ја менува логичката вредност на изразот. Се множи со z z+ бидејќи z недостасува во термот. Слично се прошируваат и другите терми, при што се добива:

)()()()(5 xxyzyyxzzzyxzzyxE +++++++=

xyzzyxyzxzyxzyxE ++++=6 Дефиниција 2.7: Во изразот сума од производи каноничен нередундантен производ од литерали се вика минтерм. Секој терм во Е6 е минтерм, а целиот израз е сума од минтерми. Пример 2.2: zxxyE += Да се конвертира изразот во каноничен производ од суми. Користејќи го дистрибутивниот закон се добива

zxxyE +=

))(( zxyxxy ++=

))()()(( zyzxxyxx ++++=

))()(( zyzxyx +++= Со овие трансформации изразот е конвертиран во форма производ од суми, но не е во канонична форма бидејќи во сумите недостасува по една променлива. Таа се воведува на следниот начин:

))(( zyxzyxzzyxyx ++++=++=+

))(( zyxzyxzyyxzx ++++=++=+

))(( zyxzyxzyxxzy ++++=++=+

Со додавање на yxx y , или zz чија вредност е 0, не се менува логичката вредност на изразите. Се добива

))()()(( zyxzyxzyxzyxE ++++++++= Дефиниција 2.8: Во изразот производ од суми канонична нередундантна сума од литерали се вика макстерм. Секој терм во изразот Е претставува макстерм, а изразот е производ од макстерми.

Page 83: digitalna logika

74 Дигитална логика

2.5 Генерализација на Де Моргановите закони

Де Моргановите закони се а) 2121 xxxx =+

б) 2121 xxxx += За 3 променливи се добиваат изразите: а) 321321 xxxxxx =++

б) 321321 xxxxxx ++= Изразите со 3 променливи се добиваат од изразите со 2 променливи. Ако x x1 2+ го замениме со x4 се добива 3434 xxxx =+ а

21214 xxxxx =+= . Доказот под б) следува од дуалноста на а) и б). Во општ случај важи: а) nn xxxxxx ...... 2121 =+++

б) nn xxxxxx +++= ...... 2121 . Од генерализацијата на Де Моргановите закони следува општ резултат кој овозможува добивање на комплемент на израз. Дефиниција 2.9: Комплемент на израз се добива ако операциите собирање и множење си ги заменат местата и секоја променлива се замени со нејзин комплемент: E x x x E x x xn n( , ,..., , ,*) ( , ,..., ,*, )1 2 1 2+ = + Пример 2.3:

yzxzyxzyxE ++= Да се најде комплемент на изразот

. Комплемент на изразот се добива со примена на формулата од дефиниција 2.9:

))()(( zyxzyxzyxE ++++++=

Page 84: digitalna logika

2. Прекинувачка алгебра 75

Со средување на претходниот израз се добива:

))(( zyxyzxzyzyyxzxyxE ++++++++=

))(( zyxyzxzx ++++=

zxzyxzyxy +++= Пример 2.4: E Со комплементирање на да се добие Е

))()()(( zxzyxzyyxE +++++=

))(( zzyzxzzxyxxxzyzxyyx ++++++++=

))(( yzxzzxyxzxy ++++=

yzxzyyzxxzyxzzxzyxyzxyyx +++++++=

zyxzyxyzx ++=

2.6 Прекинувачки функции

Дефиниција 2.10: Прекинувачка функција претставува еднозначно доделување на 0 и 1 за сите можни комбинации на вредностите на променливите од кои зависи функцијата. За функција од n променливи има 2n можни комбинации на вредности. За секоја комбинација на вредности, функцијата може да земе една од двете вредности. Така, бројот на различни доделувања на двете вредности на 2n комбинации е 2 на степен 2n, односно 22n

. Дефиниција 2.11: Бројот на прекинувачки функции од n променливи е 22n

. Според тоа, постојат 16 прекинувачки функции од 2 променливи и 256 функции од 3 променливи, итн. Во табела 2.1 се дадени 16-те функции од 2 променливи.

Page 85: digitalna logika

76 Дигитална логика

Табела 2.1: Прекинувачки функции од 2 променливи x y F

0 F1

F2

F3

F4

F5

F6

F7

F8

F9

F1

0 F1

1 F1

2 F1

3 F1

4 F1

5 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Секоја функција има свое име како што е претставено во табела 2.2. Разлика меѓу прекинувачка функција и израз е што една функција може да биде претставена со повеќе различни изрази, но функцијата е уникатна. Табела 2.2: Имиња на прекинувачките функции од 2 променливи функција име коментар F0 0= нула (null) бинарна константа 0

xyF =1 И (AND) операција И

yxF =2 x but not y инхибиција

F x3 = x трансфер yxF =4 y but not x инхибиција

F y5 = y трансфер yxyxF +=6 исклучиво ИЛИ (XOR) исклучиво ИЛИ

F x y7 = + ИЛИ (OR) операција ИЛИ F x y8 = +

НИЛИ (NOR) негација на ИЛИ

yxxyF +=9 Equil еквиваленција

F y10 = NOT y комплемент

F x y11 = + if y then x (y->x) импликација

F x12 = NOT x комплемент

F x y13 = + if x then y (x->y) импликација

xyF =14 НИ (NAND) негација на И

F15 1= единица (one) бинарна константа 1 Вредностите на изразите кои претставуваат иста функција во табелата на вистинитост се идентични. На пример, во табела 2.3 се дадени

Page 86: digitalna logika

2. Прекинувачка алгебра 77

изразите за функцијата која ја претставува теорема 5а, односно теоремата поедноставување. Функцијата е дефинирана со нејзините вредности на вистинитост за сите комбинации на вредности на променливите, односно со табела на вистинитост. Табела 2.3: Изрази кои ја претставуваат теоремата поедноставување x y x y yx yxx + x y+ yyxxy ++ 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 Нека се потсетиме дека изразите може да се претстават во две канонични форми. Изразот xyzzyxzyxyzxzyxE ++++= се наоѓа во канонична форма сума од производи или СДНФ (совршена дисјунктивна нормална форма). Секој терм во изразот е минтерм. Изразот ))()(( zyxzyxzyxE ++++++= се наоѓа во канонична форма производ од суми или СКНФ (совршена конјунктивна нормална форма). Секој терм во изразот е макстерм. Со n променливи може да се формираат 2n различни минтерми. Постапката за генерирање на минтермите е следната: на бинарните кодови на броевите од 0 до 2n-1 се придружуваат терми – производи од литерали, така да 1 се заменува со променливата, а 0 со комплемент на променливата од соодветната позиција. Исто така, со n променливи може да се формираат 2n макстерми. Постапката за генерирање на макстермите е следната: на бинарните кодови на броевите од 0 до 2n-1 се придружуваат суми од литерали, така да 1 се заменува со комплемент на променливата, а 0 со самата променлива на соодветната позиција. Во табела 2.4 се прикажани макстерми и минтерми за функции од 3 променливи. Според Де Моргановиот закон комплемент од минтермот во првиот ред zyx е x y z+ + , односно макстермот во првиот ред.

Page 87: digitalna logika

78 Дигитална логика

Табела 2.4: Макстерми и минтерми за функции од 3 променливи децимален код

x y z F минтерми макстерми

0 0 0 0 0 zyx x y z+ + 1 0 0 1 0 zyx x y z+ + 2 0 1 0 1 zyx x y z+ + 3 0 1 1 1 yzx x y z+ + 4 1 0 0 1 zyx x y z+ + 5 1 0 1 1 zyx x y z+ + 6 1 1 0 0 zxy x y z+ + 7 1 1 1 1 xyz x y z+ + За да се добие канонична форма произво д о д суми (СКНФ) ако е дадена каноничната форма сума од производи (СДНФ):

• се применува Де Морганов закон на комплементот на секој минтерм кој не е присутен во сума од производи и

• се формира производ од добиените макстерми.

За да се добие канонична форма сума од производи (СДНФ) ако е дадена формата производ од суми (СКНФ):

• се применува Де Морганов закон на комплементот на секој макстерм кој не е присутен во производ од суми и

• се формира сума од добиените минтерми. СДНФ или канонична сума од производи се добива од минтермите за кои функцијата F има вредност 1. Пример 2.5:

xyzzyxzyxyzxzyxF ++++=

Ако функцијата F е зададена со минтермите за кои има вредност единица, односно со F=Σ(2,3,4,5,7) нејзината СДНФ е

. СКНФ или каноничен производ од суми се добива од макстермите за кои F има вредност 0.

Page 88: digitalna logika

2. Прекинувачка алгебра 79

Пример 2.6:

))()(( zyxzyxzyxF ++++++=

Ако функцијата F е зададена со макстермите за кои има вредност 0, односно со F=Π(0,1,6) нејзината СКНФ е

. Пример 2.7:

))()(( zyxzyxzyxF ++++++=

Ако е дадена формата производ од суми (СКНФ) за функцијата F да се најде соодветната форма сума од производи (СДНФ): . Се применува Де Морганов закон на комплементот на секој макстерм кој не е присутен во СКНФ и потоа се формира сума од добиените минтерми: E x y z x y z x y z x y z x y z= + + + + + + + + + + + + + +( ) ( ) ( ) ( ) ( )

xyzzyxzyxyzxzyxE ++++= Со о вој начин на ко нвер тир ање о д СДНФ во СКНФ и о бр атно се избегнува користење на аксиомите и теоремите од прекинувачка алгебра.

2.7 Шенонова теорема

Една прекинувачка функција може да се претстави со повеќе од еден израз. Два специфични изрази се сума од производи и производ од суми формите. Прашање кое се поставува е дали дадена функција може секогаш да се изрази со овие специфични стандардни форми. Одговор на ова прашање дал Клод Шенон (Claude Shannon).

Форма сума од производи

Нека f x x xn( , ,..., )1 2 е било која прекинувачка функција од n променливи. Шенон покажал дека еден начин на претставување на оваа функција е f x x x x f x x x f x xn n n( , ,..., ) ( , ,..., ) ( , ,..., )1 2 1 2 1 21 0= + .

Односно функцијата е претставена со сума од 2 терми, еден релевантен кога x1 има вредност 1, а другиот кога 1x има вредност 0.

Page 89: digitalna logika

80 Дигитална логика

Доказот на овој израз следи од перфектната индукција. Ако резултатот е точен за сите вредности на променливата x1 (има само две вредности 1 и 0) тој мора да е точен. Процесот се повторува за преостанатите функции употребувајќи друга променлива, на пример x2 се додека не се употребат сите променливи. Резултатот е производ од n литерали помножени со она што станува функцијата кога секоја променлива се замени со 0 или 1 (вредноста на функцијата кога променливите ќе добијат некоја специфична комбинација на вредности), а таа вредност е 0 или 1. Така, крајниот резултат е сума од сите можни нередундантни производи од 2n литерали (n променливи и нивни комплементи), некои од кои се помножени со 1, а други со 0. Помножените со 0 се изоставаат од резултатот. Шеноновата експанзиона теорема во општ случај е

............ 12121211210 +++= −− nnnnn xxxxaxxxxaxxxaf

nn xxxaxxxa nn ...... 21122122 −−++

каде ai е константа чиј индекс е децимален еквивалент на множителот на ai претставен како бинарен број. На пример, a5 (5 бинарно е 101) е коефициент на 321 xxx . Шеноновата експанзиона теорема покажува дека било која прекинувачка функција од n променливи може да се изрази како сума од производи од n литерали, по еден за секоја променлива. Пример 2.8: x1 Нека f е функција од 2 променливи и x2 . Нека f има вредност 1 за комбинациите на 21xx : 00, 10, 11 и вредност 0 за преостанатите комбинации. Определете го изразот кој се добива од Шеноновата експанзиона теорема. Потоа упростете го изразот. За бараната функција се добива:

212121 xxxxxxf ++=

21112 )( xxxxx ++=

212 xxx +=

Page 90: digitalna logika

2. Прекинувачка алгебра 81

2112 )1( xxxx ++=

)( 2212 xxxx ++=

= +x x1 2 Ако функцијата ),,,( 4321 xxxxf се развие по променливите 3x и

4x според Шенонова теорема се добива ++= )1,0,,()0,0,,(),,,( 214321434321 xxfxxxxfxxxxxxf

)1,1,,()0,1,,( 21432143 xxfxxxxfxx +

Форма производ од суми

Шеноновата експанзиона теорема е форма сума од производи. По дуалност може да се изведе и формата производ од суми. За да се добие формата производ од суми се заменуваат 0 со 1 и обратно и операциите собирање и множење. f x x x x f x x x f x xn n n( , ,..., ) [ ( , ,..., )][ ( , ,..., )]1 2 1 2 1 20 1= + +

)......)(...( 111210 nnn xxxbxxxbf ++++++++= −

)...)(...( 21122122 1 nn xxxbxxxb n ++++++++−−

каде bi се константи 0 или 1. Овој резултат покажува дека било која прекинувачка функција од n променливи може да се изрази како производ од суми од n литерали, по еден за секоја променлива.

Page 91: digitalna logika

82 Дигитална логика

2.8 Елементарни логички кола

Поради изоморфноста на прекинувачката алгебра и пропозиционата логика во прекинувачката алгебра може да се воведат операциите исклучиво ИЛИ (⊕), НИ, НИЛИ и негација на исклучиво ИЛИ (⊕). Вистинитосните вредности се прикажани во табела 2.5. Табела 2.5: Вистинитосни вредности на ⊕ , НИ и НИЛИ И ИЛИ ⊕ НИ НИЛИ ⊕

x y x y xy x+y yxyx + x y+ yx yxxy +

0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 Негација на исклучиво ИЛИ се нарекува уште релација на еквиваленција. Од табелата може да се забележи дека НИ, НИЛИ и негација на исклучиво ИЛИ се добиваат со негација на И, ИЛИ и исклучиво ИЛИ:

yxxy +=

yxyx =+

xyyxyyxyyxxxyxyxyxyxyx +=+++=++=+=⊕ ))(( Пример 2.9

yxyxyx +=⊕

: Тргнувајќи од каноничната сума од производи за исклучиво ИЛИ да се најде формата каноничен производ од суми.

yyxxyxyx +++=

)()( yxyyxx +++=

))(( yxyx ++=

Page 92: digitalna logika

2. Прекинувачка алгебра 83

Универзални множества на операции

Дефиниција 2.12: Множество на операции се нарекува универзално ако секоја прекинувачка функција може да се изрази со помош на операциите од ова множество. Буловата алгебра е воведена како структура (B, +, *, -), односно е дефинирана со домен на алгебрата B, 2 бинарни и една унарна операција. Секоја прекинувачка функција може да се изрази со помош на овие операции, па множеството операции (И, ИЛИ, НЕ) е универзално. Множеството операции (ИЛИ, НЕ) е универзално бидејќи И може да се изрази преку ИЛИ и НЕ операциите применувајќи го Де Моргановиот закон:

yxxyxy +== . (И,НЕ) е универзално множество бидејќи ИЛИ може да се изрази преку И и НЕ операциите: x y x y x y+ = + = + . Исто така, (НИ) е универзално множество. Операциите И, ИЛИ и НЕ може да се изразат преку операцијата НИ:

xxxxx =+=

xyxyxyxy ==

yyxxyxyxyx +==+=+ . (НИЛИ) е универзално множество. Операциите И, ИЛИ и НЕ може да се изразат преку операцијата НИЛИ: x x x= + x y x y x y x y+ = + = + + +

yyxxyxxyxy +++=+== . Операцијата негација на исклучиво ИЛИ, ⊕ , е универзално множество, додека операцијата исклучиво ИЛИ, ⊕ , не е универзално множество бидејќи со неа не може да се реализира операцијата НЕ. Исклучиво ИЛИ заедно со константа 1 формира универзално множество.

Page 93: digitalna logika

84 Дигитална логика

Симболи за логичките порти

За логичките порти се користат следните симболи:

И порта ИЛИ порта

НИ порта НИЛИ порта

порта исклучиво ИЛИ НЕ порта

За операциите И, ИЛИ и ⊕ важи асоцијативниот закон. НИ и НИЛИ операциите не се асоцијативни. Дека асоцијативниот закон не важи за НИЛИ операцијата се покажува на следниот начин:

zyzxzyxzyxzyx +=+=+=++ )( е различно од

zxyxzyxzyx +=+=++ )( . Асоцијативниот закон не важи и за НИ операцијата, бидејќи

zxyzxyzxy +=+= е различно од

yzxyzx += .

Page 94: digitalna logika

2. Прекинувачка алгебра 85

Алтернативно претставување на портите

НИ и НИЛИ порти

Со користење на Де Моргановите закони може да се добијат алтернативни форми на логичките порти НИ и НИЛИ. Од yxxy += следува дека НИ портата може да се претстави на следниот начин

Додека од yxyx =+ следува дека НИЛИ портата може да се претстави на следниот начин

И порта

Од yxxyxy +== следува дека И портата може да се претстави

ИЛИ порта

Според формулата yxyxyx =+=+ , ИЛИ портата може да се претстави

Порти исклучиво ИЛИ

Следните еквивалентни форми ја претставуваат операцијата исклучиво ИЛИ

Page 95: digitalna logika

86 Дигитална логика

yxyxyx +=⊕

))(( yxyx ++=

yxxy +=

))(( yxyx ++= Според тоа, алтернативни форми на портата исклучиво ИЛИ се следните четири претставувања

Од изразот за функцијата исклучиво ИЛИ yxyx + , со примена на аксиомите и теоремите од Булова алгебра може да се добие алтернативниот израз ))(( yxyx ++ :

Page 96: digitalna logika

2. Прекинувачка алгебра 87

yyxxyxyxyxyx +++=+

)()( yxyyxx +++=

))(( yxyx ++= . Со двојно комплементирање на изразот yxyx + и примена на

аксиомите и теоремите на Булова алгебра се добива ))(( yxyx ++ :

yxyxyxyx +=+

))(( yxyx ++=

))(( yxyx ++= . Исто така, со двојно комплементирање на изразот ))(( yxyx ++ и примена на аксиомите и теоремите на Булова алгебра може да се

добие изразот yxxy + :

))(())(( yxyxyxyx ++=++

yxyx ++=

xyyx +=

yxxy += .

Претставување на функции со НИ и НИЛИ порти

Како што е веќе кажано, НИ и НИЛИ операциите претставуваат универзални множества и со нив може да се изразат сите операции на Буловата алгебра. Користејќи го изразувањето на операциите И, ИЛИ и комплемент преку операцијата НИ може да се изврши претставување на операциите само со НИ порти. Функцијата комплемент се изразува како xxxxx =+= и може да се претстави преку НИ порта на следниот начин

Page 97: digitalna logika

88 Дигитална логика

Функцијата И може да се изрази како xyxyxyxy == и се претставува на следниот начин

Додека функцијата ИЛИ се изразува yyxxyxyxyx +==+=+ и се претставува

Функцијата комплемент се изразува преку НИЛИ на следниот начин x x x= + и се претставува само со НИЛИ порта како што следи

Функцијата ИЛИ се изразува како x y x y x y x y+ = + = + + + и се претставува со НИЛИ порти

Функцијата И се изразува како yyxxyxxyxy +++=+== и се претставува

Page 98: digitalna logika

2. Прекинувачка алгебра 89

2.9 Електронски компоненти

Дигиталните кола работат со 2 вида сигнали: од 0 до 1 V кои ја претставуваат логичката нула и од 2 до 5 V кои ја претставуваат логичката единица. Овие кола работат со напон до 5V. Основните елементи на дигиталните кола се логичките порти кои во суштина се бинарни прекинувачи. Транзисторите може да се користат како бинарни прекинувачи. На сликата 2.1 е прикажан биполарен транзистор.

слика 2.1: Транзистор како инвертирачка порта

Тој се состои од три приклучоци кои се поврзуваат кон надворешното коло: клектор, база и емитер. На колекторот се носи напон Vcc. Емитерот е заземјен. Кога не е донесен напон на базата транзисторот претставува бескраен отпор, па на влезот Vout ќе се добие напонот Vcc, односно состојба логичка 1. Кога ќе се донесе влезен напон на базата Vin транзисторот се однесува како проводник, па на излезот Vout нема да има напон, односно ќе се добие состојба логичка 0. На тој начин транзисторот се однесува како инвертирачка порта. Со сериско или паралелно сврзување на транзисторите се добиваат НИ и НИЛИ порта (слика 2.2). На излезот на НИ колото има логичка 0 само ако на двата влеза се донесе напон, а кај НИЛИ колото излезот ќе биде логичка 1 само ако и двата влеза се поставени на 0. Со додавање на уште еден транзистор како инвертор на излезот од овие две кола се добиваат 2 нови кола: И и ИЛИ коло. НИ и НИЛИ колата се користат во дигиталната електроника бидејќи се реализираат со помал број на транзистори. Од друга страна познато е дека било која функција може да се реализира со помош на НИ и НИЛИ кола.

Page 99: digitalna logika

90 Дигитална логика

слика 2.2: Сериско и паралелно сврзување на транзистори за реализација на НИ и НИЛИ порта

Интегрални кола

Најчесто употребувани техники за изведба на логичките порти се TTL (transistor-transistor logic) чиј креатор е Texas Instruments, ECL (emitter-coupled logic) од Motorola кои користат биполарни транзистори како прекинувачи. Друга изведба е CMOS (complementary metal-oxide semiconductor) и користи MOSFET транзистор. Во компјутерските елементи логичките кола се интегрирани во интегрални кола. Во зависност од бројот на интегрирани елементи интегралните кола се поделени во неколку групи:

• Кола со ниско ниво на интеграција (SSI-Small Scale Integrated) - содржат до 10 логички порти и најчесто портите не се поврзани помеѓу себе, туку директно на пиновите.

• Кола со средно ниво на интеграција (MSI-Medium Scale Integrated) - содржат меѓу 10 и 100 логички порти и се користат за имплементација на елементарни дигитални операции, како декодери, собирачи или мултиплексери.

• Кола со високо ниво на интеграција (LSI-Large Scale Integrated) - содржат помеѓу 100 и неколку илјади порти, а се

Page 100: digitalna logika

2. Прекинувачка алгебра 91

користат за имплементација на процесори, мемории и програмабилни логички направи (PLD).

• Кола со многу високо ниво на интеграција (VLSI-Very Large Scale Integrated) - содржат повеќе илјади порти и се користат за имплементација на сложени микропроцесори или големи мемориски чипови.

Интегралното коло со два реда изведени ножички се нарекува чип (слика 2.3). Како што е прикажано на сликата 2.3, 14 пин е напојување, а 7 пин заземјување. Поважни параметри на интегралните кола се:

1. моќност што ја троши колото при функционирање (power dissipation)

2. време на каснење на сигналот при проаѓање низ колото (propagation delay) и

3. маргина на шум во напонот или варирање на напонот (noise margin).

слика 2.3: Интегрално коло 7400 во TTL технологија

Логичките кола во зависност од тоа дали имаат или немаат меморија може да се поделат на:

1. комбинациони кола или кола без меморија и 2. секвенцијални кола или кола со меморија.

Кај комбинационите кола излезот зависи само од влезот и со задавање на сите вредности за влезните параметри можат да се добијат излезните вредности за секоја комбинација на влезовите. Тоа е табела на вистинитост на функцијата.

Page 101: digitalna logika

92 Дигитална логика

2.10 Примери

1. Напишете ја каноничната форма производ од суми (СКНФ) на функцијата f која е зададена со макстермите за кои има вредност нула f = ∏ (0,2,4,6,7).

))()()()(( 321321321321321 xxxxxxxxxxxxxxxf ++++++++++= 2. Напишете ја каноничната форма сума од производи (СДНФ) на функцијата f која е зададена со минтермите за кои има вредност единица f= Σ(1,3,4,5,7).

xyzzyxzyxyzxzyxf ++++= 3. Со примена на Де Моргановата теорема да се најде комплемент на функцијата zyzyxxyf ++= .

))()(( zyzyxyxzyzyxxyf ++++=++= 4.Со примена на Де Моргановата теорема да се најде комплемент на функцијата cddcabaf ++= .

))()(( dcdcabacddcabaf ++++=++= 5. Со користење на аксиомите и теоремите на Булова алгебра да се конвертира изразот ))()(( zyzyyx +++ а) во израз кој содржи само НИ операции б) во израз кој содржи само НИЛИ операции.

)( )( )( )( )( )(

)( )( )())()((

zyzyxyzyzyxy

zyzyxyzyzyyxzyzyyx ==+++=+++

)()()(

)()()())()(())()((

zzyzyyyyxx

zyzyyxzyzyyxzyzyyx

+++++++++

=+++++=+++=+++

6. Со користење на аксиомите и теоремите на Булова алгебра да се конвертира изразот ))(( zxzyyx +++

Page 102: digitalna logika

2. Прекинувачка алгебра 93

а) во израз кој содржи само НИ операции б) во израз кој содржи само НИЛИ операции.

))((*))((*

))(())(())((

zzxxzyyyyxzxzyyx

zxzyyxzxzyyxzxzyyx

==

=++=+++=+++

)()()()()()(

)()()())(())((

zxzzyyxxzxzzyyxx

zxzyyxzxzyyxzxzyyx

+++++++++++++++=

=+++++=+++=+++

7. Да се претстави изразот zxyx + во форма -производ од суми (КНФ - конјунктивна нормална форма) -каноничен производ од суми (СКНФ - совршена конјунктивна нормална форма).

))(( zxyxzxyxzxyx ++==+

))()(())(())(( zyxzyxzyxzyyxzzyxzxyx ++++++=++++=++ 8. a) Да се претстави изразот xzxzyyx +++ )( во форма -сума од производи (ДНФ - дисјунктивна нормална форма) -канонична сума од производи (СДНФ - совршена дисјунктивна нормална форма).

zyxxzyxxxzxyxzyxxzxzyyx ++=++=++=++=+++ )()(

zyxzxyxyzzyxzyxzyxyzx

yyzxyyxzzzyxzzxyzzyxzzyx

zxxzyxxyyxyxxxzxxyyyx

++++++

=+++++++++++

=+++++=+++++

)()()()()()(

)()()(

9.а) За даденото коло да се нацрта еквивалентно коло со користење само на И, ИЛИ и исклучиво ИЛИ порти. б) Да се напишат изразите за z1 и z2 во форма сума од производи.

Page 103: digitalna logika

94 Дигитална логика

cz1a

b

z2

а) yxyx +=* c

z1ab

z2

б)

cbacbaabccba

cbacbacbaba

cbabacbaba

cbabacbaz

+++=

++++=

+++=

⊕+=⊕⊕=

))((

)()(

)()(1

abcbabcaabcbaz ++=+⊕= )(2 10. а) За даденото коло да се нацрта еквивалентно коло со користење само на И, ИЛИ и исклучиво ИЛИ порти. б) Да се напишат изразите за z1 и z2 во форма сума од производи.

cz1a

b

z2

Page 104: digitalna logika

2. Прекинувачка алгебра 95

a) xyyx =+

cz1a

b

z2

б)

cbacbaabccba

cbacbacbaba

cbabacbaba

cbabacbaz

+++=

++++=

+++=

⊕+=⊕⊕=

))((

)()(

)()(1

bcbaacbacbababacbabaz +++=+++=+⊕+= ))((]))[((2 11. Да се покаже дека импликацијата и негацијата (->,-) претставуваат универзално множество. Импликацијата може да се претстави како

qpqp +=>− . Треба да се покаже дека операциите ИЛИ и И може да се изразат преку негација и импликација.

qpqppqpq

qpqp

→=+==

→=+

Page 105: digitalna logika

96 Дигитална логика

2.11 Задачи

1. Со примена на аксиомите и теоремите на Булова алгебра да се поедностават изразите

а) ab c a b c+ + +( ) .

б) ( )( )( )ab ac a b a c+ + +

в) x y wyz x y wz z( ) ( )+ + + 2. Да се најде комплемент на изразот a b c uv+ +( ). 3. Со примена на аксиомите и теоремите на Булова алгебра да се докаже дека важи

а) x y x y⊕ = ⊕

б) x y x y⊕ = ⊕

в) xy x y x y⊕ = ⊕ . 4. Да се провери дали важи abc a bc b c a c= + + +( )( )( ) . 5. Со примена на аксиомите и теоремите од Булова алгебра да се претвори секој од изразите во израз кој содржи а) И и НЕ операции б)ИЛИ и НЕ операции в)НИ операции г)НИЛИ операции E ab ac bc1 = + + E x y y z y z2 = + + +( )( )( ) E x y y z x z3 = + + +( )( ) 6. Докажи дека {НИ} и {НИЛИ} се универзални множества.

7. Функцијата f x x x( , , )1 2 3 е зададена со f =∑ ( , , , )2 3 5 6 . Да се најдат СДНФ и СКНФ за функцијата.

Page 106: digitalna logika

2. Прекинувачка алгебра 97

8. Да се најдат СДНФ и СКНФ за функцијата f x x x x x x x x x x( , , ) ( )1 2 3 1 2 2 3 1 1 3= + + + .

9. Да се одреди СДНФ (форма канонична сума од производи) за Буловата функција од 3 променливи која добива вредност 1 кога барем два аргументи се еднакви на 0. 10. Да се одреди СДНФ (форма каноничен производ од суми) за Буловата функција од 4 променливи која добива вредност 1 ако парен број на аргументи е еднаков на 1. 11. Да се напише изразот за f само со И, ИЛИ и НЕ операции

12. Изразот ( )( )x yz y xz+ + да се претстави како а) сума од производи б) канонична сума од производи в) производ од суми г) каноничен производ од суми.

Page 107: digitalna logika
Page 108: digitalna logika

3. ИМПЛЕМЕНТАЦИЈА НА ПРЕКИНУВАЧКИ ФУНКЦИИ

Page 109: digitalna logika

100 Дигитална логика

При хардверска имплементација на Буловите функции важна улога има бројот на членови во изразите сума од производи и производ од суми, како и бројот на литерали кои го сочинуваат секој член од изразите. Формата сума од производи, како што е веќе кажано, се нарекува уште дисјунктивна нормална форма или ДНФ, а формата производ од суми се нарекува конјунктивна нормална форма или КНФ. Литерали претставуваат променливи или комплементи на променливите. Во оваа глава се разгледуваат начини на поедноставување на прекинувачките функции за да се намали комплексноста на изразите кои треба хардверски да се реализираат. Постојат неколку начини на минимизирање на прекинувачките функции. Еден начин е алгебарски, односно со примена на аксиомите и теоремите на Буловата алгебра. Други методи кои ќе бидат опишани во оваа глава се методот Карноови (Karnaugh) мапи и методот Квин-МекКласки (Quine-McCluskey). Методот Карноови мапи е применлив само на функции со шест или помалку променливи. Кај методот Квин-МекКласки бројот на променливи може да биде произволен.

3.1 Алгебарска минимизација

Изразот се смета за минимизиран ако содржи минимален број на членови и литерали, односно со понатамошно минимизирање би се добил израз кој содржи помалку членови или литерали но веќе не ја претставува почетната функција и не генерира иста вистинитосна табела. При минимизација на ДНФ најчесто се користат следните теореми:

1. xy xy y+ = 2. x xy x y+ = + (теорема симплификација)

3. xz xy yz xz xy+ + = + (теорема консензус). Дуалните теореми на овие може да се користат за минимизација на функциите во КНФ. При минимизација на функциите последователно и наизменично се применуваат горните теореми се додека водат до понатамошно поедноставување на изразите. Функцијата добиена со примена на алгебарска минимизација не е секогаш минимална, но е блиска до минималната. Покрај горните

Page 110: digitalna logika

3. Имплементација на прекинувачки функции 101

теореми може да се користат и други аксиоми и теореми од Булова алгебра. Во следниот пример за поедноставување на изразот се користи првата теорема: f a b c d abcd abcd abcd abcd abcd abcd abcd abcd( , , , ) = + + + + + + + = + + + + + + +acd b b acd b b abc d d abc d d( ) ( ) ( ) ( ) = + + +acd acd abc abc = + + +ad c c ac b b( ) ( ) = +ad ac Во примерот кој е даден во продолжение се користат сите три погоре наведени теореми: f a b c d abc bcd acd abcd abc( , , , ) = + + + + = + + + +ab c c bcd acd abcd( ) (1) = + + +ab bcd acd abcd = + + +a b b cd bcd acd[ ( )] (2)

= + + +a b cd bcd acd( ) = + + +ab acd bcd acd = + + +[ ( ) ( )]ab a cd b cd acd (3) = + +ab acd acd

3.2 Импликанти и имплиценти

Кај ДНФ секој производ се нарекува импликанта (implicant) на функцијата, додека кај КНФ секоја сума се нарекува имплицента (implicent) на функцијата. Кога вредноста на импликантата во ДНФ е еднаква на 1 тогаш функцијата има вредност 1. Кога вредноста на имплицентата во КНФ е еднаква на 0 тогаш функцијата има вредност 0.

Нека е дадена функцијата f a b c d abcd abcd abcd abcd( , , , ) = + + + . Таа има 4 минтерми од кои секој претставува импликанта на функцијата. Функцијата може да се поедностави со групирање на првите два минтерма при што се добива abcd abcd acd b b acd+ = + =( ) и со групирање на преостанатите два

Page 111: digitalna logika

102 Дигитална логика

минтерма abcd abcd acd b b acd+ = + =( ) , така да функцијата станува f acd acd= + .

Овие два производи исто така претставуваат импликанти на функцијата, бидејќи функцијата има вредност 1 кога било кој од нив е 1. Она што е предност во однос на почетниот израз со кој е претставена функцијата е што овие производи содржат помал број на литерали. Со понатамошна минимизација на функција, односно групирање на

производите се добива f cd a a cd= + =( ) . Се вели дека производите acd и acd го имплицираат cd , бидејќи било кое доделување вредности кое овозможува некој од нив да добие вредност 1 исто така предизвикува cd да добие вредност 1. Постапката за минимизација на функцијата всушност води до наоѓање на множество на “најмали“ импликанти, односно примарни импликанти (prime implicant). Дефиниција 3.1: Примарна импликанта е импликанта која не имплицира некоја друга импликанта на функцијата. На пример, за претходната функција cd е примарна импликанта. Множеството на примарни импликанти за било која прекинувачка функција е единствено. За да се претстави функцијата во минимална форма не мора да се користат сите примарни импликанти.

Нека е дадена функцијата f a b c ab ac bc( , , ) = + + која може да се сведе

на 4 минтерми f a b c abc abc abc abc( , , ) = + + + . Бидејќи ниеден од производите ab ac, и bc не имплицира било кој од другите два, тие се примарни импликанти. Производот ab ги покрива минтермите abcи abc, а ac минтермите abc и abc. Бидејќи сите минтерми се покриени со две примарни импликанти

функцијата f може да се изрази како f a b c ab ac( , , ) = + што всушност следи од теоремата консензус (ab ac bc ab ac+ + = + ).

Page 112: digitalna logika

3. Имплементација на прекинувачки функции 103

Според горните согледувања минимизацијата на функцијата се состои во наоѓање на сите примарни импликанти и потоа, одредување минимално множество примарни импликанти кои ги покриваат сите минтерми на функцијата.

3.3 Минимизација со Карноови мапи

Карноова мапа на функција од n променливи претставува табела со 2n ќелии. Ќелиите се соседни доколку имаат заеднички страни или се наоѓаат на спротивните страни на мапата (лева и десна, како и горна и долна страна). Карноовата мапа може да се смета за торус кој е пресечен така да претставува правоаголна површина. Колоните и редовите на мапата се обележени со бинарни индекси кои се разликуваат само за 1 бит. На слика 3.1 се претставени Карноовите мапи за 1, 2, 3 и 4 променливи и соодветните обележувања на колоните и редовите.

x 0 1

x2x3

x1 00 01 11 10

0 1

x3x4

x1x2

00 01 11 10 00 01 11 10

слика 3.1: Карноови мапи за функции со една, две, три и четири

променливи

x2

x1 0 1 0 1

Page 113: digitalna logika

104 Дигитална логика

Прво ќе биде опишана минимизација со методот Карноови мапи на функција која е во канонична форма сума од производи (СДНФ). Функцијата се запишува во мапата со пишување единици во ќелиите кои одговараат на минтерми за кои функцијата има вредност 1. Минимизација се изведува со групирање на соседни ќелии со вредност 1 во правоаголници со големина 2к ќелии, при што се зема во предвид принципот на соседство. Потребно е секоја 1 да биде покриена барем со еден правоаголник. При минимизацијата можно е некои правоаголници да се комплетно прекриени со поголеми правоаголници, а некои правоаголници делумно да се преклопуваат со други. Ако правоаголниците се покриени од поголеми тогаш во решението се земаат поголемите правоаголници. Поголемите правоаголници овозможуваат елиминирање на поголем број променливи од производите и на тој начин водат до пооптимално решение. Ако функцијата е непотполно дефинирана кај недефинираните минтерми се пишува симболот b. Ќелиите обележани со симболот b каде функцијата има неопределена вредност може да се сметаат за 1 или 0, во зависност од тоа дали со таа вредност ќе може да се формира поголем правоаголник. На сликата 3.2 се претставени некои од можните групирања кај Карноовите мапи за функции од 4 променливи. Во минималната дисјунктивна нормална форма на функцијата на секоја група единици, односно на секој правоаголник, одговара еден производ. Производот се формира така да се испуштаат променливите чии индекси ја менуваат вредноста во дадената група, а се задржуваат променливите кои имаат непроменливи индекси. Големината на правоаголникот го определува бројот на литерали во производите на минималната сума од производи форма на функцијата. За функција од две променливи:

• правоаголник од една ќелија е минтерм од 2 литерали • правоаголник од две ќелии е производ од 1 литерал • правоаголник од четири ќелии (сите ќелии се пополнети со единици) одговара на функцијата f=1.

Page 114: digitalna logika

3. Имплементација на прекинувачки функции 105

00 01 11 10 00 01 11 10 00 01 11 10 00 00 00 01 01 01 11 11 11 10 10 10

00 01 11 10 00 01 11 10 00 01 11 10 00 00 00 01 01 01 11 11 11 10 10 10

00 01 11 10 00 01 11 10 00 01 11 10

00 00 00 01 01 01 11 11 11 10 10 10

00 01 11 10 00 01 11 10 00 01 11 10

00 00 00 01 01 01 11 11 11 10 10 10

00 01 11 10 00 01 11 10 00 01 11 10

00 00 00 01 01 01 11 11 11 10 10 10

00 01 11 10 00 01 11 10 00 01 11 10

00 00 00 01 01 01 11 11 11 10 10 10 00 01 11 10 00 01 11 10 00 01 11 10

00 00 00 01 01 01 11 11 11 10 10 10

00 01 11 10 00 01 11 10 00 01 11 10 00 00 00 01 01 01 11 11 11 10 10 10

слика 3.2: Некои групирања кај Карноови мапи за функции од 4 променливи

Page 115: digitalna logika

106 Дигитална логика

За функција од три променливи:

• правоаголник од една ќелија претставува минтерм од 3 литерали • правоаголник од две ќелии е производ од 2 литерали • правоаголник од четири ќелии е производ од 1 литерал • правоаголник од 8 ќелии е функцијата f=1.

За функција од четири променливи:

• -правоаголник од една ќелија е минтерм од 4 литерали • -правоаголник од две ќелии е производ од 3 литерали • -правоаголник од четири ќелии е производ од 2 литерали • -правоаголник од осум ќелии е производ од 1 литерал • -правоаголник од шеснаесет ќелии е функцијата f=1.

Дефиниција 3.2: Ако правоаголникот не е покриен од поголем правоаголник тогаш производот кој одговара на тој правоаголник претставува примарна импликанта на функцијата. Дефиниција 3.3: Ако во Карноовата мапа некоја единица може да се покрие само со еден правоаголник тогаш производот кој одговара на тој правоаголник се нарекува значајна (essential) примарна импликанта. Значи, за да се добие минимална ДНФ на прекинувачка функција зададена со Карноова мапа потребно е на мапата да се формираат правоаголници на кои им одговараат примарни импликанти, така да секоја единица биде покриена барем со еден правоаголник, а бројот на правоаголници треба да биде минимален. Предноста на методот Карноови мапи е во тоа што воочувајќи ги правоаголниците, минималните форми може да се напишат без аналитичко изведување на изразите. Минимизацијата со Карноови мапи не функционира само во случај кога сите ќелии се пополнети со 1 (или 0 при наоѓање на форма минимален производ од суми). Тогаш Карноовите мапи ја претставуваат функцијата f=1 (f=0).

Page 116: digitalna logika

3. Имплементација на прекинувачки функции 107

Пример 3.1:f x y z x yz xyz x yz xy z( , , ) = + + +

Со методот Карноови мапи да се минимизира

функцијата . Се црта Карноова мапа за функција од 3 променливи. Бидејќи функцијата е во форма канонична сума од производи, за секој минтерм на функцијата се внесува единица во мапата на позицијата соодветна на минтермот. Во останатите полиња треба да се внесат нули, но за подобра прегледност нулите се изоставуваат. Карноовата мапа за функцијата е дадена на слика 3.3. Поголемиот правоаголник може да се образува бидејќи мапата формира торус, односно десниот раб на мапата се составува со левиот.

yz

x 00 01 11 10

0 1 0 0 1 1 1 0 0 1

слика 3.3: Карноова мапа за функцијата од пример 3.1

Така, правилно формирање на правоаголници, односно испуштање на правоаголниците кои се покриени од правоаголници од повисок ред, за дадената Карноова мапа е прикажано на сликата 3.4.

yz

x 00 01 11 10

0 1 1 1 1 1

слика 3.4: Правилно групирање на единиците за функцијата од

пример 3.1 Следниот чекор при минимизација на функцијата е да се напишат производите кои ги претставуваат групите единици опфатени од секој правоаголник. Производите се формираат така да се испуштаат променливите чии индекси ја менуваат вредноста во дадената група, а се задржуваат променливите кои имаат непроменливи индекси. Индексите на променливите x и y ја менуваат вредноста, додека индексот на z останува 0. Заради тоа производот ќе се состои од еден литерал z . Како што е претходно објаснето, кај функција од 3

Page 117: digitalna logika

108 Дигитална логика

променливи правоаголник кој опфаќа 4 ќелии се сведува на производ од еден литерал. Пример 3.2:

xyzzxyzyxzyxyzxzyxzyxzyxf ++++++=),,(

Со методот Карноови мапи да се минимизира функцијата

. Функцијата f е во канонична форма сума од производи. За секој минтерм се внесува 1 во соодветна ќелија од Карноовата мапа (слика 3.5).

yz

x 00 01 11 10

0 1 1 1 1 1 1 1 1

слика 3.5: Карноова мапа за функцијата од пример 3.2

Околу единиците се формираат правоаголници чии страни мора да бидат со должина степен на бројот 2. За функции со 3 променливи правоаголниците може да имаат страни чија должина е 1, 2 и 4. На слика 3.6 се претставени 3 правоаголници кои може да се формираат за дадената Карноова мапа.

yz

x 00 01 11 10

0 1 1 1 1 1 1 1 1

слика 3.6: Групирање на единици на Карноовата мапа за функцијата

од пример 3.2 Потоа се формираат производите за секоја група единици заокружени со правоаголник. Правоаголникот во долниот ред ги содржи y и z со индекси 0 и 1. Затоа овие променливи се елиминираат од производот и останува само променливата x. До истиот резултат се доаѓа и со алгебарски трансформации. Долниот

правоаголник го сочинуваат минтермите x yz x yz xyz xy z+ + + . Со примена на неколку трансформации се добива x yz x yz xyz xy z+ + + = + + +x y z z xy z z( ) ( ) = +x y y( ) = x .

Page 118: digitalna logika

3. Имплементација на прекинувачки функции 109

Средниот правоаголник претставува производ од еден литерал z, додека десниот правоаголник производ од еден литерал y. Така, по минимизацијата со методот Карноови мапи прекинувачката функција го добива обликот f x y z x y z( , , ) = + + . Пример 3.3:

cd

Да се најде комплемент на функцијата зададена со следната Карноова мапа:

ab

00 01 11 10 00 1 1 1 01 1 11 10 1 1 1

Функцијата зададена со Карноовата мапа е f a b c d( , , , ) ( , , , , , , )=∑ 0 1 2 5 8 9 10 што лесно се забележува имајќи го во предвид распоредот на минтермите во Карноовата мапа (слика 3.7).

cd

ab

00 01 11 10 00 0 1 3 2 01 4 5 7 6 11 12 13 15 14 10 8 9 11 10

слика 3.7: Распоред на минтерми за функција со 4 променливи

Со минимизација функцијата се сведува на изразот f bd bc acd= + + . Единиците се групирани во 3 правоаголници. Групирањето на единиците е прикажано на слика 3.8.

cd

ab

00 01 11 10 00 1 1 1 01 1 11 10 1 1 1

слика 3.8: Минимизација на функцијата од пример 3.3

Page 119: digitalna logika

110 Дигитална логика

Минтермите кои не се вклучени во функцијата припаѓаат на комплементот на функцијата. Според тоа комплементот на функцијата може да се добие со групирање на соседните 0 за да се формира форма сума од производи. Местата на Карноовата мапа кои не се пополнети со 1 се пополнуваат со 0 и се изведува минимизација на функцијата (слика 3.9).

cd

ab

00 01 11 10 00 0 01 0 0 0 11 0 0 0 0 10 0

слика 3.9: Наоѓање комплемент на функцијата од пример 3.3

За секоја група на 0 се наоѓа производот од литерали. Така, за

комплементот на функцијата се добива f a b c d ab cd bd( , , , ) = + + .

За проверка на резултатот може да се изврши комплементирање на f и да се применат одредени алгебарски трансформации, при што се добива функцијата f: f ab cd bd= + + = + + +( )( )( )a b c d b d = + + + +( )( )ac bc ad bd b d = + + + + +( ) ( )abc bc abd bd acd bcd = + + +( )bc bcd bd acd = + +bc bd acd Пример 3.4:

f x y z y z xz x yz( , , ) ( )= + + Да се најде минимална сума од производи форма за

функцијата . Функцијата прво треба да се трансформира во форма сума од

производи, при што се добива f x y z yz xy z x yz( , , ) = + + . Се забележува дека функцијата не е сведена во облик канонична сума од производи. За канонична сума од производи форма секој минтерм

Page 120: digitalna logika

3. Имплементација на прекинувачки функции 111

на функцијата ќе определува една 1 во Карноовата мапа. За функцијата може да се нацрта Карноова мапа претставена на сликата 3.10. yz

yz

x 00 01 11 10

0 1 1 1 1 1

xz

слика 3.10: Карноова мапа за функцијата од пример 3.4 Производот yz од функцијата f е претставен со две единици во колоната означена со индекси 11. Минималната сума од производи

форма или минимална ДНФ форма на функцијата е f yz xz= + . Пример 3.5:

f x y z w( , , , ) ( , , , , )= ∏ 0 1 4 5 9

Да се најде минимална ДНФ и минимална КНФ за функцијата

. Функцијата е зададена во облик производ од суми. Во тој случај се дадени макстермите за кои функцијата има вредност 0. Во Карноовата мапа (слика3.11) треба да се внесат 0 на позициите на зададените макстерми: 0,1,4,5 и 9.

zw

xy

00 01 11 10 00 0 0 01 0 0 11 10 0

слика 3.11: Карноова мапа за функцијата од пример 3.5

Од Карноовата мапа може да се определи комплементот на функцијата f xz yzw= + .

Page 121: digitalna logika

112 Дигитална логика

Минималната КНФ (производ од суми) е всушност еднаква на

минималната ДНФ на f . Со примена на Де Моргановата теорема за

минималната КНФ на функцијата f се добива f x z y z w= + + +( )( ). Минималната ДНФ на функцијата f може да се определи со

комплементирање на f и одредени алгебарски трансформации f f xz yzw= = + = + + +( )( )x z y z w = + + + + +xy yz xz z xw zw( ) = + + + +xy yz z xw zw( ) = + + +( )z zw xy xw = + +z xy xw или со цртање нова Карноова мапа (слика 3.12), каде во секоја ќелија која не е пополнета со 0 се пишува 1. z

zw

xy

00 01 11 10 00 1 1 01 1 1 11 1 1 1 1 10 1 1 1

xy xw

слика 3.12:Определување на минимална ДНФ за функцијата од пример 3.5

Од Карноовата мапа се добива минималната ДНФ на функцијата f z xy xw= + + .

Page 122: digitalna logika

3. Имплементација на прекинувачки функции 113

Карноови мапи за функции со 5 и 6 променливи

Карноовите мапи не се користат за минимизација на функции со повеќе од шест променливи бидејќи мапите стануваат непрегледни, а постапката комплексна. Карноова мапа за функција со 5 променливи се формира со користење на две подмапи за четири променливи. На сликата 3.13 е претставена Карноова мапа за функција од 5 променливи.

v=0 wx

yz 00 01 11 10

00 m0 m1 m3 m2 01 m4 m5 m7 m6 11 m12 m13 m15 m14 10 m8 m9 m11 m10

v=1 wx

yz 00 01 11 10

00 m16 m17 m19 m18 01 m20 m21 m23 m22 11 m28 m29 m31 m30 10 m24 m25 m27 m26

слика 3.13: Карноова мапа за функција од 5 променливи

Првата од подмапите ги претставува редовите на комбинационата табела за кои v=0, а втората редовите за кои v=1. Слично, Карноова мапа за функција од 6 променливи се состои од четири подмапи за четири променливи. Мапата за функција од 6 променливи е претставена на сликата 3.14. Првата од подмапите ги претставува редовите од комбинационата табела за кои u=0 и v=0, втората оние за кои u=0 а v=1, итн. Основните правила за групирање важат и за мапите за 5 и 6 променливи. При формирање на производите на минималната ДНФ се задржуваат променливите чии индекси не се менуваат, а се испуштаат оние чии индекси се менуваат. Ќелиите кои се наоѓаат во иста подмапа се групираат на ист начин како што е претходно опишано. Ако две ќелии се наоѓаат во различни подмапи може да се групираат само ако се наоѓаат на иста позиција во нивните соодветни подмапи. На пример, минтермот m4 и

Page 123: digitalna logika

114 Дигитална логика

m20 може да се групираат, но минтермите m4 и m17 не може да се групираат.

u=0 v=0 wx

yz

u=0 v=1 wx

yz 00 01 11 10 00 01 11 10

00 m0 m1 m3 m2 00 m16 m17 m19 m18 01 m4 m5 m7 m6 01 m20 m21 m23 m22 11 m12 m13 m15 m14 11 m28 m29 m31 m30 10 m8 m9 m11 m10 10 m24 m25 m27 m26

u=1 v=0 wx

yz

u=1 v=1 wx

yz 00 01 11 10 00 01 11 10

00 m32 m33 m35 m34 00 m48 m49 m51 m50 01 m36 m37 m39 m38 01 m52 m53 m55 m54 11 m44 m45 m47 m46 11 m60 m61 m63 m62 10 m40 m41 m43 m42 10 m56 m57 m59 m58

слика 3.14: Карноова мапа за функција од 6 променливи Кај Карноовата мапа за 6 променливи може да се групираат само ќелии кои се наоѓаат во хоризонтално и вертикално соседни подмапи. Не може да се комбинира ќелија од подмапата обележана со u=0 и v=0, со подмапата обележана со u=1 и v=1, бидејќи се разликуваат во два бита. Може да се групираат и четири ќелии кои се наоѓаат на исти позиции во подмапите. На пример, може да се групираат m5, m21, m37 и m53. Пример 3.6:

f v w x y z( , , , , ) ( , , , , , , , , , , , , , , , , )=∑ 3 4 7 9 11 12 15 16 18 19 20 23 24 26 27 28 31

Да се најде минимална ДНФ за функцијата со 5 променливи

. Како што е претходно кажано функцијата од 5 променливи се претставува со Карноова мапа со две подмапи од 4 променливи. Првата од подмапите ги претставува редовите на комбинационата табела за кои v=0, а втората редовите за кои v=1. Во рамките на иста подмапа единиците се групираат на ист начин како кај Карноови мапи за помалку од 5 променливи. Ќелиите во различни подмапи може да се групираат само ако се наоѓаат на исти позиции во соодветните подмапи. Дадената функција може да се претстави со двете подмапи претставени на сликата 3.15.

Page 124: digitalna logika

3. Имплементација на прекинувачки функции 115

p1 p4

v=0 wx

yz

v=1 wx

yz 00 01 11 10 00 01 11 10

00 1 00 1 1 1 01 1 1 01 1 1 11 1 1 11 1 1 10 1 1 10 1 1 1

p3 p2 слика 3.15: Карноова мапа за функцијата со 5 променливи од пример

3.6 Прво се групираат единиците во секоја подмапа поодделно, а потоа се споредуваат правоаголниците на двете подмапи. Бидејќи ќелиите означени со правоаголниците p1 и p2 се наоѓаат на исти позиции во двете подмапи можно е да се групираат. Минималната форма сума од производи на функцијата е f p p p p x yz yz vwxz v xz= + + + = + + +1 2 3 4 .

Минимизација на непотполно дефинирани функции

Во следниот пример се разгледува минимизација на функција која е непотполно дефинирана, односно за одредена влезна комбинација не е можно да се специфицира излезот. Тоа значи дека некои влезни комбинации немаат влијание врз излезот. Таквите влезни комбинации се нарекуваат непотполно дефинирани услови (don’t care condition), а соодветните минтерми за овие влезни комбинации се нарекуваат непотполно дефинирани членови. Функциите кои содржат непотполно дефинирани членови се нарекуваат непотполно дефинирани функции (incompletely specified functions). Во оваа книга некомплетно дефинираните минтерми се означуваат со симболот b.

Page 125: digitalna logika

116 Дигитална логика

Пример 3.7:

f x x x x d( , , , ) ( , , , ) ( , , , , )1 2 3 4 2 4 8 15 0 7 10 12 13=∑

Со користење на методот Карноови мапи да се најде минимална ДНФ на функцијата

. Карноовата мапа за дадената функција е претставена на слика 3.16.

x3x4

x1x2

00 01 11 10 00 b 1 01 1 b 11 b b 1 10 1 b

слика 3.16: Карноова мапа за функцијата од пример 3.7

Со групирање на минтермите 4 и 8 со непотполно дефинираните

минтерми 0 и 12 се добива производот x x3 4 , а со групирање на минтермите 2 и 8 со непотполно дефинираните минтерми 0 и 10 се

добива производот x x2 4 . Минтермот 15 може да се групира со еден од непотполно дефинираните минтерми 7 или 13. Ако се групира со 7 се добива производот x x x2 3 4 , а ако се групира со 13 се добива производот x x x1 2 4 . Значи, постојат две минимални ДНФ за дадената функција: f x x x x x x x1 2 4 3 4 2 3 4= + + f x x x x x x x2 2 4 3 4 1 2 4= + + .

Карнови мапи за минимални ДНФ и КНФ на функциите

Минимална КНФ на функцијата, со користење на методот Карноови мапи, се наоѓа на сличен начин како минимална ДНФ. Во Карноовата мапа се запишуваат 0 на позициите на макстермите за кои функцијата има вредност 0. Минимизација се изведува со групирање на соседни ќелии со вредност 0 во правоаголници со големина 2к ќелии, при што се зема во предвид принципот на соседство. Исто како и при наоѓање минимална ДНФ, потребно е да се најдат сите можни правоаголници, освен оние кои се комплетно прекриени со поголеми правоаголници. Дозволено е правоаголниците делумно да се преклопуваат еден со друг. За да се добие минимална форма на функцијата важно е правоаголниците да бидат што поголеми.

Page 126: digitalna logika

3. Имплементација на прекинувачки функции 117

За функции кои се непотполно дефинирани се запишува симболот b на местото на макстермите каде функцијата има неопределена вредност. Во минималната конјунктивна нормална форма на функцијата на секоја група нули одговара една сума. Сумата се формира така да се испуштаат променливите чии индекси ја менуваат вредноста во дадената група, а се задржуваат променливите кои имаат непроменливи индекси. За разлика од формирањето на производите кај минимална ДНФ, ако индексот на променливата која се задржува е 1 во сумата се пишува комплемент од променливата, а ако е 0 се пишува самата променлива. Пример 3.8:

x1

Да се најде минимална КНФ за прекинувачката функција f зададена со следната вистинитосна табела:

x2 x3 f 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0

Од табелата на вистинитост, со која е зададена функцијата, може да се напишат каноничните форми на функцијата. Така, СДНФ се добива како збир на минтермите за кои функцијата има вредност 1: f x x x x x x x x x= + +1 2 3 1 2 3 1 2 3 , а СКНФ се добива како производ на макстермите за кои функцијата има вредност 0: f x x x x x x x x x x x x x x x= + + + + + + + + + +( )( )( )( )( )1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 .

Според тоа, функцијата може да се запише во облик f x x x( , , ) ( , , , , )1 2 3 0 2 4 6 7= ∏ .

Карноовата мапа на функцијата според која се определува минималната КНФ е дадена на сликата 3.17.

Page 127: digitalna logika

118 Дигитална логика

x3 x2x3

x1 00 01 11 10

0 0 0 1 0 0 0

x x1 2+

слика 3.17: Наоѓање минимална КНФ за функцијата од пример 3.8 Со групирање на макстермите 0, 4, 2 и 6 се добива сума од еден литерал x3, а со групирање на макстермите 6 и 7 се добива сумата x x1 2+ . Минималната КНФ на функцијата е f x x x= +( )1 2 3. Друг начин на наоѓање на минималната КНФ е со наоѓање на комплемент на функцијата f од Карноовата мапа и примена на Де Моргановата теорема. Функцијата која е комплемент на f има единици каде што f има нули. Така ако нулите се третираат како единици и се изврши истото групирање како што е прикажано на Карноовата мапа, но наместо

КНФ се бара ДНФ ќе се добие f x x x= +3 1 2. Со примена на Де Моргановата теорема се добива изразот за минимална КНФ на

функцијата f f x x x x x x= = + = +3 1 2 3 1 2( ) . Пример 3.9:f x y z w( , , , ) ( , , , , , , , , )=∑ 0 1 2 4 5 6 8 9 10

Да се најде минимална КНФ за функцијата

. За да се нацрта Карноова мапа за наоѓање минимална КНФ потребно е да се определат макстермите за кои функцијата има вредност 0. За таа цел функцијата може да се напише во облик f x y z w( , , , ) ( , , , , , , )= ∏ 3 7 11 12 13 14 15 .

Карноовата мапа за функцијата е претставена на слика 3.18. Од мапата се определува минималната КНФ на функцијата f x y z w= + +( )( ).

Page 128: digitalna logika

3. Имплементација на прекинувачки функции 119

zw

xy

00 01 11 10 00 0 01 0 11 0 0 0 0 10 0

слика 3.18: Карноова мапа за функцијата од пример 3.9

Составување на комбинациони кола

Минимизацијата на прекинувачките функции наоѓа примена при синтеза на комбинациони мрежи бидејќи овозможува да се најде оптимална хардверска реализација. Следните примери ја илустрираат постапката на синтеза на комбинациони мрежи. Пример 3.10:

Да се изврши синтеза на комбинационо коло кое конвертира NBCD код во вишок 3 код. Врз основа на табелата за конверзија на NBCD во вишок 3 код, прикажана во табела 3.1, потребно е да се направи комбинациона табела. Kомбинационото коло ќе има 4 влезови и 4 излези. Бидејќи се потребни 4 влезни променливи комбинационата табела ќе има 24 =16 редови. Оние влезни комбинации кои не се NBCD кодови имаат недефинирани излезни вредности. Комбинационата табела е претставена во табела 3.2.

Табела 3.1: Конверзија на NBCD код во вишок 3 код

NBCD вишок 3 0 0000 0011 1 0001 0100 2 0010 0101 3 0011 0110 4 0100 0111 5 0101 1000 6 0110 1001 7 0111 1010 8 1000 1011 9 1001 1100

Page 129: digitalna logika

120 Дигитална логика

Секоја од излезните функции се минимизира со методот Карноови мапи, како што е претставено на сликата 3.19. Минималните ДНФ за функциите се f x x x x x1 1 2 4 2 3= + + f x x x x x x x2 2 3 4 2 4 2 3= + + f x x x x3 3 4 3 4= + f x4 4= .

Табела 3.2: Комбинациона табела за колото за конверзија на NBCD код во вишок 3 код

x1x2x3x4 f1f2f3f4 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 2 0 0 1 0 0 1 0 1 3 0 0 1 1 0 1 1 0 4 0 1 0 0 0 1 1 1 5 0 1 0 1 1 0 0 0 6 0 1 1 0 1 0 0 1 7 0 1 1 1 1 0 1 0 8 1 0 0 0 1 0 1 1 9 1 0 0 1 1 1 0 0

10 1 0 1 0 b b b b 11 1 0 1 1 b b b b 12 1 1 0 0 b b b b 13 1 1 0 1 b b b b 14 1 1 1 0 b b b b 15 1 1 1 1 b b b b

x1x2

f1 x3x4

x1x2

f2 x3x4 00 01 11 10 00 01 11 10

00 00 1 1 1 01 1 1 1 01 1 11 b b b b 11 b b b b 10 1 1 b b 10 1 b b

слика 3.19: Карноови мапи за функциите f1 и f2 од пример 3.10

Page 130: digitalna logika

3. Имплементација на прекинувачки функции 121

x1x2

f3 x3x4

x1x2

f4 x3x4 00 01 11 10 00 01 11 10

00 1 1 00 1 1 01 1 1 01 1 1 11 b b b b 11 b b b b 10 1 b b 10 1 b b

слика 3.19: Карноови мапи за функциите f3 и f4 од пример 3.10

Комбинационото коло со кое се реализира бараниот конвертор на код со користење на И, ИЛИ и НЕ порти е претставено на сликата 3.20.

слика 3.20: Комбинационо коло за конверзија на NBCD код во вишок 3 код

Пример 3.11: Да се дизајнира комбинациона мрежа која на влез добива два двобитни броеви x1x0 и y1y0, а на излез го дава помалиот од овие два броја. Комбинационата мрежа да се реализира со користење на И, ИЛИ и НЕ порти.

Page 131: digitalna logika

122 Дигитална логика

Комбинационата мрежа има 4 влезови и 2 излези. Комбинационата табела за наоѓање на помалиот од два двобитни броја е претставена во табела 3.3.

Табела 3.3: Комбинациона табела за колото од пример 3.11

x1 x0 y1 y0 z1 z2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1

Карноовите мапи за излезните функции на комбинационото коло z1 и z2 се претставени на сликата 3.21.

x1x0

z1 y1y0

x1x0

z2 y1y0 00 01 11 10 00 01 11 10

00 00 01 01 1 1 1 11 1 1 11 1 1 10 1 1 10 1

слика 3.21: Карноови мапи за минимизација на функциите од пример

3.11 По минимизацијата за излезните функции z1 и z2 се добиваат следните изрази: z x y1 1 1= z x y x y y x x y2 0 0 1 1 0 1 0 1= + + .

Page 132: digitalna logika

3. Имплементација на прекинувачки функции 123

Реализацијата на мрежата е прикажана на слика 3.22.

слика 3.22: Комбинационо коло за пример 3.22

Минимизација на мрежи со повеќе излези

При минимизација на комбинациони мрежи со повеќе излезни функции важно е да се определат производи во ДНФ формите кои се заеднички за функциите. Затоа не се изведува минимизација на секоја функција посебно, но истовремено се анализираат Карноовите мапи на сите излезни функции. Заедничка минимизација на функциите се изведува за да се намали бројот на порти со кои се имплементираат функциите. Пример 3.12:

xyzwwzxywzxyzwyxwzyxf +++=),,,(1

Нека се дадени функциите

xyzwwzxywzxyzwyxwzyxwzyxwzyxf +++++=),,,(2 Минимизацијата на функциите каде секоја функција се минимизира посебно е претставена на сликата 3.23

Page 133: digitalna logika

124 Дигитална логика

xy

f1 zw

xy

f2 zw 00 01 11 10 00 01 11 10

00 00 01 01 11 1 1 1 11 1 1 1 10 1 10 1 1 1

слика 3.23: Минимизација на функциите од пример 3.12.

По минимизацијата за фунциите се добиваат следните изрази f xy z xzw1 = + f xz xw2 = +

кои може да се имплементираат како што е претставено на сликата 3.24.

слика 3.24: Имплементација на функциите од пример 3.12 Ако минимизацијата се изведе на начин кој е прикажан на сликата 3.25 се добива хардверска реализација со една порта помалку. Се забележува дека еден производ е заеднички за двете функции.

xy

f1 zw

xy

f2 zw 00 01 11 10 00 01 11 10

00 00 01 01 11 1 1 1 11 1 1 1 10 1 10 1 1 1

слика 3.25: Заедничка минимизација на двете функции

При заедничката минимизација на функциите се добиваат изразите f xy z xzw1 = + и f xz xzw2 = + чија имплементација е прикажана на сликата 3.26.

Page 134: digitalna logika

3. Имплементација на прекинувачки функции 125

слика 3.26: Имплементација на функциите од пример 3.12, кога се изведува заедничка минимизација на функциите

3.4 Минимизација со метод Квин-МекКласки

Методот Квин-МекКласки исто како и методот Карноови мапи наоѓа минимален број на производи (суми) кои ги покриваат сите минтерми (макстерми) чија сума (производ) ја претставува минималната ДНФ (КНФ) на функцијата. Двете методи ги имаат следните три фази:

• наоѓање на примарните импликанти (имплиценти) • наоѓање на значајните примарни импликанти (имплиценти) и нивно вклучување во минималната ДНФ (КНФ) форма • избирање на минимално множество од преостанатите примарни импликанти (имплиценти) кое ги покрива минтермите (макстермите) на функцијата.

Ќе бидат разгледани минимизација на потполно и непотполно дефинирани функции, како и начини за минимизација на систем од функции.

Page 135: digitalna logika

126 Дигитална логика

Минимизација на потполно дефинирани функции

Прво ќе биде разгледана постапката за наоѓање минимална ДНФ. Постапката за наоѓање минимална КНФ незначително се разликува од онаа за наоѓање минимална ДНФ. Постапката почнува со формирање на табела, каде во првата колона се претставени децималните индекси, а во втората колона бинарните индекси на минтермите. Минтермите се групирани во класи според бројот на единици, така да првата класа има 0 единици, втората 1 единица, третата 2 единици, итн. Потоа се формира нова табела со групирање на бинарните индекси од соседни класи кои се разликуваат само за еден бит. Новиот бинарен индекс се формира така да битот во кој двата бинарни индекси се разликуваат се означува со цртичка (-), а останатите битови се препишуваат. На пример, ако се групираат бинарните индекси 1001 и 1101 се добива резултат 1-01. Всушност, овој резултат може да се добие со примена на одредени трансформации од Булова алгебра abcd abcd acd b b acd+ = + =( ) . Ако бинарниот индекс може да се комбинира со друг индекс, двата индекси се обележуваат со знакот √. Сите необележени индекси претставуваат примарни импликанти. Постапката на наоѓање примарни импликанти е илустрирана со следниот пример. Пример 3.13:

f x x x x( , , , ) ( , , , , , , , , , , )1 2 3 4 0 1 2 3 6 7 9 11 12 13 14=∑

Со методот Квин-МекКласки да се минимизира функцијата

. За функцијата се формира табела претставена на слика 3.27. Претставени се четири класи на минтерми, со 0, 1, 2 и 3 единици. Може да се групираат бинарни индекси од соседните класи. Така, со групирање на бинарниот индекс 0000 и 0001 се добива 000-, со групирање на 1100 и 1110 се добива 11-0, итн. Минтермите кои може да се комбинираат со други се обележени со знакот √. Во претходната табела сите минтерми се обележени, што значи дека тие не претставуваат примарни импликанти.

Page 136: digitalna logika

3. Имплементација на прекинувачки функции 127

x1x2x3x4 0 0 0 0 0 √ 1 0 0 0 1 √ 2 0 0 1 0 √ 3 0 0 1 1 √ 6 0 1 1 0 √ 9 1 0 0 1 √ 12 1 1 0 0 √ 7 0 1 1 1 √ 11 1 0 1 1 √ 13 1 1 0 1 √ 14 1 1 1 0 √

слика 3.27: Табела со децимални и бинарни индекси на минтермите групирани според бројот на единици во бинарната репрезентација.

Минтермите кои може да се комбинираат со други се обележени со знакот √.

Новата табела во која се наведени комбинираните бинарни индекси е претставена на сликата 3.28.

x1x2x3x4 0,1 0 0 0 - √ 0,2 0 0 - 0 √ 1,3 0 0 - 1 √ 1,9 - 0 0 1 √ 2,3 0 0 1 - √ 2,6 0 - 1 0 √ 3,7 0 - 1 1 √ 3,11 - 0 1 1 √ 6,7 0 1 1 - √ 6,14 - 1 1 0 a 9,11 1 0 - 1 √ 9,13 1 - 0 1 b 12,13 1 1 0 - c 12,14 1 1 - 0 d

слика 3.28: Табела со групи од два бинарни индекси за пример 3.13

Се продолжува со групирање на бинарните индекси од табелата на слика 3.28. Се гледа дека бинарните индекси за групата 0,1 и групата 2,3 се разликуваат за еден бит. Со нивно групирање се добива индекс

Page 137: digitalna logika

128 Дигитална логика

00--. Исто така, може да се комбинираат 0,2 и 1,3 со што би се добило 00--. Но бидејќи групата 0,1,2,3 ги содржи истите минтерми и веќе е земена во предвид, групата од индексите 0,2 и 1,3 не се внесува. Други групи кои може да се формираат се 1,3 и 9,11, како и 2,3 и 6,7. Во табелата на слика 3.28 остануваат минтерми кои не се обележани. Тие се примарни импликанти и се означуваат по редослед со буквите a, b, c и d. Од групите со четири минтерми се формира друга табела претставена на слика 3.29.

x1x2x3x4 0,1,2,3 0 0 - - e

1,3,9,11 - 0 - 1 f 2,3,6,7 0 - 1 - g

слика 3.29: Табела со групи од 4 минтерми за пример 3.13

Постапката на групирање завршува кога веќе не постои можност за формирање нова група. Преостанатите необележени импликанти се означуваат со буквите e, f и g. Од трите табели може да се најдат примарните импликанти на дадената функција. Тоа се: x x x2 3 4 , x x x1 3 4, x x x1 2 3 , x x x1 2 4 , x x1 2 , x x2 4 и x x1 3. Следниот чекор при минимизација на функцијата со методот Квин-МекКласки е формирање на табела на примарни импликанти. Табелата на примарни импликанти се нарекува и табела на покривање. Редови во табелата на примарни импликанти се примарните импликанти најдени со претходната постапка. Колони се сите минтерми на дадената функција.

0 1 2 3 6 7 9 11 12 13 14 a x x b x x c x x d x x e x x x x f x x x x g x x x x

слика 3.30: Табела на примарни импликанти за функцијата од пример

3.13

Page 138: digitalna logika

3. Имплементација на прекинувачки функции 129

Во табелата на примарни импликанти колоните се означуваат со децималните индекси на минтермите. Во полињата на табелата се пишува симболот x доколку импликантата од редот го покрива минтермот од колоната. Табелата на примарни импликанти за разгледуваната функција е претставена на слика 3.30. Ако постојат колони со само еден симбол x тогаш импликантата во редот која го покрива минтермот во колоната се нарекува значајна примарна импликанта (essential prime implicant). Во табелата на примарни импликанти значајните примарни импликанти се обележуваат со * (слика 3.31). Минтермите во колоните каде се наоѓаат симболите x кои ги одредуваат значајните примарни импликанти се заокружени. Тие се нарекуваат значајни минтерми. Редот во кој се наоѓа значајна примарна импликанта се нарекува значаен ред.

0 1 2 3 6 7 9 11 12 13 14

a x x

b x x

c x x

d x x

e* x x x x

f* x x x x

g* x x x x

слика 3.31: Покривање на минтермите на функцијата со значајни примарни импликанти

Значајните примарни импликанти мора да бидат вклучени во минималната ДНФ на функцијата. Всушност, минимизацијата според методот Квин-МекКласки се сведува на условот: секоја колона мора да има x во најмалку еден ред кој ќе биде вклучен во минималната ДНФ.

Page 139: digitalna logika

130 Дигитална логика

Се прецртуваат колоните кои содржат само еден симбол x (заокружените колони). Потоа се прецртуваат редовите кои содржат значајна примарна импликанта (означени со *). Постапката е илустрирана на сликата 3.31. Следниот чекор е да се прецртаат сите колони кои содржат симбол x во значаен ред, бидејќи со вклучување на значајните примарни импликанти во минималната ДНФ се гарантира дека минтермот од колоната е вклучен во решението. Во табелата на примарни импликанти на сликата 3.31 колони кои имаат симбол x во прецртан ред се колоните на минтермите 1, 2, 3, 6 и 9. Значајната примарна импликанта e покрај минтермот 0 ги покрива и минтермите 1, 2 и 3. f покрај минтермот 11 ги покрива и 1, 3 и 9, додека g покрај 7 ги покрива и минтермите 2, 3 и 6. Ако по овој чекор, останат колони кои не се прецртани, односно минтерми кои не се покриени со значајни примарни импликанти се формира нова табела која ги содржи само редовите и колоните кои не се прецртани. За разгледуваниот пример не се покриени минтермите 12, 13 и 14. Од преостанатите примарни импликанти се избира минимално множество кое ги покрива наведените минтерми. Новата табела е претставена на сликата 3.32. Во оваа табела нема колони со само еден симбол x. Затоа постапката продолжува со одредување на доминантни редови и колони.

12 13 14 a x b x c x x d x x

слика 3.32: Изглед на табелата на примарни импликанти по бришење на значајните редови и колоните покриени со значајни примарни импликанти. Од оваа табела се избира минимално множество од примарни импликанти кое ги покрива преостанатите минтерми на функцијата

Page 140: digitalna logika

3. Имплементација на прекинувачки функции 131

Во текстот кој следува ќе бидат воведени поими за еднаквост и доминантност на редови и колони. Дефиниција 3.4: Редовите I и J од табелата на примарни импликанти се еднакви ако имаат симболи x во исти колони (се пишува I=J). Дефиниција 3.5: Колоните i и j од табелата на примарни импликанти се еднакви ако имаат симболи x во истите редови (се пишува i=j). Дефиниција 3.6: Редот K од табелата на примарни импликанти доминира над редот L (K⊃L) ако редот K има x во сите колони во кои L има x и до по лнително р едо т K има x во најмалку една ко ло на во која L нема x. Дефиниција 3.7: Колоната i од табелата на примарни импликанти доминира над j (i ⊃ j) ако колоната i има x во сите редови во кои j има x и дополнително колоната i има најмалку еден x повеќе во ред во кој j нема x. Цената за хардверска реализација на импликанта се формира како збир од цената по број на по р ти Cp и цената по број на влезови Cv. Бидејќи е потребна само една И порта за да се реализира импликанта цената по број на порти е 1. Цената по број на влезови се одредува од табелата на примарни импликанти (слика 3.30). Од оваа табела се одредува колку променливи содржи импликантата. На тој број се додава 1 за излезот од И портата кој претставува влез во излезната ИЛИ порта. Дефиниција 3.8: Редот I може да се избрише од табелата на примарни импликанти ако постои ред J кој е еднаков со него и нема поголема цена за хардверска реализација или ако постои ред K кој доминира над I и нема поголема цена за хардверска реализација од редот I. Дефиниција 3.9: Колоната i може да се избрише од табелата на примарни импликанти ако постои колона j која е еднаква со неа или има друга колона h над која i доминира. Забележете дека може да се избрише колоната која е доминантна и редот над кој доминира некој друг ред. Во постапката за минимизација на функции, користејќи ги правилата за доминација наизменично може да се бришат редови и колони од

Page 141: digitalna logika

132 Дигитална логика

табелата на примарни импликанти. Бришењето на ред или колона според правилата за доминација не го спречува наоѓањето на минимална ДНФ, односно се гарантира дека од преостанатата табела на примарни импликанти може да се најде најмалку една минимална ДНФ за функцијата. За табелата на примарни импликанти претставена на сликата 3.32, може да се забележи дека редот d доминира над a и редот c доминира над b. Цената за хардверска реализација на импликантите a, b, c и d е иста. Од првобитната табела на примарни импликанти (слика 3.30) се забележува дека импликантата а го претставува бинарниот индекс -110 (ги покрива минтермите 6 со бинарно претставување 0110 и 14 со бинарно претставување 1110), b бинарниот индекс 1-01, c бинарниот индекс 110- и d бинарниот индекс 11-0. Бинарните репрезентации на примарните импликанти исто така може да се најдат од табелата за групирање на бинарни индекси претставена на слика 3.28. Секоја од импликантите a, b, c и d може да се реализира со И порта со 3 влезови. Цената за хардверска реализација на наведените импликанти е збир од цената по број на порти Cp=1 и цената по број на влезови Cv=3+1=4. По бришењето на редот а и редот b се добива табела на примарни импликанти претставена на сликата 3.33.

12 13 14 c** x x d** x x

слика 3.33: Изглед на табелата на примарни импликанти по

применување на правилата за доминација на редови и колони Постапката продолжува со наоѓање на колони кои имаат само едно x. То а се ко ло ните 1 3 и 1 4 . c и d се нар екуваат значајни секундарни импликанти (се обележуваат со **) бидејќи содржат значајни минтерми 13 и 14. Значајната секундарна импликанта не мора да е вклучена во сите минимални ДНФ на функцијата, за разлика од значајната примарна импликанта која фигурира во сите минимални ДНФ. На пример,

Page 142: digitalna logika

3. Имплементација на прекинувачки функции 133

наместо импликантата c во минималната ДНФ може да се вклучени b и d кои исто така ги покриваат минтермите 12 и 13. Потоа, се прецртуваат колоните 13 и 14 и редовите c и d. На крајот се прецртува колоната 12 бидејќи содржи x во значаен ред. Минималната ДНФ се формира како збир од значајните примарни и секундарни импликанти најдени во претходните чекори f c d e f g= + + + + = + + + +x x x x x x x x x x x x1 2 3 1 2 4 1 2 2 4 1 3. Очигледно е дека најдената минимална ДНФ за функцијата не е единствена. Наместо импликантите c, d, e, f и g може да се изберат a, c, e, f и g или исто така b, d, e, f и g. Сите три множества импликанти ги покриваат минтермите на функцијата. Пример 3.14:

Да се одредат доминантни колони во дадената табела на примарни импликанти. Да се објасни како влијае бришењето на доминантната колона врз процесот на наоѓање минимална ДНФ.

1 2 3 4 5 a x x x x b x x x x c x x x

Во табелата на примарни импликанти може да се забележи дека колоните 1 и 5 се еднакви. Бришењето на една од овие колони не пречи на постапката за наоѓање минимална ДНФ, односно може да се најде барем една минимална ДНФ на функцијата. Колоната 2 доминира над колоните 1, 3, 4 и 5. За да биде покриен минтермот 1 може да се избере импликантата а или импликантата b во минималната ДНФ на функцијата, додека за да биде покриен минтермот 2 може да се избере една од импликантите a, b или c. Значи, прецртување односно бришење на доминантната колона 2 од табелата на примарни импликанти нема влијание врз наоѓањето на минимална ДНФ. Ако е исполнет условот минтермот на колоната 1 да е вклучен во минималната ДНФ тогаш сигурно ќе биде исполнет и условот минтермот на колоната 2 да е вклучен во минималната ДНФ.

Page 143: digitalna logika

134 Дигитална логика

Минимизација на непотполно дефинирани функции

Непотполно дефинираната функција за некои минтерми има неопределена вредност или 0 или 1. При наоѓање на минимална ДНФ со методот Квин-МекКласки при определување на примарните импликанти се зема дека неопределените вредности се 1. Значи, првата табела се прави од минтерми за кои функцијата има вредност 1 и минтерми за кои има недефинирана вредност. Кога се креира табелата на примарни импликанти како колони на табелата се земаат само минтермите за кои функцијата има вредност 1. Минимизацијата на непотполно дефинирана функција ќе биде разгледана на еден пример. Пример 3.15

f x x x x b( , , , ) ( , , , ) ( , )1 2 3 4 0 9 13 15 7 12=∑: Со методот Квин-МекКласки да се најде минимална

ДНФ на функцијата . За да се најдат примарните импликанти на функцијата се креира табела во која минтермите се групираат во класи според бројот на единици во бинарната репрезентација (слика 3.34). Во табелата се вклучени минтермите за кои функцијата има вредност единица, како и оние за кои има недефинирана вредност.

x1x2x3x4 0 0 0 0 0 a 9 1 0 0 1 √ 12 1 1 0 0 √ 7 0 1 1 1 √ 13 1 1 0 1 √ 15 1 1 1 1 √

слика 3.34: Табела со децимални и бинарни индекси на минтермите групирани според бројот на единици во бинарната репрезентација.

Со групирање на бинарните индекси од соседни класи единствено необележана останува импликантата 0 која претставува примарна импликанта. Во горната табела е означена со a. Импликантите кои се добиваат со групирање на два бинарни индекси се внесени во табелата претставена на слика 3.35.

Page 144: digitalna logika

3. Имплементација на прекинувачки функции 135

x1x2x3x4

9,13 1 - 0 1 b 12,13 1 1 0 - c 7,15 - 1 1 1 d 13,15 1 1 - 1 e

слика 3.35: Табела со групи од два бинарни индекси за пример 3.15

Бидејќи не е можно понатамошно групирање на бинарните индекси се преминува кон формирање на табела на примарни импликанти. Табелата на примарни импликанти е претставена на слика 3.36.

0 9 13 15

a* x

b* x x

c x

d x

e x x

слика 3.36: Табела на примарни импликанти за примерот 3.15

Во табелата на примарни импликанти како колони се јавуваат само минтермите за кои функцијата има вредност 1. Минтермите за кои функцијата е недефинирана не се запишуваат во табелата. Се определуваат колоните со само еден симбол x. Тоа се колоните означени со минтермите 0 и 9. Така, значајни примарни импликанти се a и b, бидејќи единствено овие импликанти ги покриваат минтермите 0 и 9. Се прецртуваат колоните на значајните минтерми и значајните редови. Потоа се прецртуваат колоните кои имаат x во прецртан ред. Во овој пример тоа е колоната на минтермот 13 која има x во редот на значајната импликанта b. По определувањето на значајните примарни импликанти кои мора да бидат вклучени во минималната ДНФ останува да се избере

Page 145: digitalna logika

136 Дигитална логика

минимално подмножество од останатите примарни импликанти кое ќе ги покрива останатите непокриени минтерми на функцијата. Во овој случај непокриен останува само минтермот 15. За да се покрие овој минтерм може да се избере било која од примарните импликанти d и e. Така, оваа функција има две минимални ДНФ, во едната се вклучени импликантите a, b и d, а во другата импликантите a, b и e: f x x x x x x x x x x= + +1 2 3 4 1 3 4 2 3 4 и f x x x x x x x x x x= + +1 2 3 4 1 3 4 1 2 4 .

Циклична табела на примарни импликанти

При минимизација на функции со методот Квин-МекКласки може да се добие циклична табела на примарни импликанти. Тоа е табела од која не може да се елиминираат редови или колони користејќи ги правилата за доминацијa. За решавање на циклична табела на примарни импликанти се одредува функција на покривање. Одредување на функција на покривање може да се примени и за решавање на табели на примарни импликанти каде постои доминација на редови и колони. Дефиниција 3.10: Функцијата на покривање е производ на функциите на колоните. Функциите на колоните се добиваат како збир на импликанти кои може да го покријат минтермот од колоната (импликанти за кои во колоната постои симболот x). Пример 3.16:

Да се одреди функцијата на покривање за следната табела на примарни импликанти

0 4 16 12 24 28 a x x b x x c x x d x x e x x f x x

Функцијата на покривање за дадената табела е

Page 146: digitalna logika

3. Имплементација на прекинувачки функции 137

p a b a c b d c e d f e f= + + + + + +( )( )( )( )( )( ) . Со преуредување на функцијата p се добива форма сума од производи: p a bc d bf e cf= + + +( )( )( ) = + + + +( )( )ad abf bcd bcf e cf = + + + + + + +ade acdf abef abcf bcde bcdf bcef bcf = + + + +ade acdf abef bcde bcf . Секој од производите во ДНФ формата на функцијата на покривање е множество на импликанти кои ги покриваат минтермите од табелата на примарни импликанти. Во минималната ДНФ на функцијата се вклучува множеството на импликанти кое има најмала цена на хардверска реализација. Цената на хардверска реализација зависи од бројот на порти и бројот на влезови во портите. За функција на покривање од пример 3.16 најмал број на порти се потребни за производите со 3 импликанти ade и bcf. Бројот на влезови во портите е ист за сите импликанти бидејќи секоја од нив покрива по два минтерма како што се гледа од табелата на примарни импликанти. Така, минималната ДНФ на функцијата ќе биде a+d+e или b+c+f.

Разлики при одредување минимални ДНФ и КНФ на функции

Постапката за наоѓање на минимална КНФ на функцијата не се разликува од онаа за наоѓање минимална ДНФ. Првиот чекор е одредување на примарните имплиценти на функцијата со групирање на бинарните индекси на макстермите за кои функцијата има вредност 0. Потоа, од таблицата на примарни имплиценти или таблицата на покривање се одредуваат значајните примарни имплиценти. Постапката продолжува со одредување на доминантни колони или редови доколку има потреба за наоѓање на значајни секундарни имплиценти. Наместо да се применуваат правилата за доминација може да се одреди функцијата на покривање. На тој начин се одредува минимално множество од преостанатите имплиценти кое ги покрива макстермите на функцијата.

Page 147: digitalna logika

138 Дигитална логика

Постапката за одредување на минимална КНФ на функција е опишана со следниот пример. Пример 3.17:

f x x x x( , , , ) ( , , , , , , )1 2 3 4 4 5 10 11 12 13 14= ∏ Со методот Квин-МекКласки да се одреди минимална

КНФ на функцијата . Процедурата за одредување на примарните имплиценти започнува со креирање на табелата претставена на слика 3.37.

x1x2x3x4 4 0 1 0 0 √ 5 0 1 0 1 √

10 1 0 1 0 √ 12 1 1 0 0 √ 11 1 0 1 1 √ 13 1 1 0 1 √ 14 1 1 1 0 √

слика 3.37: Табела со децимални и бинарни индекси на макстермите

групирани според бројот на единици во бинарната репрезентација. Сите бинарни индекси на макстермите се обележани со знакот √, односно се групирани со други макстерми, што значи дека ниеден не претставува примарна имплицента. Формираните групи од два бинарни индекси се претставени во табелата на слика 3.38.

x1x2x3x4 4,5 0 1 0 - √ 4,12 - 1 0 0 √ 5,13 - 1 0 1 √ 10,11 1 0 1 - a 10,14 1 - 1 0 b 12,13 1 1 0 - √ 12,14 1 1 – 0 c

слика 3.38: Табела со групи од два бинарни индекси за пример 3.17

Во горната табела a, b и c претставуваат примарни имплиценти. Постапката продолжува со групирање на бинарните индекси 4, 5 и 12, 13. Исто така, би можело да се групираат 4, 12 и 5, 13. Овие индекси

Page 148: digitalna logika

3. Имплементација на прекинувачки функции 139

ја формираат истата група, па таа не се внесува во табелата, но групите 4, 12 и 5, 13 се обележуваат со знакот √. Групата се внесува во табела со групи од 4 бинарни индекси претставена на слика 3.39.

x1x2x3x4 4,5,12,13 - 1 0 - d

слика 3.39: Табела со групи од четири бинарни индекси за пример

3.17 Следниот чекор е формирање на табела на примарни имплиценти, односно табела на покривање (слика 3.40). Од табелата на покривање се гледа дека значајни имплиценти се а и d, а значајни колони се 4, 5, 11 и 13. Следен чекор е прецртување на значајните колони и редовите кои одговараат на имплицентите a и d. Потоа, се прецртуваат колоните кои имаат x во значаен ред, односно колоните 10 и 12. Останува само уште еден непокриен макстерм на функцијата, макстермот со децимален индекс 14. Тој може да се покрие со една од имплицентите b или c.

4 5 10 11 12 13 14

a* x x

b x x

c x x

d* x x x x

слика 3.40: Табела на примарни имплиценти

Така, макстермите на функцијата може да се покријат со две минимални множества на имплиценти a, d, b и a, d, c, односно, функцијата има две минимални КНФ: f x x x x x x x x= + + + + +( )( )( )1 2 3 2 3 1 3 4 и f x x x x x x x x= + + + + +( )( )( )1 2 3 2 3 1 2 4 .

Page 149: digitalna logika

140 Дигитална логика

Бидејќи бројот на членови и литерали во членовите е ист, двете форми се минимални форми на функцијата, односно цената за хардверска реализација на двете форми е иста. Пример 3.18:

f x x x x b( , , , ) ( , , , , , ) ( , )1 2 3 4 3 4 6 9 10 15 8 11= ∏

Користејќи го методот Квин-МекКласки за минимизација на прекинувачки функции да се најдат сите минимални КНФ на функцијата

. Процедурата за наоѓање на сите прости имплиценти е претставена со табелите на слика 3.41.

x1x2x3x4 4 0 1 0 0 √ 8 1 0 0 0 √ 3 0 0 1 1 √ 6 0 1 1 0 √ 9 1 0 0 1 √ 10 1 0 1 0 √ 11 1 0 1 1 √ 15 1 1 1 1 √

слика 3.41: Табели за наоѓање на прости имплиценти на функцијата

Табелата на покривање има облик

3 4 6 9 10 15

a x x

b x

c x

d x x

слика 3.42: Табела на примарни имплиценти

x1x2x3x4 4,6 0 1 - 0 a 8,9 1 0 0 - √ 8,10 1 0 - 0 √ 3,11 - 0 1 1 b 9,11 1 0 - 1 √ 10,11 1 0 1 - √ 11,15 1 - 1 1 c

x1x2x3x4 8,9,10,11 1 0 - - d

Page 150: digitalna logika

3. Имплементација на прекинувачки функции 141

Од табелата на покривање се гледа дека сите имплиценти се значајни што значи дека сите треба да се вклучат во минималната КНФ на функцијата. Минималната КНФ на функцијата е f x x x x x x x x x x x= + + + + + + +( )( )( )( )1 2 4 2 3 4 1 3 4 1 2 .

Минимизација на систем од функции

За реализација на комбинациони кола со повеќе излези потребно е да се изврши минимизација на систем од функции. При минимизација на повеќе функции истовремено почетната табела ги содржи децималните индекси за кои сите функции имаат вредност 1 при наоѓање минимална ДНФ (односно 0 при наоѓање минимална КНФ). Се воведува дополнителна колона во која се означува припадноста на минтермот (макстермот) на одредена функција. Групирањето на импликантите (имплицентите) се изведува ако се разликуваат во една бит позиција и дополнително ако имаат барем еден симбол x во иста колона (припаѓаат на иста функција). Во следната табела се запишуваат само оние симболи x кои се наоѓаат во заедничките колони, односно во колоните на функциите кои ги содржат двете импликанти (имплиценти). Во втората табела импликантата (имплицентата) може да се означи со симболот √ само ако во третата табела симболите x се јавуваат во ист број и распоред како во редот во втората табела. Пример 3.19:f x x x x1 1 2 3 4 2 11 12 13 14 15( , , , ) ( , , , , , )=∑

Нека се дадени 3 прекинувачки функции

f x x x x2 1 2 3 4 3 7 11 12 13 14 15( , , , ) ( , , , , , , )=∑ f x x x x3 1 2 3 4 3 7 12 13 14 15( , , , ) ( , , , , , )=∑ . Множеството на импликанти кое ќе се внесе во почетната табела (слика 3.43) претставува унија од импликанти на трите функции: 2,3,7,11,12,13,14 и 15. Постапката на наоѓaње на примарни импликанти е претставена со следните три табели.

Page 151: digitalna logika

142 Дигитална логика

x1x2x3x4 f1 f2 f3 2 0 0 1 0 x a 3 0 0 1 1 x x √ 12 1 1 0 0 x x x √ 7 0 1 1 1 x x √ 11 1 0 1 1 x x √ 13 1 1 0 1 x x x √ 14 1 1 1 0 x x x √ 15 1 1 1 1 x x x √

слика 3.43: Табела со децимални и бинарни индекси на импликанти

за функциите од пример 3.19 Групирањето на импликантите се изведува ако нивните бинарни индекси се разликуваат во една бит позиција и ако имаат барем еден симбол x во иста колона. Со оваа постапка се добива табела прикажана на слика 3.44. Во табелата 3.44 се запишуваат само симболите x кои се наоѓаат во заедничките колони.

x1x2x3x4 f1 f2 f3 3,7 0 - 1 1 x x b 3,11 - 0 1 1 x √ 12,13 1 1 0 - x x x √ 12,14 1 1 - 0 x x x √ 7,15 - 1 1 1 x x c 11,15 1 - 1 1 x x d 13,15 1 1 - 1 x x x √ 14,15 1 1 1 - x x x √

слика 3.44: Табела на групи од два бинарни индекси

Потоа се формираат групи од четири индекси кои се претставени во табелата на слика 3.45. Импликантите во табела 3.44 се означуваат со симболот √ само ако во табела 3.45 симболите x се јавуваат во ист број и распоред како во соодветниот ред во табелата 3.44.

x1x2x3x4 f1 f2 f3 3,7,11,15 - - 1 1 x e

12,13,14,15 1 1 - - x x x f

слика 3.45: Табела на групи од четири бинарни индекси

Page 152: digitalna logika

3. Имплементација на прекинувачки функции 143

Потоа се формира табела на примарни импликанти, каде во колоните се пишуваат децималните индекси на минтермите за секоја од трите функции посебно. За да се определат минималните ДНФ на функциите, за секоја од нив, се формира функција на покривање. Потоа се наоѓа заедничка функција на покривање како производ од функциите на покривање на дадените три функции. Од оваа функција се определува множеството на доволни импликанти за реализација на системот од функции. Потоа за секоја функција посебно се формира нова таблица на покривање во која се вклучени само импликантите најдени во претходниот чекор.

2 11 12 13 14 15 a x b c d x x e f x x x x

а)

3 7 11 12 13 14 15 a b x x c x x d x x e x x x x f x x x x

б)

3 7 12 13 14 15 a b x x c x x d e f x x x x

в) слика 3.46: Табели на примарни импликанти а) за функција f1,

б) за функција f2 и в) за функција f3

Page 153: digitalna logika

144 Дигитална логика

Од овие табели може да се одредат значајните примарни импликанти за секоја функција, со прецртување на редови и колони или со функција на покривање. Табелите на примарни импликанти за трите функции се претставени на сликата 3.46. Функциите на покривање за трите функции се p adf d f adf1 = + =( ) p b e b c e d e f c d e f e bd f2 = + + + + + + + = +( )( )( ) ( ) ( ) p b b c f c f bf3 = + + =( ) ( ) Заедничката функција на покривање за функциите е p p p p adf e bd fbf abdf e bd abdf= = + = + =1 2 3 ( ) ( ) Значи, доволни импликанти за реализација на системот функции се a,b,d и f. За секоја функција се формира табела на покривање која како редови ги содржи само овие 4 импликанти. Табелите на покривање за функциите се претставени на сликите 3.47, 3.48 и 3.49. Потоа за секоја функција се наоѓа минимална ДНФ.

2 11 12 13 14 15 a x b d x x f x x x x

слика 3.47: Табела на покривање за функцијата f1 која ги содржи само импликантите доволни за реализација на системот функции

Од сликата 3.47 може да се види дека импликантите a, d и f се значајни примарни импликанти, па сите треба да се вклучат во минималната ДНФ за функција f1. Минималната ДНФ за оваа функција е 2142143211 xxxxxxxxxfdaf ++=++= .

3 7 11 12 13 14 15 a b x x d x x f x x x x

слика 3.48: Табела на покривање за функцијата f2 која ги содржи само импликантите доволни за реализација на системот функции

Page 154: digitalna logika

3. Имплементација на прекинувачки функции 145

За функцијата f2 значајни примарни импликанти се b, d и f. Минималната ДНФ на оваа функција е

214314312 xxxxxxxxfdbf ++=++= .

3 7 12 13 14 15 a b x x d f x x x x

слика 3.49: Табела на покривање за функцијата f3 која ги содржи само импликантите доволни за реализација на системот функции

Минималната ДНФ за третата функција е 214313 xxxxxfbf +=+= . Импликантите b и f се значајни примарни импликанти.

Page 155: digitalna logika

146 Дигитална логика

3.5 Примери

1. Да се дизајнира комбинациона мрежа која на влез добива два двобитни броја x1x0 и y1y0 а на излез го дава производот од овие два броја. Мрежата да се реализира со И, ИЛИ и НЕ порти.

x1x0y1y0 f1f2f3f4 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 2 0 0 1 0 0 0 0 0 3 0 0 1 1 0 0 0 0 4 0 1 0 0 0 0 0 0 5 0 1 0 1 0 0 0 1 6 0 1 1 0 0 0 1 0 7 0 1 1 1 0 0 1 1 8 1 0 0 0 0 0 0 0 9 1 0 0 1 0 0 1 0

10 1 0 1 0 0 1 0 0 11 1 0 1 1 0 1 1 0 12 1 1 0 0 0 0 0 0 13 1 1 0 1 0 0 1 1 14 1 1 1 0 0 1 1 0 15 1 1 1 1 1 0 0 1

x1x0

f1 y1y0

x1x0

f2 y1y0 00 01 11 10 00 01 11 10

00 00 01 01 11 1 11 1 10 10 1 1

x1x0

f3 y1y0

x1x0

f4 y1y0 00 01 11 10 00 01 11 10

00 00 01 1 1 01 1 1 11 1 1 11 1 1 10 1 1 10

0111012

01011

yyxyxxf

yyxxf

+=

=

004

0110010101013

yxfyyxyxxyyxyxxf

=+++=

Page 156: digitalna logika

3. Имплементација на прекинувачки функции 147

2. Комбинациона мрежа со 4 влезови x1, x0, y1 и y0 и три излези pomal, ednakov и pogolem има функција на компаратор. При тоа x=(x1,x0) и y=(y1,y0) се бинарни броеви. pomal=1 кога x<y, pogolem=1 кога x>y и ednakov=1 кога x=y. Да се реализира мрежата со И, ИЛИ и НЕ порти.

x1x0y1y0 f1f2f3 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 2 0 0 1 0 1 0 0 3 0 0 1 1 1 0 0 4 0 1 0 0 0 0 1 5 0 1 0 1 0 1 0 6 0 1 1 0 1 0 0 7 0 1 1 1 1 0 0 8 1 0 0 0 0 0 1 9 1 0 0 1 0 0 1

10 1 0 1 0 0 1 0 11 1 0 1 1 1 0 0 12 1 1 0 0 0 0 1 13 1 1 0 1 0 0 1 14 1 1 1 0 0 0 1 15 1 1 1 1 0 1 0

x1x0

f1 y1y0

x1x0

f2 y1y0 00 01 11 10 00 01 11 10

00 1 1 1 00 01 1 1 01 11 11 1 10 1 10 1 1

f3 y1y0

x1x0

00 01 11 10 00 01 1 11 1 1 1 10 1 1

01010101010101012

010001111

yyxxyyxxyyxxyyxxf

yyxyxxyxf

+++=

++=

010001113 yyxyxxyxf ++=

Page 157: digitalna logika

148 Дигитална логика

3.6 Задачи

1.Со методот Карноови мапи да се најде минимална ДНФ за

функцијата f x x x x( , , , ) ( , , , , , , )1 2 3 4 0 2 5 6 7 8 10=∑ . 2.Со методот Карноови мапи да се најде минимална КНФ за функцијата f x x x x( , , , ) ( , , , , , )1 2 3 4 1 3 5 7 13 15= ∏ . 3.Со методот Карноови мапи да се најде минимална ДНФ на функцијата f x x x x x b( , , , , ) ( , , , , , , , , , , , , , ) ( , , , )1 2 3 4 5 0 1 5 6 8 9 12 15 17 20 21 22 25 28 3 14 27 30= ∏ 4.Со методот Карноови мапи да се најде минимална КНФ на функцијата

∑= )18,10,8()31,30,28,27,25,22,20,19,17,15,12,11,9,6,4,3,1( bf 5.Со методот Квин-МекКласки да се се најдат сите минимални ДНФ

на функцијата f x x x x( , , , ) ( , , , , , , , )1 2 3 4 1 4 5 6 7 9 11 12=∑ . 6.Со методот Квин-МекКласки да се најдат сите минимални ДНФ на

функцијата f x x x x b( , , , ) ( , , , , , , , ) ( , )1 2 3 4 0 1 2 5 7 12 13 14 8 11=∑ . 7.Со примена на методот Квин-МекКласки да се најде минимална КНФ на функцијата f x x x x( , , , ) ( , , , , , )1 2 3 4 1 3 5 7 13 15= ∏ . 8.Со методот Квин-МекКласки да се најде минимална КНФ на

функцијата f x x x x b( , , , ) ( , , , ) ( , , , , )1 2 3 4 2 4 8 15 0 7 10 12 13=∑ 9.Со примена на методот Карноови мапи да се изврши минимизација на комбинационата мрежа чии излези се функциите f

f

f

1

2

3

0 2 4 5 9 10 11 13 15

2 5 10 11 12 13 14 15

0 2 3 4 9 11 13 14 15

=

=

=

∑∑∑

( , , , , , , , , )

( , , , , , , , )

( , , , , , , , , )

Page 158: digitalna logika

3. Имплементација на прекинувачки функции 149

10.Со примена на методот Квин-МекКласки да се изврши минимизација на функциите f

f

f

1

2

3

2 3 5 7 8 9 10 11 13 15

2 3 5 6 7 10 11 14 15

6 7 8 9 13 14 15

=

=

=

∑∑∑

( , , , , , , , , , )

( , , , , , , , , )

( , , , , , , ) кои претставуваат излези на една комбинациона мрежа. 11. а) Да се минимизира функцијата со користење на методот

Карноови мапи f a b c d b( , , , ) ( , , , , ) ( , , , , , )=∑ 2 6 8 10 11 3 4 5 9 12 15 . б) Да се реализира функцијата со НИ кола со 2 влеза. в) Од Карноовата мапа да се определи комплемент на функцијата f.

Page 159: digitalna logika
Page 160: digitalna logika

4. КОМБИНАЦИОНИ КОЛА

Page 161: digitalna logika

152 Дигитална логика

4.1 Аритметички кола

Операциите на Буловата алгебра шематски може да се претстават со логички порти. Комбинационите кола се всушност имплементации на прекинувачки изрази и кај нив излезите зависат само од влезовите а не од претходната состојба. При дизајнот на комбинационите кола важни фактори се брзината на работа, комплексноста и цената на чинење на компонентите. Една прекинувачка функција може да се претстави со различни прекинувачки изрази и според тоа може да се реализира со различни компоненти.

Бинарни собирачи

Една од најважните задачи која ја извршуваат дигиталните компјутери е операцијата на собирање на два бинарни броја. а) б)

слика 4.1: а) Општ собирач б) Полн собирач на два едно-битни броеви

Симболичен дијаграм кој претставува бинарен собирач е претставен на сликата 4.1а. Влез се два бинарни броја. Ако секој број има n цифри, тогаш секоја прикажана линија претставува n линии. Збирот на два n-битни броја е n+1-битен број. Така збирот S претставува n+1 излезни линии. Според тоа, за да се реализира собирач потребно е комбинационо коло со n+1 излезни функции, секоја зависна од 2n променливи. Табелата на вистинитост за секоја од излезните функции треба да има 22n редови. Оваа анализа наведува на заклучок дека е потребен друг пристап за дизајн на собирач.

Page 162: digitalna logika

4. Комбинациони кола 153

xi

Полн собирач Алтернативен пристап за собирањето на два n-битни броеви е да се користи посебно коло за секој пар на битови. Покрај два влезни битови се додава бит за пренос од помалку значајниот бит. Исто така, покрај излезен бит за резултатот од собирањето се додава бит за пренос кон позначајниот бит. Таквото коло е наречено полн собирач. Шематскиот дијаграм е покажан на сликата 4.1б. Двата бита кои треба да се соберат се xi и yi, а преносот од помалку значајниот бит е Ci. Излези се: Si кој е збир на преносот од помалку значајниот бит и двата влезни бита и Ci+1 - преносот кон позначајниот бит. Табелата на вистинитост за полниот собирач која се нарекува уште и комбинациона табела и Карноовите мапи за двата излези се прикажани на слика 4.2.

yi Ci Si Ci+1 Si: Ci+1: 0 0 0 0 0 xi xi 0 0 1 1 0 0 1 0 1 0 1 0 1 0 00 1 00 0 1 1 0 1 yiCi 01 1 yiCi 01 1 1 0 0 1 0 11 1 11 1 1 1 0 1 0 1 10 1 10 1 1 1 0 0 1 1 1 1 1 1 a) б) в)

слика 4.2: а) Табела на вистинитост на полн собирач б) Карноова мапа за Si в) Карноова мапа за Ci+1

По минимизацијата со Карноови мапи се добиваат изразите суми на производи за двата излези:

iiiiiiiiiiiii CyxCyxCyxCyxS +++= (4.1) )(1 iiiiiiiiiiii yxCyxCyCxyxC ++=++=+ (4.2)

Секој минтерм во изразот за Si претставува примарна импликанта. За имплементација на изразот сума од производи за Si потребни се четир и И по р ти со 3 влеза и една ИЛИ по р та со 4 влеза. До ко лку претпоставиме дека секоја порта има доцнење на сигналот tp, тогаш дво-нивовската имплементација доведува до доцнење од 2tp.

Page 163: digitalna logika

154 Дигитална логика

Со користење на операцијата исклучиво ИЛИ изразот за збирот Si може да се напише

iiiiiiiiiiiiiiiiiiiiiii CyxyxCyxyxCyxCyxCyxCyxS )()( +++=+++=

iiiiiiiiiiiii CyxCyxyxCyxyx ⊕⊕=+++= )()()( (4.3) а изразот за преносот кон позначајниот бит може да се напише

)()(1 iiiiiiiiiiiii yxCyxyxyxCyxC ⊕+=++=+ . (4.4) Овие изрази овозможуваат алтернативни начини за имплементација на изразите за Si и Ci+1. Полн собирач реализиран со порти исклучиво ИЛИ е прикажан на сликата 4.3а. Колото се состои од две идентични исклучиво-ИЛИ-И комбинации и дополнителна ИЛИ порта. На сликата 4.3б е прикажано колото кое е обележано со квадрат со испрекинати линии на сликата 4.3а. Ова коло е наречено полу-собирач. Влезови во полу-собирачот се два бита кои треба да се соберат. Излези се збирот на двата бита и преносот кон позначајниот бит.

а)

б) в)

слика 4.3: а) Полн собирач б) Полу-собирач в) Шематски дијаграм на полу-собирач

Page 164: digitalna logika

4. Комбинациони кола 155

Ако портата исклучиво-ИЛИ има доцнење од 2tp, полниот собирач на сликата 4.3а има доцнeње од 4tp и за збирот и за преносот. Постојат реализации на полн собирач каде доцнењето при пресметување на збирот и на преносот е 2tp.

Собирач со пренос (Ripple-Carry Adder)

Во понатамошниот текст се разгледува проблемот на собирање на два бинарни броеви со повеќе битови. Собирањето се извршува со користење на полни собирачи за секој соодветен пар на битови од двата броја, како што е претставено на сликата 4.4. Излезот за пренос од секој полн собирач е поврзан како влез во собирач на позначајните битови. За првиот собирач преносот од претходната фаза е 0, додека преносот од последниот собирач (т.н. overflow carry) станува најзначаен бит на n+1-битната сума. За овој собирач се користи името собирач со брановиден пренос (Ripple-Carry Adder) според начинот на кој се пресметува преносот. Ако преносот од секој полн собирач има доцнење од 2tp, доцнењето при пресметување на сума на два n-битни броеви е 2ntp.

слика 4.4: 4-битен Ripple-Carry собирач Не секој пар од два n-битни броеви има толку големо доцнење. На пример, при собирање на следниве два броја 101010 010101 нема пренос во ниедна фаза, па не е потребна пропагација на преносот. Но, вообичаено е да се земе во предвид најлошиот случај, односно случај со најголемо доцнење на сигналот низ колото.

Page 165: digitalna logika

156 Дигитална логика

iii BAG =

Собирач со предвидување на пренос (Carry-Lookahead Adder)

Во претходниот текст се разгледува собирање на 2 n-битни броеви со користење на едноставни комбинациони кола-полн собирач, за секои два пара битови. На тој начин се избегнува собирањето на 2 n-битни броеви да се изведува со комплексно коло со голем број влезови. Но, тоа што се добива во едноставноста на колото при овој пристап, е изгубено во брзината. Брзината на колото е одредена од доцнењето при пресметување на битовите за пренос, па може да се дизајнира коло само за битовите за пренос со повеќе од два но помалку од 2n влезови. Нека неколку фази на полни собирачи се споени во една компонента. Влезови во компонентата се влезниот пренос за компонентата и влезните битови на сите полни собирачи во таа компонента. Тогаш се претпоставува дека излезниот пренос може да се пресмета побрзо отколку преносот кај собирач со брановиден пренос (ripple carry) низ ист број на полни собирачи. Овој концепт е илустриран на сликата 4.5 со компонента која се состои само од два полни собирачи и коло за предвидување на преносот (carry-lookahead коло). Четирите битови што се собираат и влезниот пренос Ci се влезови во компонентата. Од изразот за излезен пренос на полн собирач (4.4) може да се добие израз за излезниот пренос Ci+2 на компонентата. Нека променливите x и y од изразот (4 .4 ) ги замениме со A и B, соодветно. Двата терма од изразот (4.4) имаат значење на генериран и пропагиран пренос. Генерираниот пренос Gi и пропагираниот пренос Pi за i-тиот полн собирач може да се дефинираат на следниот начин:

(4.5а)

iii BAP ⊕= (4.5б) Со вметнување на овие изрази во (4.4) се добива

iiiiiiiii CPGBACBAC +=⊕+=+ )(1 . (4.6) Во i-тиот полн собирач ќе се генерира пренос, односно Gi=1, ако и A и B се 1. Ако само еден влез е 1, нема да се генерира пренос. Во тој

Page 166: digitalna logika

4. Комбинациони кола 157

случај, сепак Pi ќе биде 1 и излезниот пренос Ci+1 ќе биде еднаков со Ci. Тоа значи дека преносот се пропагира напред.

слика 4.5: Carry-Lookahead собирач Со менување на индексот i во i+1 изразот (4.6) за излезниот пренос може да се напише како

iiiiii

iiiii

iiii

CPPGPGCPGPG

CPGC

111

11

1112

)(

+++

++

++++

++=++=

+=

(4.7)

Овој израз може да се интерпретира на следниот начин: преносот ќе се појави на излезот од компонентата во три случаи:

• ако се генерира во последната фаза Gi+1 =1 • ако се генерира во првата фаза, Gi =1 и се пропагира напред Pi+1=1 • ако влезниот пренос Ci се пропагира низ двете фази: Pi=Pi+1=1.

Резултатот може да се воопшти за било кој број на фази, но во тој случај колото ќе стане многу покомплицирано. За илустрација се опишува компонента со четири фази, која треба да изведе собирање на два 4-битни броеви А и B. Секоја фаза се претставува со коло за пресметување сума S и посебно коло за пренос C. Преносот од претходната фаза и соодветните битови од А и B се влезови на колото кое пресметува сума. Влезови на колото за пресметување пренос во секоја фаза се сите битови на броевите А и B

Page 167: digitalna logika

158 Дигитална логика

се до таа фаза и преносот не само од последната фаза но од целата компонента. Така, ако првата фаза е фаза i, влезовите на преносното коло на фазата i+2 се: Аi, Аi+1, Аi+2, Bi, Bi+1, Bi+2 и Ci.

слика 4.6: 4-фазно carry-lookahead коло На сликата 4.6 е претставена последната фаза за пренос на 4-фазна компонента. Освен Ci, преносот на компонентата, сите други влезови во И портите се генерирани преноси и пропагирани преноси од различни фази на компонентата. Овие генерирани и пропагирани преноси се произведуваат од полу-собирачките кола (слика 4.7).

слика 4.7: Полу-собирач за генериран и пропагиран пренос

Page 168: digitalna logika

4. Комбинациони кола 159

Пиновите кои имаат иста лабела во различни кола се подразбира дека се поврзани. Бидејќи секој пропагиран пренос Pi+j е излез од порта исклучиво ИЛИ, општото доцнење при пропагација, на колото за пренос со дизајн прикажан на сликата 4.5 е 4tp. Но, генерираните и пропагираните преноси на сите компоненти Gi+j и Pi+j, се добиваат за време 2tp откако двата броја се внесени во колата за собирање, што е очигледно од сликата 4.6. Затоа, во сите carry-lookahead единици освен во првата, пропагациското доцнење на преносната компонента е само 2tp. Ако собирачот има осум 4-битни компоненти, пропагациското доцнење низ собирач со предвидување на пренос ќе биде 20tp. Соодветниот собирач со брановиден пренос ќе има пропагациско доцнење од 4x8x2tp=64tp. Така, собирачот со предвидување на пренос е 320% побрз во однос на собирачот со брановиден пренос.

слика 4.8: Шематски дијаграм на 4-битен собирач со предвидување на пренос

Опишаните кола се достапни на пазарот како интегрални кола (IC-Integrated Circuits). На пример, полн собирач, собирач со брановиден пренос, прикажан на слика 4.4 и собирач со предвидување на преносот за 4-битни зборови, прикажан на сликата 4.8, се достапни како MSI (Medium-Scale Integrated) кола.

Page 169: digitalna logika

160 Дигитална логика

Погледнато однадвор собирач со брановиден пренос за 4-битни броеви изгледа исто како коло на собирач со предвидување на преносот за 4-битни зборови. Шематскиот дијаграм на слика 4.9 прикажува такво коло. Колото има 9 влеза: влезниот пренос и 4 влеза за секој број. Постојат 5 излеза: излезниот пренос и 4-те бита на збирот. Излезниот пренос станува најзначаен бит во збирот доколку колото се користи само за собирање на 4-битни зборови, а не како дел од собирач на подолги зборови.

C1

B3 S3

S2

B2B1B0

A3A2A1A0

S1

S0

C0

слика 4.9: Собирач на 4-битни броеви

Бинарни одземачи

Во делот 1.2 се спомнати две претставувања на бинарните броеви со знак: единечен и двоен комплемент. За позитивните броеви бинарните репрезентации на броевите се исти со претставувањата со единечен или двоен комплемент, додека за негативните се различни. За бинарно одземање може да се употребат собирачи ако претходно се изврши операција комплемент врз намалителот.

При собирањето на два бинарни броеви претставени со двоен комплемент доколку има пренос, тој може да се занемари. Но, потребно е да се забележи дали збирот е надвор од опсегот, односно дали настанало пречекорување (overflow). Опсегот за бинарни броеви од n бита претставени со двоен комплемент е од -2n-1 до 2n-1-1.

Собирач и одземач на бинарни броеви претставени со двоен комплемент

Page 170: digitalna logika

4. Комбинациони кола 161

Пречекорување настанува доколку влезниот пренос и излезниот пренос на најзначајните позиции се различни. Така, за да се утврди дали настанува пречекорување на опсегот доволна е една дополнителна исклучиво-ИЛИ порта. Според тоа, меѓу собирачот на бинарни броеви претставени со двоен комплемент и собирачот на бинарни броеви без знак нема значајна разлика. Одземањето се изведува со комплементирање на бројот што се одзема и собирање. За одземање се користи исто коло како за собирање со таа разлика што се додава дополнителен контролен влез. Кога дополнителниот влез е 0 колото извршува собирање, а кога е 1 извршува одземање. Вакво коло е опишано во продолжение. Со испитување на табелата на вистинитост на операцијата исклучиво-ИЛИ (табела 4.1), се забележува дека ако едниот од влезовите е 0, тогаш излезот ќе биде ист со вториот влез, а ако едниот од влезовите е 1, тогаш излезот ќе биде комплемент на вториот влез.

Табела 4.1: Табела на вистинитост за операцијата исклучиво ИЛИ

x y x y⊕ 0 0 0 0 1 1 1 0 1 1 1 0

Ова својство на операцијата исклучиво-ИЛИ може да се искористи за формирање комплемент на едниот влез во колото за собирање и одземање. За да се пресмета двоен комплемент на бинарен број покрај комплементирање на бројот треба да се додаде единица. За да не се користи дополнителна порта за додавање единица може влезниот пренос на полниот собирач за најмалку значајниот бит да се постави на единица. Колото за собирање и одземање на бинарни броеви претставени со двоен комплемент е прикажано на слика 4.10. Ако контролниот сигнал М е 0, колото ќе изврши собирање А + B, а ако М е 1, колото ќе изврши одземање А - B.

Page 171: digitalna logika

162 Дигитална логика

слика 4.10: Коло за собирање и одземање на бинарни броеви

претставени со двоен комплемент, со проверка на пречекорување

Собирач и одземач на бинарни броеви претставени со единечен комплемент

За да се изврши одземање на бинарни броеви претставени со единечен комплемент, исто како кај собирачот и одземачот на броеви претставени со двоен комплемент, се користи порта исклучиво-ИЛИ. Единствената разлика е што не е потребно да се додаде пренос во најмалку значајниот бит. При собирање на бинарни броеви претставени со единечен комплемент потребно е да се додаде 1 на збирот кога се јавува излезен пренос од најзначајната позиција. Ова може да се изведе со користење на повеќе полу-собирачи како што е прикажано на сликата 4.11. Собирањето на бинарни броеви претставени со двоен комплемент е поедноставно за имплементација од собирањето на броеви претставени со единечен комплемент.

Page 172: digitalna logika

4. Комбинациони кола 163

слика 4.11: Собирач и одземач на бинарни броеви претставени со единечен комплемент

Page 173: digitalna logika

164 Дигитална логика

4.2 Мултиплексер

При процесот на мултиплексирање се избира една податочна линија од 2n податочни линии под контрола на n селектирачки влезови и податокот од таа линија се пренесува на излез од колото. На пример, пренесувањето на говорот преку телефонските линии се одвива на тој начин што линијата се дели меѓу корисниците повеќе пати во секунда. Корисниците не се свесни за прекините заради природата на системот за слушање. На приемната страна се одвива спротивен процес од мултиплексирањето, односно влезните сериски податоци се испраќаат преку една од повеќе излезни линии. Овој процес е наречен демултиплексирање.

слика 4.12: Мултиплексер со 8 податочни влезови

Page 174: digitalna logika

4. Комбинациони кола 165

Мултиплексерот служи како селектор на податоци: може да има повеќе податоци на влезот, а во даден момент проследува само еден од нив на излезот. Демултиплексерот има еден влез и повеќе излези. Тој служи како дистрибутер на податоци: ги испраќа влезните податоци кон еден од излезите одреден со селектирачките влезови. Мултиплексерот е коло со 2n влезни линии, една излезна линија и n селекторски линии кои определуваат влезна линија чиј податок се пренесува на излезот. На сликата 4.12 е прикажан мултиплексер со 8 податочни и 3 селекторски влезови. Со n=3 селекторски линии можни се 2n=8 комбинации на влезови. Ако на селекторските линии се јави комбинацијата s2s1s0=100 излезите на сите И порти освен на онаа која е поврзана со податочната линија D4 ќе бидат 0. На излезот на колото ќе се пренесе вредноста на влезот D4. Излезот на мултиплексерот во зависност од влезовите може да се претстави со следниот израз r D s s s D s s s D s s s D s s s D s s s= + + + + +0 2 1 0 1 2 1 0 2 2 1 0 3 2 1 0 7 2 1 0... (4.8) На сликата 4.13 е претставено коло кое содржи 2 мултиплексери со по n=2 селекторски влезови и по 4 податочни влезови. Влезовите означени со Е1 и Е2 (се нарекуваат овозможувачки влезови или enable влезови) се употребуваат за активирање на мултиплексерите. Кога на влезот Е е донесена 1 излезот на мултиплексерот е 0 без разлика на вредностите на селектираните влезови. Колото работи како мултиплексер само кога влезот Е е 0. Постојат и кола каде дополнителниот влез за активирање не е инвертиран, па работат како мултиплексери кога Е е 1. Од сликата 4.12 е очигледно дека мултиплексерот е реализиран како дво-нивовско И-ИЛИ логичко ко ло, каде секоја И по р та има n +1 влезови од кои n влезови служат за селектирање. Равенката (4.8) може да се разгледува како канонична сума од производи форма на прекинувачката функција на мултиплексерот, ако сите податочни влезови претставуваат посебна прекинувачка променлива (или нејзин комплемент), а секој селектирачки влез претставува посебна променлива.

Page 175: digitalna logika

166 Дигитална логика

Во понатамошниот текст е опишана постапката со која се врши реализација на некоја прекинувачка функција со мултиплексер.

слика 4.13: Двоен мултиплексер со 4 влеза и дополнителен enable влез

Нека прекинувачката функција зависи од m променливи, од кои m-1 променливи се употребуваат како селектирачки влезови на мултиплексерот, а една променлива за сите 2m-1 податочни влезови. Постојат m! начини за придружување на m-1 променливи на m-1 селектирачки влезови. Бидејќи не постојат ограничувања придружувањето може да се направи произволно.

Page 176: digitalna logika

4. Комбинациони кола 167

Потоа, се споредува прекинувачката функција со изразот за излезната функција на мултиплексерот даден со равенката (4.8) во кој селектирачките влезови се заменети со m-1 променлива. Со споредувањето треба да се определат податочните влезови Di. Пример 4.1:

f x y z x yz xyz x yz xyz( , , ) ( , , , )= = + + +∑ 1 2 4 7

Во продолжение е прикажана имплементација со мултиплексер на прекинувачката функција

. (4.9) Бидејќи функцијата има 3 променливи, мултиплексерот треба да има 3-1=2 селектирачки влезови. Излезната функција на мултиплексерот е f s s D s s D s s D s s D= + + +1 0 0 1 0 1 1 0 2 1 0 3. (4.10) Произволно се избира начин на придружување на селектирачките влезови на променливите на дадената функција. Нека s x1 = и s y0 = . Тогаш излезната функција на мултиплексерот може да се напише во облик f x yD xyD x yD xyD= + + +0 1 2 3. (4.11) Споредувајќи го изразот (4.11) со (4.9) се добива D D z D D z0 3 1 2= = = = . (4.12) Значи, прекинувачката функција може да се имплементира со мултиплексер со 4 податочни влезови и 2 селекторски влезови, прикажан на сликата 4.14.

слика 4.14: Имплементација со мултиплексер 4 x 1 на функцијата f x y z x yz xyz x yz xyz( , , ) ( , , , )= = + + +∑ 1 2 4 7

Page 177: digitalna logika

168 Дигитална логика

Пример 4.2:

f xzD xzD xzD xzD= + + +0 1 2 3

Ако во задачата разгледана во пример 4.1 за селектирачки влезови се изберат z и x, односно s1=z и s0=x се добиваат поинакви изрази за податочните влезови Di. Функцијата која треба да се реализира со мултиплексер со 2 селектирачки влеза е дадена со изразот (4.9), а излезот од мултиплексерот со изразот (4.10). Ако во изразот (4.10) се заменат вредностите за селектирачките влезови, земајќи дека s1=z и s0=x се добива

. (4.13) Со споредување на изразите (4.9) и (4.13) се добиваат вредностите за податочните влезови: D y D y D y y0 1 2= = = = D3 . Пример 4.3:

wx

Како трет пример, прикажана е имплементација со мултиплексер на функција од 4 променливи чија Карноова мапа е дадена на сликата 4.15.

yz

00 01 11 10 00 1 01 1 11 1 1 10 1

слика 4.15: Карноова мапа на функцијата

f w x y z( , , , ) ( , , , , )=∑ 0 1 6 7 11 Имплементација со 4-1=3 селектирачки променливи е секогаш можна. Но, можна е и имплементација со користење на мултиплексер со само 2 селектирачки променливи. Произволно се придружуваат двата селектирачки влеза s1 и s0 на w и x. Изразот на излезот од мултиплексерот е ист со оној од претходниот пример, бидејќи мултиплексерите се со ист број на влезови: f s s D s s D s s D s s D= + + +1 0 0 1 0 1 1 0 2 1 0 3. (4.14)

Page 178: digitalna logika

4. Комбинациони кола 169

Со замена wx=s1s0=00 изразот се сведува до D0. Од друга страна, за wx=00 изразот кој ги покрива единиците во Карноовата мапа е yz yz y z z y+ = + =( ) . Значи D y0 = . Слично, во колоната на Карноовата мапа за која wx=01 изразот се

сведува на yz yz y+ = . Кога во изразот (4.14) се замени s1s0=01 се добива f D= 1. Значи, D y1 = . На ист начин за wx=11 се наоѓа D3 0= и за wx=10 се наоѓа D yz2 = . Имплементацијата со мултиплексер со 2 селектирачки влеза е прикажана на сликата 4.15. Според тоа, за да се имплементира некоја функција од 4 променливи може да се користи мултиплексер со помал број на селектирачки влезови од 3 но во таков случај се користат дополнителни порти. Во разгледаниот пример се користи дополнителна И порта.

слика 4.15: Имплементација на функцијата

f w x y z( , , , ) ( , , , , )=∑ 0 1 6 7 11 со мултиплексер со 2 селектирачки влеза

Пример 4.4:

f w x y z( , , , ) ( , , , , )=∑ 0 1 6 7 11

Ако во пример 4.3 за селектирачки влезови s1 и s0 се изберат променливите y и z наместо w и x, се добива поинаква

реализација на функцијата .

Page 179: digitalna logika

170 Дигитална логика

За податочните влезови се добиваат следните изрази D D x D xw x w0 1 2= = = = ⊕w D3 . Значи, потребни се две И порти и една порта исклучиво-ИЛИ за функцијата да се реализира со мултиплексер со 2 селектирачки влеза, кога за селектирачки влезови се земат променливите y и z. При имплементирање на прекинувачка функција со мултиплексер различни избори на селектирачки влезови водат до различен број на компоненти. Потребно е да се испитаат сите реализации за да се утврди која од нив е најекономична, односно која води до употреба на најмал број дополнителни логички порти.

4.3 Демултиплексер

За разлика од мултиплексер, демултиплексер е коло кое има еден податочен влез и повеќе излези. Покрај податочниот влез постојат и повеќе селектирачки или контролни влезови. Контролните влезови определуваат на кој излез ќе се насочи влезот. На сликата 4.16 е претставена табела на вистинитост за демултиплексер со 8 (23) излези, а на сликата 4.17 е прикажана имплементацијата на демултиплексерот. Ако се спореди со мултиплексерот од сликата 4.12 се забележува дека постојат ист број (3) на контролни односно селектирачки влезови. Исто така постојат ист број на И по р ти, но секој излез од И по р тата кај демултиплексерот е излез од колото. Контролни влезови

Податочни излези

C2 C1 C0 D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 x 0 0 0 0 0 0 0 0 0 1 0 x 0 0 0 0 0 0 0 1 0 0 0 x 0 0 0 0 0 0 1 1 0 0 0 x 0 0 0 0 1 0 0 0 0 0 0 x 0 0 0 1 0 1 0 0 0 0 0 x 0 0 1 1 0 0 0 0 0 0 0 x 0 1 1 1 0 0 0 0 0 0 0 x

слика 4.16: Табела на вистинитост за демултиплексер со 8 излези

Page 180: digitalna logika

4. Комбинациони кола 171

За разлика од мултиплексерот каде секоја И порта има сопствен податочен влез, овде постои заедничка податочна линија. Контролните влезови, исто како и кај мултиплексерот се влезови во И портите. Влезот x се насочува кон излезот Dk ако контролните влезови c2c1c0 формираат бинарен еквивалент на бројот k. Со други зборови, за демултиплексер со n контролни влезови секој излез на И порта одговара на минтерм од n променливи. За дадена комбинација на контролни влезови само еден минтерм може да има вредност 1 и податочниот влез се пренесува до И портата која одговара на тој минтерм. На пример, кога контролниот збор е c2c1c0=100 тогаш D4=x и сите др уги Di се 0. Логичкиот израз за

излезот D4 е xc c c2 1 0 .

слика 4.17: Демултиплексер со 8 излези

Page 181: digitalna logika

172 Дигитална логика

4.4 Декодер и кодер

Кај дигиталните компјутери бинарниот код се користи за претставување на различни видови информации, како инструкции, нумерички податоци, мемориски адреси и управувачки команди. Кодна група која содржи n битови може да има 2n различни комбинации и секоја од нив може да претставува различни информации. Заради тоа, се јавува потреба од логички кола кои може на влез да добијат n-битен код, а на излез да генерираат сигнал кој ќе по каже која о д 2n можни комбинациии се јавува на влезот. Таквото коло се нарекува декодер. Значи, декодерот е коло кое има n влезови, а ги проследува податоците кон еден од 2n излези. За разлика од декодерот кој прима влезен код и активира соодветен излез, кодерот ја изведува спротивната операција. Тој генерира бинарен код кој одговара на онаа влезна линија која е активирана. Кодерот (се нарекува и енкодер) прима податоци од 2n влезни линии и ги конвертира во податоци со n излезни линии. За разлика од демултиплексерот кој има една податочна линија и n контролни линии, кај декодерот нема податочна линија која се контролира, туку контролните линии претставуваат n влезни податочни линии. Декодер о т со n влезни и 2n излезни линии се нарекува n во 2n линиски декодер. Секој излез на декодерот претставува минтерм. Излезот к е 1 кога комбинацијата на вредности на влезните променливи е бинарен еквивалент на децималниот број к. Ако кај демултиплексерот на сликата 4.17 податочниот влез служи како активирачки влез (enable влез), колото работи како декодер само кога податочниот влез x е 1. Од друга страна, n во 2n декодерот со влез за активирање може да се користи како демултиплексер. Декодерите се изведуваат како MSI кола вообичаено со n=3 и n=4 влезови. Декодери со поголем број на влезови може да се дизајнираат поврзувајќи декодери со помал број на влезови. На сликата 4.18 е претставен 6 во 26 декодер составен од два 3 во 23 декодери. А и B декодерите, кои се компоненти на 6 во 26 декодерот, содржат по 8 И порти со три влеза. Покрај тоа, потребни се уште 64 И порти со два влеза. Влезови во овие 64 И порти се излезите од двата 3 во 23 декодери. На сликата 4.18 се прикажани само 2 од овие 64 И порти.

Page 182: digitalna logika

4. Комбинациони кола 173

Секоја од 8-те И порти на декодерите А и B управува 8 од 64-те порти на поврзувачката мрежа, односно излезот од секоја од 8-те И порти на компонентите е влез во 8 порти од поврзувачката мрежа.

слика 4.18: 6 во 26 декодер составен од два 3 во 23 декодери и поврзувачка мрежа од 64 И порти

Слично, со користење на два 6 во 64 декодери може да се формира 12 во 212 декодер, итн. Кај хиерархиски декодери, како претходно опишаниот декодер, проблем претставува зголемувањето на бројот на по р ти ко и треба да се управуваат во следното ниво од излезите на порти од претходното ниво. Бројот на порти управувани од едно коло е познат под името fan-out. Проблемот делумно се надминува со користење на стеблест декодер, претставен на слика 4.19. Првото ниво на стеблестиот декодер прикажан на сликата 4.19 е 2 во 4 декодер. Во секое следно ниво се воведува нова променлива, а како влез во портите се користи променливата или нејзин комплемент. На пример, излези од 4-те И порти на првиот декодер се AB AB AB, , и AB . Секој од овие излези е влез во две И порти на 3 x 8 декодерот. Нова променлива која се воведува на второто ниво е C, па излези на второто ниво ќе бидат ABC ABC ABC ABC, , , итн.

Page 183: digitalna logika

174 Дигитална логика

слика 4.19: Стеблест декодер Кодерите и декодерите наоѓаат примена како конвертори на код. Тоа се кола кои на влез примаат броеви од одреден код, а на излез даваат броеви од друг код. Пример 4.5:

дец. број

Следниот пример ја илустрира употребата на декодерот како коло за конвертирање од вишок 3 во седум-сегментен код. На располагање е 4 x 16 декодер. Бидејќи има само 10 вишок 3 кодови, ќе се користат 10 од 16 излези на декодерот. Табелата 4.2 ја претставува конверзијата на вишок 3 во седум-сегментен код. Всушност, табелата 4.2 претставува табела на вистинитост за секоја од 7-те излезни функции si во зависност од 4-те влезни променливи.

Табела 4.2: Конверзија на вишок 3 во седум-сегментен код

вишок 3 код Седум-сегментен код w x y z s1 s2 s3 s4 s5 s6 s7

0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 2 0 1 0 1 1 0 1 1 0 1 1 3 0 1 1 0 0 0 1 1 1 1 1 4 0 1 1 1 0 1 0 1 1 0 1 5 1 0 0 0 0 1 1 0 1 1 1 6 1 0 0 1 1 1 0 0 1 1 1 7 1 0 1 0 0 0 1 1 1 0 0 8 1 0 1 1 1 1 1 1 1 1 1 9 1 1 0 0 0 1 1 1 1 0 1

Колото на излезот од декодерот се состои од 7 ИЛИ порти, по една за секој сегмент од седум-сегментниот код. На сликата 4.20 е прикажана само една ИЛИ порта, која одговара на излезната функција s6.

Page 184: digitalna logika

4. Комбинациони кола 175

За да се реализира конверторот потребно е да се поврзат одредени излези од декодерот како влезови на ИЛИ портите. Како што е претставено на сликата 4.20, на ИЛИ портата за излезната функција s6 се поврзуваат следните излези од декодерот: 0, 2, 3, 5, 6 и 8. Овие излези одговараат на следната листа на минтерми s6 3 5 6 8 9 11=∑ ( , , , , , ) .

слика 4.20: Употреба на декодер како конвертор од вишок 3 во седум-сегментен код (прикажана е само ИЛИ портата која одговара

на седум-сегментен код на бројот 6) Се земаат во предвид минтермите кои одговараат на кодни зборови за кои соодветниот сегментен излез има единица. Листите на минтерми кои одговараат на сите сегменти од седум-сегментниот код се: s1 3 5 9 11=∑ ( , , , ) s2 3 5 6 8 10 11 12=∑ ( , , , , , , ) s3 3 5 6 8 10 11 12=∑ ( , , , , , , ) s4 3 4 5 6 7 10 11 12=∑ ( , , , , , , , )

Page 185: digitalna logika

176 Дигитална логика

s5 3 4 6 7 8 9 10 11 12=∑ ( , , , , , , , , ) s6 3 5 6 8 9 11=∑ ( , , , , , ) s7 5 6 7 8 9 11 12=∑ ( , , , , , , ) . Секој о д излезите на n во 2n декодерот е каноничен производ од литерали. Ако се примени операција ИЛИ на производите се добива канонична сума од производи. Бидејќи секоја прекинувачка функција може да се изрази како канонична сума од производи, следи дека секоја прекинувачка функција може да се имплементира со n во 2n декодер и една ИЛИ порта. Ако 2n е поголемо од бројот на влезови на ИЛИ портата, односно fan-in ограничувањата на ИЛИ портата, потребни се повеќе нивоа на ИЛИ порти. Со користење на еден декодер може да се имплементираат повеќе функции кои имаат исти променливи, со тоа да секоја функција има различни влезови во сопствените ИЛИ порти.

4.5 ROM (Read Only Memory)

Во претходната глава е опишана идеа за дизајнирање на коло со кое се имплементираат една или повеќе прекинувачки функции од неколку променливи. Компоненти на такво коло се: n во 2n декодер, со n влезни и 2n излезни линии една или повеќе ИЛИ порти, чии излези се излези на колото поврзувачка мрежа меѓу излезите на декодерот и влезовите на

ИЛИ портите. Како што е познато од претходната глава декодерот е MSI коло кое се состои од 2n И порти со n влеза и на излезите на декодерот се генерираат сите минтерми од n променливи. Истиот декодер може да се употреби за било која функција која има ист број на променливи. Имплементациите на функциите се разликуваат само по бројот на ИЛИ портите и специфичното поврзување на излезите од декодерот како влезови во ИЛИ портите.

Page 186: digitalna logika

4. Комбинациони кола 177

Најопшт приод при дизајнирање на коло за општа намена е да се вклучи максимален број на ИЛИ порти со можност да се поврзат сите 2n излези од декодерот со влезовите во секоја ИЛИ порта. Ваквиот приод не е економичен, бидејќи при имплементација на функциите не се искористуваат сите ИЛИ порти. Затоа, се вклучуваат помал број, m ИЛИ порти и поврзувачката мрежа има можност да поврзе 2n излези од декодерот на m влезови на ИЛИ порти. Такво LSI комбинационо коло со n влезови и m излези е претставено на сликата 4.21. Колото се нарекува меморија само за читање (read only memory) или скратено ROM. ROM се состои од две компоненти: n во 2n декодер и 2n x m поврзувачка мрежа.

Сите 2n излези од декодерот се минтерми кои ја определуваат адресата во меморијата, односно во поврзувачкото поле. Меморијата се состои од поврзувањата меѓу 2n излези од декодерот и m излези од колото. Конекциите во поврзувачката мрежа се перманентни и затоа во оваа меморија се запишува само еднаш. ROM не е она што вообичаено подразбираме под меморија, меморијата е карактеристика на секвенцијалните, а не на комбинационите кола.

слика 4.21: Структура на ROM ROM може да биде програмиран на два начина. Едниот начин е со изработка на маска за програмирање со која се покриваат конекциите кои не треба да се направат. При произведување ROM не е програмиран, односно не е направена ниедна конекција. Овој вид на

Page 187: digitalna logika

178 Дигитална логика

ROM се нарекува програмабилен со помош на маска (mask programmable). Другиот тип на ROM при произведување е комплетно поврзан, односно направени се сите потенцијални конекции. Програмирањето на овој вид ROM се врши со отворање на оние конекции кои не се потребни. Таквиот ROM се нарекува PROM односно ROM програмабилен со помош на поле (field progammable). Некои програмабилни ROM, односно PROM се изработени така да може да се вратат во празна состојба откако се програмирани. Тие се нарекуваат избришлив ROM или EPROM. Пример 4.6: На слика 4.22 a) е зададена една прекинувачка функција со вистинитосна табела која треба да се имплементира со 22 x 3 ROM. На сликата 4.22 b) e претставено програмирање на поврзувачката мрежа според табелата. Ако влезниот збор е 01 (според табелата му одговара на минтерм m1) ќе се активира излезната линија z2 која е единствената конекција на минтермот во поврзувачката матрица. Така, според вистинитосната табела излезниот број ќе биде 010.

слика 4.22: Прекинувачка функција зададена со вистинитосна табела и имплементација на функцијата со ROM

4.6 Програмабилни логички уреди

Програмабилните логички уреди (PLD-Programmable Logic Devices) се LSI кола. Се состојат од две компоненти: низа на И порти и низа на ИЛИ порти.

Page 188: digitalna logika

4. Комбинациони кола 179

Во зависност од тоа која од низите е фиксна, а која програмабилна, се разликуваат 3 вида програмабилни логички уреди. ROM е програмабилен логички уред каде И низата е фиксна, а ИЛИ низата е програмабилна. Други видови уреди се програмабилно логичко поле (PLA-Programmable Logic Array) и логика на програмабилно поле (PAL-Programmable Array Logic). PAL има програмабилна И низа и фиксна ИЛИ низа, додека кај PLA двете низи се програмабилни. Прекинувачките функции се имплементираат со ROM како суми од минтерми. Со n влезни променливи може да се напишат 2n минтерми и затоа се потребни 2n И порти, секоја со n влезови. Како што претходно е кажано, многу од врските кои ги поврзуваат И портите со излезните ИЛИ порти остануваат неупотребени.

Програмабилно логичко поле

Покрај името програмабилно логичко поле за овие уреди се употребува и името програмирано логичко поле (Programmed Logic Array). Имплементацијата на функциите со ROM, односно имплементацијата на функциите како канонична сума од производи не е економична. Имено, се употребуваат 2n И порти, колку што има минтерми од n променливи и секоја И порта има n влеза. Поекономично е да се имплементира минимална сума од производи. При тоа, бројот на влезови во И портите ќе биде помал но треба да се програмираат не само излезите од И портите туку и нивните влезови. Пример 4.7:

f xz xz1 = +

На сликата 4.23б е претставена имплементација на 4 функции со PLA. Функциите прво се минимизираат со методот Карноови мапи. Карноовите мапи за 4-те функции се претставени на сликата 4.23а. По минимизацијата на функциите се добива

f yz xz2 = + f xz yz3 = + f x y yz4 = + Во овој пример функциите се покриваат со 4 различни производи: xz xz yz, , и x y . Затоа, потребни се 4 И порти за реализација на

Page 189: digitalna logika

180 Дигитална логика

производите. На дијаграмот на слика 4.23б една линија ги претставува сите влезови во секоја И и ИЛИ порта. Бројот на влезови на секоја И порта би требало да е 2n, односно двапати поголем од бројот на променливи, за да може секоја променлива или нејзин комплемент да биде влез во секоја И порта.

а)

б) слика 4.23: а) Карноови мапи за функциите f1, f2, f3 и f4

б) имплементација на функциите со PLA

f1 x

yz

0 1 00 01 1 11 1 10 1

f2 x

yz

0 1 00 01 1 1 11 1 10

f3 x

yz

0 1 00 1 01 1 1 11 10 1

f4 x

yz

0 1 00 1 01 1 1 11 10

Page 190: digitalna logika

4. Комбинациони кола 181

Бројот на влезови на секоја ИЛИ порта треба да е еднаков на бројот на И порти. Нека бројот на потребни И порти се означи со p. Програмирањето се изведува со конекции кои на сликата се означени со точки. Се програмираат конекциите меѓу влезовите и И портите и меѓу излезите на И портите и влезовите на ИЛИ портите. Производите (импликанти) се испишани како редови на програмираната матрица, додека колоните содржат информација за тоа кои производи се содржат во излезните функции. На пример, во третиот ред на сликата, во првата матрица поставени се точки кај променливите x и z. Од поставените точки во втората матрица се гледа дека импликантата xz е дел од функциите f1 и f2. Изработката на PLA се изведува на ист начин како ROM, односно постојат PLA програмабилнo со помош на маска и FPLA програмабилнo со помош на поле. При FPLA изработка потребно е да се направат 2np конекции на влезовите и mp конекции на излезите. Каде p е број на употребени И порти, n е број на влезни променливи и m е број на излезни функции. За примерот претставен на сликата 4.23 вкупниот број на конекции изнесува p(2n+m)=4(6+4)=40. Од овие 40 конекции само 16 ќе бидат искористени. PLA изработени како интегрални кола имаат многу повеќе влезови, излези и И порти од опишаниот пример. На пример, интегралното коло 82S100 има n=16, m=8 и p=48. При имплементирање на повеќе прекинувачки функции со PLA, се настојува бројот на И порти да е што помал. Притоа, економската оправданост за намалување на бројот на И порти не е во цената на И портите, но во намалување на бројот на конекциите кои треба да се направат. Така, со отстранување на една И порта бројот на конекциите се намалува за 2n+m. Да се намали бројот на И порти не значи дека секоја функција треба да се минимизира или дека сите импликанти треба да се примарни. Импликантите треба да се изберат така да што повеќе од нив се заеднички за повеќе излезни функции.

Page 191: digitalna logika

182 Дигитална логика

Логика на програмабилно поле

Покрај името логика на програмабилно поле за овие уреди се употребува и името логика на програмирано поле (Programmed Array Logic). При реализација на функции со ROM има голем број конекции заради големиот број на И порти (2n). Програмирањето на конекциите се изведува само на излез од И портите. Ако се користи PLA бројот на конекции е многу помал бидејќи се намалува бројот на употребени И порти. При имплементација на функции со PLA се заменуваат изразите кои претставуваат канонична сума од производи на прекинувачките функции со изрази сума од производи со помал број на производи. За сметка на намалување на бројот на И порти при реализација со PLA потребно е програмирање не само на излезите од И портите, туку и на влезовите на И портите. Покрај претходните начини на реализација на прекинувачки функции постои и трета можност. Тоа е програмирање само на влезовите на И портите. Ако бројот на ИЛИ порти може да се фиксира тогаш може да се избегне програмирањето на излезите од И портите. Во многу кола со повеќе излези иако излезите се функции од голем број влезни променливи, бројот на производи кои учествуваат во секој излез е мал. Со други зборови бројот на И порти кои ја управуваат секоја ИЛИ порта е мал. Во тој случај економски е оправдано да се фиксира бројот на ИЛИ порти, а да се програмираат само влезовите на И портите. Тоа коло се нарекува логика на програмабилно поле (PAL). PAL е производ на компанијата Advanced Micro Devices. Бројот на конекции за PAL е 2np, каде n е број на променливи, а p е број на И порти. На пример, интегралното коло PAL16L8 има најмногу 16 влезови и 8 излези. Табелата за програмирање на PAL е слична на онаа за PLA. На сликата 4.24 е претставена табела за PAL со 6 излезни ИЛИ порти. Бидејќи има 12 влезни променливи потребни се 212=4096 И порти. За примерот претставен на сликата 4.24 се зема дека каноничната сума од производи може да се сведе на 16 импликанти, од кои на сликата е прикажана само една. Влезовите во И портите може да се програмираат, а излезите се фиксирани од производителот. Во

Page 192: digitalna logika

4. Комбинациони кола 183

примерот две од излезните ИЛИ порти се управувани од 4 И порти, а другите 4 ИЛИ порти се управувани од по 2 И порти. Во колоната влезови на табелата за програмирање, влезот е 1 ако променливата се јавува во импликантата, 0 ако се јавува како комплемент и цртичка ако не се јавува во импликантата. Бројот на конекции кои треба да се направат е 2x12x16=384, што е за 2 0 % по малку о тко лку бр ојо т на ко некции кај PLA која има иста структура. Но обично PLA имаат многу повеќе И порти, па бројот на конекции ќе биде многу поголем за PAL отколку за PLA. производ терм влезови излези

број функција 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6

1 1

2 1

3 1

4 1

5 1

6 1

7 x x x x x x1 2 5 7 11 12 1 0 - - 1 - 1 - - - 0 1 1

8 1

9 1

10 1

11 1

12 1

13 1

14 1

15 1

16 1

слика 4.24: Пример на табела за програмирање на PAL

Page 193: digitalna logika

184 Дигитална логика

4.7 Примери

Пример 4.8:

A

Да се реализира бинарен полу-собирач со користење а) елементарни логички кола (И, ИЛИ, НЕ) б) само НИ кола в) само НИЛИ кола. а) За да се добијат изразите за сумата и преносот се тргнува од комбинационата табела за бинарен полу-собирач претставена на слика 4.25.

B S P 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

слика 4.25: Комбинациона табела на бинарен полу-собирач

По минимизација со методот Карноови мапи за сумата и преносот се добиваат следните изрази S: A P: A 0 1 0 1

B 0 1 B 0 1 1 1 1

S A B AB AB= ⊕ = + P AB= Користејќи ги овие изрази може да се нацрта шемата за бинарен полу-собирач со И, ИЛИ и НЕ по р ти како што е пр икажано на сликата 4.26. б) Со примена на правилата на Булова алгебра и Де Моргановите закони изразот за сума може да се трансформира во облик S AB AB= + = + + +AB AB AA BB = + + +( ) ( )A B A A B B = +AB A ABB = ( )( )AB A ABB

Page 194: digitalna logika

4. Комбинациони кола 185

слика 4.26: Имплементација на бинарен полу-собирач со елементарни логички кола (И, ИЛИ и НЕ)

Изразот за пренос може да се трансформира во P AB= = AB = AB AB . Врз основа на овие изрази може да се нацрта логичката мрежа со НИ кола за бинарен полу-собирач. Таа е претставена на сликата 4.27.

слика 4.27: Имплементација на бинарен полу-собирач со НИ порти в) Изразот за сума на сличен начин може да се трансформира во облик погоден за реализација со НИЛИ кола S AB AB= + = + + +AB AB AA BB

Page 195: digitalna logika

186 Дигитална логика

= + + +( ) ( )A B A A B B = + +( )( )A B A B = + +( )( )A B A B = + + +A B A B = + + + + +A A B B A B Исто така, изразот за пренос може да се трансформира во облик P AB= = AB = +A B = + + +A A B B . Врз основа на изразите може да се нацрта шема на бинарен полу-собирач со НИЛИ порти. Шемата е претставена на сликата 4.28.

слика 4.28: Имплементација на бинарен полу-собирач со НИЛИ порти

Пример 4.9:

S ABC ABC ABC ABC= + + +

Да се формира полн бинарен собирач користејќи а) бинарни полу-собирачи б) логички НИЛИ кола. Полниот собирач има 3 влеза A, B и C, каде влезот C е пренос при собирање на битовите од претходната позиција. Излезот S е сума, а излезот P пренос кон следната позиција. Комбинационата табела за полниот собирач е претставена на сликата 4.29. За сумата се добива следниот израз

= + + +C AB AB C AB AB( ) ( )

Page 196: digitalna logika

4. Комбинациони кола 187

= + + +C AB AB C AB AB( ) ( ) = + +C AB AB C AB AB( ) ( ) = + + +C AB AB C AB AB( ) ( ) = +CS CS1 1 каде со S1 е означена сумата на полу-собирачот со влезови А и B. За преносот се добива изразот P ABC ABC AB C ABC= + + + = + +C AB AB AB( ) = +CS P1 1 каде со P1 е означен преносот на полу-собирачот со влезови А и B.

А B C S P 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

слика 4.29: Комбинациона табела за полн собирач

а) Според изразите кои се претходно изведени полниот собирач може да се претстави како на сликата 4.30, каде PS означува полусобирач.

слика 4.30: Полн собирач реализиран со полу-собирачи

Page 197: digitalna logika

188 Дигитална логика

б) Со користење на резултатот од пример 4.8в и изразите кои се претходно изведени за полниот собирач може да се реализира полн собирач само со НИЛИ порти. Реализацијата на полн собирач со НИЛИ порти е претставена на слика 4.31.

слика 4.31: Имплементација на полн собирач со НИЛИ порти

Пример 4.10:

S ABC ABC ABC ABC= + + +

Да се реализира полн собирач со 3 во 23 декодер и логички порти по потреба. Изразите за сума S и пренос P на полниот собирач, чии влезови се A, B и преносот од собирањето на битовите на претходната позиција C се:

P ABC ABC AB C ABC= + + + . Овие изрази се добиени од комбинационата табела на полн собирач (слика 4.29). Реализацијата на полн собирач со 3 во 8 декодер и 2 ИЛИ порти е дадена на слика 4.32.

слика 4.32: Имплементација на полн собирач со 3 во 8 декодер и ИЛИ порти

Page 198: digitalna logika

4. Комбинациони кола 189

Пример 4.11:

x0

Да се дизајнира кодер кој конвертира октални во бинарни броеви. Тоа е коло со 8 влезови xi и 3 излези zi. За секоја комбинација само еден од излезите е 1. Окталниот број к се претставува со xk=1. Комбинационата табела на кодерот е претставена на слика 4.33.

x1 x2 x3 x4 x5 x6 x7 z0 z1 z2 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1

слика 4.33: Комбинациона табела за конверзија на октални во бинарни броеви

Функциите кои ги реализира кодерот се z x x x x0 4 5 6 7= + + + z x x x x1 2 3 6 7= + + + z x x x x2 1 3 5 7= + + + Кодерот кој конвертира октални во бинарни броеви може да се претстави со колото на слика 4.34.

слика 4.34: Кодер за конверзија на октални во бинарни броеви

Page 199: digitalna logika

190 Дигитална логика

Пример 4.12: Да се одредат минимални ДНФ на прекинувачките функции кои ги реализира комбинационата мрежа на излезите z1, z2 и z3:

Со MP е означен мултиплексер, со CD кодер, а со DP демултиплексер. Мултиплексер со два контролни влезови во општ случај ја реализира функцијата: y x x I x x I x x I x x I= + + +1 2 0 1 2 1 1 2 2 1 2 3 Во оваа задача мултиплексерот MP1 ја реализира фунцијата y x x x x x x1 1 2 1 2 1 2= + = ⊕ а мултиплексерот MP2 ја реализира функцијата y x x x x x x2 3 4 3 4 3 4= + = ⊕ . Табелата која дефинира кодер со четири влеза е претставена на слика 4.35.

C0 C1 C2 C3 v1 v2 w 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1

слика 4.35: Комбинациона табела за кодер со 4 влеза

Page 200: digitalna logika

4. Комбинациони кола 191

Кодерот со четири влезови ги реализира функциите v C C1 2 3= + v C C2 1 3= + и w C C C C= + + +0 1 2 3. Како што се гледа на сликата на дадената комбинациона мрежа, на влезовите на кодерот доаѓаат сигналите C x x0 2 4= C y x x1 1 1 2= = ⊕ C x x2 1 3= и C y x x3 2 3 4= = ⊕ . На излезите на кодерот се реализираат функциите: v C C x x x x1 2 3 1 3 3 4= + = + ⊕ и v C C x x x x2 1 3 1 2 3 4= + = ⊕ + ⊕ . Демултиплексер со четири излези во општ случај ги реализира следните прекинувачки функции: F x x I0 1 2= F x x I1 1 2= F x x I2 1 2= и F x x I3 1 2= . Во оваа задача I = v1 и за бараните излези z2 и z3 се добива: z F x x v x x x x x x2 1 1 2 1 1 2 1 3 3 4= = = + ⊕( )и z F x x v x x x x x x3 3 1 2 1 1 2 1 3 3 4= = = + ⊕( ) . Минималните ДНФ на прекинувачките функции z1, z2 и z3 се одредуваат со помош на Карноовите мапи. Прво треба добиените функции да се трансформираат во ДНФ форма:

z v x x x x1 2 1 2 3 4= = ⊕ + ⊕ = + + +x x x x x x x x1 2 1 2 3 4 3 4 . Потоа се одредува множество минтерми за кои функцијата има вредност 1: z XX XX XX XX1 1 10 01 11 00( ) { , , , }= и врз основа на тоа се формира следната Карноова мапа:

x3x4

x1x2

00 01 11 10 00 1 1 01 1 1 1 1 11 1 1 10 1 1 1 1

Page 201: digitalna logika

192 Дигитална логика

Од Карноовата мапа се наоѓа дека минималната ДНФ на функцијата е z x x x x x x x x1 1 2 1 2 3 4 3 4= + + + и воедно дека постои само една минимална ДНФ за дадената функција. Слично, ако z2 се трансформира во ДНФ z x x x x x x2 1 2 1 3 3 4= + ⊕( ) = + +x x x x x x x x1 2 1 3 3 4 3 4( ) = +x x x x x x x x1 2 3 4 1 2 1 3 се гледа дека добиената ДНФ е минимална ДНФ. Таа е исто така единствена минимална ДНФ на функцијата. За третата функција z3 трансформирањето до минимална ДНФ се изведува на следниот начин z x x x x x x3 1 2 1 3 3 4= + +( ) = + +x x x x x x x x1 2 3 4 3 4 1 3( ) = + +x x x x x x x x x x x1 2 3 4 1 2 3 4 1 2 3 . Се одредува множеството минтерми за кои функцијата има вредност 1 z X3 1 1100 1111 111( ) { , , }= а потоа се формира соодветна Карноова мапа:

x3x4

x1x2

00 01 11 10 00 01 11 1 1 1 10

Од Карноовата мапа се гледа дека функцијата има само една

минимална ДНФ: z x x x x x x3 1 2 4 1 2 3= + . Пример 4.13: Да се реализира коло за споредување на бинарни броеви. За споредување на два n-битни броеви се користи коло компаратор, кое дава три можни резултати на излезите. Во табелата на слика 4.36 е даден резултатот на споредување на два едно-битни броеви А и B:

Page 202: digitalna logika

4. Комбинациони кола 193

f1 f2 f3 A B A<B A>B A=B 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 0 0 1

слика 4.36: Вистинитосна табела на компаратор на два едно-битни

броеви Од оваа вистинитосна табела за функциите f1, f2 и f3 се добиваат изразите f AB1 = f AB2 = f AB AB AB AB AB AB3 = + = + = + . Функциите се имплементираат со колото прикажано на слика 4.37.

слика 4.37: Имплементација на компаратор на два едно-битни броеви Компаратор на 4-битни броеви може да се изведе со колото прикажано на сликата 4.38. На излезот на колото се добива 1 ако влезните битови за двата броја се исти и 0 ако се различни.

Page 203: digitalna logika

194 Дигитална логика

слика 4.38: Имплементација на компаратор на два 4-битни броеви

Пример 4.14: f yz xy x yz= + + Да се имплементира функцијата со помош на мултиплексер од тип 4 во 1. Мултиплексер од тип 4 во 1 може да се користи за генерирање на било која функција од 3 променливи. Излезната функција на

мултиплексерот е f s s D s s D s s D s s D= + + +1 0 0 1 0 1 1 0 2 1 0 3. Произволно се избира начин на придружување на селектирачките влезови на променливите на дадената функција. Нека s x1 = и s y0 = . Во тој случај функцијата f треба да се развие по променливата z f x y z x y f z xyf z x y f z xyf z( , , ) ( , , ) ( , , ) ( , , ) ( , , )= + + +0 0 0 1 1 0 1 1 .

Во овој израз секое f i i z( , , )1 2 каде i j ∈{ , }0 1 е функција на остаток од една променлива z и може да зема една од следните вредности 0, 1, z и z . Со претходната равенка се опишува работата на мултиплексер од тип 23-1 во 1 при што променливите x и y се поврзани за контролните влезови, а вредноста на функцијата f i i z( , , )1 2 е поврзана на влезот Dj каде j е декаден еквивалент на i1i2. За влезовите на мултиплексерот се добиваат следните вредности D D D z0 1 20 1= = =, , и D z3 = .

Page 204: digitalna logika

4. Комбинациони кола 195

На сликата 4.39 е прикажан мултиплексер 4 во 1 кој ја реализира

функцијата f yz xy x yz= + + кога x и y се избрани за контролни влезови.

f

D00

X y

MUX4x1

1

z

z

D1

D2

D3

слика 4.39: Реализација на функцијата f yz xy x yz= + + со 4 x 1 мултиплексер, кога контролни влезови се x и y

Ако за селектирачки влезови на мултиплексерот се земат променливите y и z, тогаш функцијата треба да се развие по променливата x, при што се добива следната равенка f x y z yz f x yzf x yz f x yzf x( , , ) ( , , ) ( , , ) ( , , ) ( , , )= + + +0 0 0 1 1 0 1 1 .

Во овој случај за податочните влезови на мултиплексерот се добиваат вредностите D x D D x0 1 20= = =, , и D3 1= .

Функцијата f yz xy x yz= + + кога y и z се избрани за контролни влезови може да се реализира со следниот мултиплексер

f

D0x

y z

MUX4x1

0

x

1

D1

D2

D3

слика 4.40: Реализација на функцијата f yz xy x yz= + + со 4 x 1

мултиплексер, кога контролни влезови се y и z

Page 205: digitalna logika

196 Дигитална логика

Пример 4.15:f x x x x x x x x x x( , , , )1 2 3 4 1 2 3 4 3 4= + + +

Да се реализира со минимален број на 4 во 1

мултиплексери функцијата . Ако за селектирачки влезови на мултиплексерот се изберат x3 и x4, а функцијата се развие по x1 и x2 се добива f x x f x x x x f x x x x f x x x x f x x= + + +3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 20 0 0 1 1 0 1 1( , , , ) ( , , , ) ( , , , ) ( , , , ) За податочните влезови на мултиплексерот се добиваат изразите D D x x0 3 1 2= = + = + + +x x x x x x1 2 2 2 1 1( ) ( ) = + +x x x x x x1 2 1 2 1 2 D D x x1 2 1 2 1 1= = + + = Овие изрази се влезови на вториот мултиплексер. За првиот мултиплексер селектирачки влезови се x1 и x2, а на излез треба да се

добие изразот x x x x x x1 2 1 2 1 2+ + . Реализацијата на функцијата со два 4 во 1 мултиплексери е прикажана на сликата 4.41.

слика 4.41: Реализација на функцијата f x x x x x x x x x x( , , , )1 2 3 4 1 2 3 4 3 4= + + +

со минимален број на 4 x 1 мултиплексери

Пример 4.16: а) За колото на сликата да се одреди изразот за прекинувачката функција f. DC е декодер, а MP1 и MP2 се мултиплексери. б) Да се реализира функцијата f ако на располагање се само мултиплексери со 4 податочни и 2 селектирачки влеза.

Page 206: digitalna logika

4. Комбинациони кола 197

3

0

1

2

MP1

x3

x1 x3

3

0

1

2

MP2

x1 x2

x3

x1

x1

x1

x2

x3

x4

2/4DC f

а) Излезите од мултиплексерите се: MP1: 31131131331331 xxxxxxxxxxxxxxa =+++= MP2:

4213212121421321221121 xxxxxxxxxxxxxxxxxxxxxxb +++=+++=

Излезите од декодерот се: baI =0 baI =1 baI =2 abI =3 За функцијата f се добива:

bababbaaababbabaIIIf +=+=++=++=++= )(321

421321212131 xxxxxxxxxxxxf ++++=

421131 xxxxxx ++=

42131 xxxxx ++=

4231 xxxx ++=

б) 4231 xxxxf ++= Ако функцијата се развие според Шенонова теорема по променливите x3 и x4

3

2143

214321432143

)1,1,,(

)0,1,,()1,0,,()0,0,,(210

D

DDD

xxfxx

xxfxxxxfxxxxfxxf

+

++=

се добива 10 xD = 211 xxD += 132 == DD

Page 207: digitalna logika

198 Дигитална логика

21212211 )( xxxxxxxx +=+= За минтермите 0 и 1 функцијата 1x е единица.

21212111222121 )()( xxxxxxxxxxxxxx ++=+++=+

За минтермите 0, 1 и 3 функцијата 21 xx + е единица.

E0123

1100

X1 X2

MP1

E0123

1101

X3 X4MP2

ED0D1D2D3

CD11

f

X1 X2

X1

X1 + X2

Пример 4.17:

3

0

1

2

DCx3

x4

3

0

1

2

MP1 z1

x2 x3

3

0

1

2

MP2 z2

x2 x3

3

0

1

2

DPx3

0

x1 x2

а) За колото на сликата да се одредат изразите за прекинувачките функции z1 и z2. DC е декодер, DP е демултиплексер, а MP1 и MP2 се мултиплексери. б) Да се реализираат функциите z1 и z2 ако на располагање се само мултиплексери со 4 податочни и 2 селектирачки влеза.

Page 208: digitalna logika

4. Комбинациони кола 199

a) DC: 430 xxD = 431 xxD = 432 xxD = 433 xxD =

DP: 3210 xxxF = 3211 xxxF = 3212 xxxF = 3213 xxxF =

MP1: 2320320321 0 DxxFxxDxxz +++=

4332321324332 xxxxxxxxxxxxx ++=

432432 xxxxxx +=

MP2: 3323321321322 DxxFxxFxxDxxz +++=

433232132321324332 xxxxxxxxxxxxxxxxxx +++=

432432 xxxxxx +=

б) 30

4324321II

xxxxxxz +=

0101 41414141430 xxxxxxxxxII +++===

1

x1 x4

MUX

x4

1

0

0

x2 x3

MUX

z1

0

30

4324322II

xxxxxxz +=

1010 41414141430 xxxxxxxxxII +++===

1

x1 x4

MUX

x41

0

0

x2 x3

MUX

z2

0

Page 209: digitalna logika

200 Дигитална логика

Пример 4.18:

Дадена е комбинациона мрежа со 4 влеза x1x0y1y0 која на излезот го прикажува бројот на логички единици на влезовите кодиран бинарно со 3 бита. На пример, ако на влез се донесе 0111 на излез се добива бинарен код на 3, односно 011. Да се реализира мрежата со а) ROM и б) PLA.

x1x0y1y0 z1z2z3 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 2 0 0 1 0 0 0 1 3 0 0 1 1 0 1 0 4 0 1 0 0 0 0 1 5 0 1 0 1 0 1 0 6 0 1 1 0 0 1 0 7 0 1 1 1 0 1 1 8 1 0 0 0 0 0 1 9 1 0 0 1 0 1 0

10 1 0 1 0 0 1 0 11 1 0 1 1 0 1 1 12 1 1 0 0 0 1 0 13 1 1 0 1 0 1 1 14 1 1 1 0 0 1 1 15 1 1 1 1 1 0 0

Реализација на комбинационата мрежа со ROM:

0

x0

12345

6789

1011

121314

15

x1

y0

y1

z2z1 z3

Page 210: digitalna logika

4. Комбинациони кола 201

x1x0

z1 y1y0

x1x0

z2 y1y0 00 01 11 10 00 01 11 10

00 00 1 01 01 1 1 1 11 1 11 1 1 1 10 10 1 1 1

x1x0

z3 y1y0 00 01 11 10

00 1 1 01 1 1 11 1 1 10 1 1

Реализација на комбинационата мрежа со PLA:

x0x1 y0y1z1 z2 z3

x1x0y1y0

x0y1y0

x1y1y0

x1x0y0

x1x0y0

x1x0y1

x1x0y1

x1x0y1y0

x1x0y1y0

x1x0y1y0

x1x0y1y0

x1x0y1y0

x1x0y1y0

x1x0y1y0

x1x0y1y0

Page 211: digitalna logika

202 Дигитална логика

01011 yyxxz =

1011010010110010102 yxxyxxyxxyyxyxxyyxz +++++=

0101010101010101

01010101010101013

yyxxyyxxyyxxyyxx

yyxxyyxxyyxxyyxxz

+++

++++=

Пример 4.19:

Да се дизајнира комбинациона мрежа која на влез добива 2 двобитни броја x1x0 и y1y0 а на излез го дава збирот од овие два броја. На пример, ако на влез се донесат 01 и 10 на излез се добива бинарен код на 3, односно 011. Да се реализира мрежата со а) ROM и б) PLA.

x1x0y1y0 z2z1z0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 2 0 0 1 0 0 1 0 3 0 0 1 1 0 1 1 4 0 1 0 0 0 0 1 5 0 1 0 1 0 1 0 6 0 1 1 0 0 1 1 7 0 1 1 1 1 0 0 8 1 0 0 0 0 1 0 9 1 0 0 1 0 1 1

10 1 0 1 0 1 0 0 11 1 0 1 1 1 0 1 12 1 1 0 0 0 1 1 13 1 1 0 1 1 0 0 14 1 1 1 0 1 0 1 15 1 1 1 1 1 1 0

За да се реализира комбинационата мрежа со ROM не е потребна минимизација на функциите z2, z1 и z0. На следната слика е претставена имплементацијата на функциите со ROM:

Page 212: digitalna logika

4. Комбинациони кола 203

0

x0

12345

6789

1011

121314

15

x1

y0

y1

z2 z1 z0 б) Пред да се изврши имплементација на функциите со PLA потребно е да се изврши минимизација:

x1x0

z2 y1y0

x1x0

z1 y1y0 00 01 11 10 00 01 11 10

00 00 1 1 01 1 01 1 1 11 1 1 1 11 1 1 10 1 1 10 1 1

010001112 yyxyxxyxz ++=

010101011010110111011 yyxxyyxxxyyxxyxxyxyyz +++++=

x1x0

z0 y1y0 00 01 11 10

00 1 1 01 1 1 11 1 1 10 1 1

00000 xyyxz +=

Page 213: digitalna logika

204 Дигитална логика

На следната слика е претставена имплементација на комбинационата мрежа со PLA:

x0x1 y0y1z2 z1 z0

x1y1

x1x0y0

x0y1y0

y1y0x1

y1x1x0

y1x1x0

y1y0x1

y1y0x1x0

y1y0x1x0

x0y0

x0y0

Page 214: digitalna logika

4. Комбинациони кола 205

Пример 4.20:

Децимална цифра

Со декодер 4/16 и кодер 16/4 да се реализира конвертор од NBCD код во Грејов код. Решение:

бинарен код Грејов код

0 0000 0000 0 1 0001 0001 1 2 0010 0011 3 3 0011 0010 2 4 0100 0110 6 5 0101 0111 7 6 0110 0101 5 7 0111 0100 4 8 1000 1100 12 9 1001 1101 13

10 1010 1111 15 11 1011 1110 14 12 1100 1010 10 13 1101 1011 11 14 1110 1001 9 15 1111 1000 8

0

b

12345

6

789

1011

121314

15

a

d

c

12345

6

789

1011

121314

15

0

y

x

w

z

Page 215: digitalna logika

206 Дигитална логика

4.8 Задачи

1. Да се реализира функцијата f x x x( , , ) ( , , , )1 2 3 0 4 6 7=∑ со 3 x 8 декодер и а) ИЛИ порти б) НИЛИ порти. 2. Да се реализира функцијата

f x x x x x x x x x x x x x( , , )1 2 3 1 3 1 2 1 2 3 1 2 3= + + + со помош на мултиплексер со 3 селектирачки и 8 податочни влезови. 3. Да се реализира функцијата

f x x x x b( , , , ) ( , , , , , ) ( , )1 2 3 4 3 4 7 8 11 13 0 5=∑ со мултиплексер со 2 селектирачки и 4 податочни влезови. 4. Да се реализира функцијата f x x x x b( , , , ) ( , , , , ) ( , , )1 2 3 4 3 4 6 8 9 10 11 15=∑ а) со декодер 4 во 16 б) со мултиплексер со 2 селектирачки и 4 податочни влезови. 5. Да се дизајнира комбинациона мрежа која на влез добива два 2-битни броеви x x1 0 и y y1 0, а на излез го дава производот на тие броеви. Да се реализира со: а) ROM со 24 влезови и 4 излези б) со PLA со 8 И порти. 6. Да се дизајнира комбинациона мрежа која на влез добива два 2-битни броеви x x1 0 и y y1 0, а на излез го дава поголемиот од тие броеви.. Мрежата да се реализира со PLA. 7. Да се дизајнираат комбинациони мрежи за а) генерирање на бит за парна парност за 3-битен NBCD код б) за проверка на парноста на 4-битен NBCD код за парна парност. Мрежите да се реализираат со користење на НИ порти со произволен број на влезови.

Page 216: digitalna logika

4. Комбинациони кола 207

8. Да се одреди функцијата f која ја реализира колото

Со MP е означен мултиплексер, а со DP демултиплексер. 9. Да се имплементира со ROM комбинациона мрежа со четири влезни променливи и три излези: f w x y z wx yz wxyz wxyz wx yz1( , , , ) = + + + f w x y z wxyz wxyz wx yz2 ( , , , ) = + + f w x y z wxyz wx yz3( , , , ) = + .

10. Да се реализира со PAL коло прекинувачка мрежа со четири влезови и два излези дадена со следната табелата на вистинитост

x y z w f1 f2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0

Page 217: digitalna logika

208 Дигитална логика

Од табелата на вистинитост на функциите може да се забележи дека f1 има 1 кога поголемиот број на влезови се 1, а f2 има 1 само кога два влезови се 1 а другите два 0. 11. Да се имплементираат со PLA коло функциите f1 3 5 6 7=∑ ( , , , ) f2 1 2 4 7=∑ ( , , , ) . 12. Да се дизајнира комбинациона мрежа со три влеза и три излеза. Кога влезот е 0, 1, 2 и 3 бинарниот излез треба да е за 1 поголем од влезот, а кога влезот е 4, 5, 6 и 7 бинарниот излез треба да е за 1 помал од влезот. Мрежата да се реализира со PLA. 13. Да се дизајнира комбинациона мрежа која конвертира 4-битен Грејов код во 4-битен NBCD код. Мрежата да се реализира со користење на НИ порти. 14. Да се реализираат функциите: f1(w,x,y,z)= Σ(0,2,10,12,13) f2(w,x,y,z)= Σ(1,2,6,10,14) f3(w,x,y,z)= Σ(0,1,6,12,13,14) а) со ROM со 24 влезови и 4 излези б) со PLA со 7 И порти. 15.а) Да се најде изразот за f за следното комбинационо коло

б) Да се реализира функцијата f со минимален број на 2 во 4 мултиплексери.

Page 218: digitalna logika

5. СЕКВЕНЦИЈАЛНИ КОЛА

Page 219: digitalna logika

210 Дигитална логика

Се разликуваат две класи на дигитални логички кола: кола без меморија кои се нарекуваат комбинациони и кола кои поседуваат меморија наречени секвенцијални кола. Комбинационите кола изведуваат операции во еден чекор, односно излезите зависат само од влезовите, а не од минатите вредности на влезовите. Затоа овие кола може комплетно да се опишат со вистинитосни табели, каде за секоја комбинација на влезовите се одредуваат соодветните излези. За n влезови табелата на вистинитост има 2n редови. Секвенцијалните кола ги изведуваат операциите во секвенца од чекори и оттаму доаѓа името секвенцијални. Овие кола мора да поседуваат меморија за да ги памтат меѓурезултатите од операциите кои се изведуваат последователно. За разлика од комбинационите кола, хардверската реализација на овие кола е поедноставна бидејќи со колото се изведува само една секвенца, но резултатот се добива за подолг период, односно во повеќе чекори. На сликата 5.1 е претставена структурата на секвенцијалните кола.

слика 5.1: Структура на секвенцијално коло

Page 220: digitalna logika

5. Секвенцијални кола 211

Тие се состојат од комбинационо коло и меморија. Постои повратна врска од меморијата кон комбинационото коло и на тој начин претходните состојби имаат влијание врз тековната операција. Комбинационото коло има примарни влезови кои потекнуваат од надворешното опкружување на колото и секундарни влезови кои доаѓаат од меморијата. Меморијата може да памти конечна информација, која се нарекува состојба на колото, а на сликата 5.1 нејзиниот капацитет е k битови. Ако постојат m секундарни влезни променливи тогаш машината може да премине во 2m состојби. Друго име за секвенцијалните кола е машини со конечен број на состојби (finite state machine). Се разликуваат два типа на машини со конечен број на состоjби: Милиеви (Mealy) и Мурови (Moore) машини. Милиевата и Муровата машина се претставени на сликата 5.2. Кај Милиевата машина има два вида излези од комбинационото коло: излези кон надворешното опкружување на колото и излези кон меморијата кои ја формираат следната состојба на машината. За разлика од тоа, кај Муровата машина има само излези кон меморијата, односно влезовите во комбинационото коло предизвикуваат промена на состојбата на машината.

а)

б)

слика 5.2: а) Милиева и б) Мурова машина

Page 221: digitalna logika

212 Дигитална логика

Секвенцијалните кола може да бидат синхрони и асинхрони. Синхроните работат под контрола на сигнали за синхронизација кои доаѓаат од системскиот часовник или такт генератор. Под влијание на сигналите за синхронизација се менуваат внатрешните состојби на колата. Такт импулсите имаат правоаголен облик и одредено времетраење дефинирано со период Т. Кај импулсот (слика 5.3) се разликуваат растечки (при премин од 0 кон 1) и опаѓачки раб (при премин од 1 кон 0).

слика 5.3: Такт импулс Кај асинхроните кола преминот од една во друга состојба настанува под влијание на влезните сигнали. Состојбите не се менуваат во точно одредени временски интервали, па овие кола работат со сопствена брзина.

5.1 Лечеви и флип-флопови

Меморискиот дел на секвенцијалното коло се состои од повеќе лечеви. Леч е мемориско коло со два излези кои се комплемент еден на друг.

SR леч

SR (Set-Reset) лечот може да се реализира со по две НИЛИ или НИ порти. На сликата 5.4а е претставен SR леч реализиран со НИЛИ порти, а на сликата 5.5а со НИ порти. Како што е познато од претходно излезот на НИЛИ портата е 0 ако барем еден влез е 1, а излезот е 1 ако двата влеза се 0 (табела 5.1).

период

растечки раб

опаѓачки раб 0

1

Page 222: digitalna logika

5. Секвенцијални кола 213

Влезовите на SR лечот (слика 5.4а) се означени со S(Set) и R(Reset). Нека влезот S има вредност 1, а влезот R вредност 0. Бидејќи влезот S

е 1 излезот на долната НИЛИ порта Q е 0.

Tабела 5.1: Вистинитосна табела за логичките операции ИЛИ и НИЛИ

x y x+y x y+ 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0

При нормална работа на SR лечот излезите Q и Q се секогаш комплементарни еден на друг, па излезот Q е еднаков на 1. Оваа состојба е стабилна и го претставува првиот ред во табелата на вистинитост на лечот (слика 5.4б).

а)

S R Q Q

1 0 1 0 0 0 1 0 по S=1 и R=0 0 1 0 1 0 0 0 1 по S=0 и R=1 1 1 - -

б) в)

слика 5.4: а) SR леч реализиран со НИЛИ порти б) вистинитосна табела в) логички симбол

Ако влезот S премине од 1 во 0 колото не ја менува својата состојба. Излезот Q останува 1 и барем еден влез на долната НИЛИ порта е 1,

Page 223: digitalna logika

214 Дигитална логика

па излезот Q на оваа порта останува 0. Двата влеза на горната НИЛИ

порта R и Q се 0 па нејзиниот излез Q останува 1. Оваа состојба е претставена во вториот ред на табелата на вистинитост на лечот. Значи, лечот не ја менува состојбата на излезите ако по S=1 и R=0 се добијат влезови S=0 и R=0. Ако сега на влезот R се постави 1 тогаш излезот Q на горната НИЛИ порта станува 0. Бидејќи влезот S е 0, двата влеза на долната НИЛИ

порта се 0. Така, излезот Q ќе стане 1. Тоа е претставено со третиот ред на табелата на вистинитост на лечот. Се забележува дека влезната комбинација S=1 и R=1 не е дозволена бидејќи води до недефинирани

излези. Во тој случај би требало двата излези Q и Q да бидат поставени на 0 што е контрадикторно на условот за комплементарност на излезите. Од анализата на работата на SR лечот се заклучува дека има две основни состојби. Првата состојба се добива кога S=1 при што излезот Q станува еднаков на 1, а втората се добива кога R=1 при

што излезот Q станува 1. За да се задржи состојбата на лечот непроменета двата влезови добиваат вредност 0. Само кога треба да се смени состојбата на лечот еден од влезовите добива вредност 1. На сликата 5.4в е претставен логичкиот симбол на SR лечот. SR лечот може да се реализира со две вкрстени НИ порти (слика 5.5а). НИ портата добива вредност 0 на излезот ако двата влеза се 1 и добива вредност 1 на излезот ако барем еден влез е 0 (табела 5.2).

Tабела 5.2: Вистинитосна табела за логичките операции И и НИ

x y xy xy 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0

Кај SR лечот реализиран со НИ порти за да се задржи состојбата се донесуваат единици на двата влеза. Кога на двата влеза се донесе 0

излезите стануваат недефинирани. Би требало двата излези Q и Q да бидат поставени на 1 што е контрадикторно на условот за

Page 224: digitalna logika

5. Секвенцијални кола 215

комплементарност на излезите. Со поставување на влезот S на 1 и

влезот R на 0 се менува излезот Q на 1 бидејќи еден влез на долната

НИ порта е поставен на 0. Во тој случај двата влеза S и Q на горната НИ порта се 1, па излезот Q станува 0. Ако влезот R премине од 0 во

1 излезот Q ќе остане 1 бидејќи Q е 0. Условот барем еден влез на долната порта да е 0 е исполнет со тоа што Q е 0. Слично, се заклучува дека со поставување S=0 и R=1 за излезите се добива Q=1

и Q=0. На сликата 5.5в е претставен логичкиот симбол на SR лечот реализиран со НИ порти.

а)

S R Q Q

1 0 0 1 1 1 0 1 по S=1 и R=0 0 1 1 0 1 1 1 0 по S=0 и R=1 0 0 - -

б) в) слика 5.5: а) SR леч реализиран со НИ порти б) вистинитосна табела

в) логички симбол За да се реализираат лечеви кои ќе се сетираат и ресетираат во согласност со управувачки сигнал, потребно е на влез на лечевите да се донесе контролен сигнал. Таквиот леч се нарекува тактиран или управуван. На сликата 5.6 е претставен управуван SR леч реализиран со НИ порти.

Page 225: digitalna logika

216 Дигитална логика

слика 5.6: Тактиран SR леч реализиран со НИ порти Покрај S и R влезовите колото има дополнителен контролен влез C (Control) кој е поврзан со тактен сигнал. Се додека влезот C е 0 излезите на предните НИ порти ќе бидат еднакви на 1 и состојбата на лечот нема да се менува. Кога влезот C станува еднаков на 1, влезовите S и R ќе имаат влијание врз работата на лечот. Управуван SR леч реализиран со НИЛИ порти е претставен на сликата 5.7.

слика 5.7: Тактиран SR леч реализиран со НИЛИ порти Вистинитосната табела е прикажана на сликата 5.8а. Без разлика дали тактираниот SR леч е реализиран со НИЛИ или НИ порти излезната функција останува иста. Следната анализа овозможува да се креира табела на премини за лечот. Од сликата 5.8а може да се заклучи дека за S=0 и R=0 состојбата на лечот не се менува, односно Qt+1=Qt. Ако S=1 и R=1 состојбата на лечот е недефинирана. Кога S=1 излезот Q=1, а кога

R=1 излезот Q=1. Табелата на премини е претставена на слика 5.8б. Со минимизација со помош на методот Карноови мапи се добива

карактеристичната функција на SR леч Q S RQt t+ = +1 . Минимизацијата е претставена на сликата 5.9.

Page 226: digitalna logika

5. Секвенцијални кола 217

Qt S R Qt+1 S R Qt+1 0 0 0 0 0 0 Qt 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 - 1 1 - 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 -

а) б)

слика 5.8: а) Вистиносна табела на тактиран SR леч б) табела на премини

SR

Qt 00 01 11 10

0 b 1 1 1 b 1

Q S RQt t+ = +1

слика 5.9: Карактеристична функција на SR леч

D леч

За да се избегне неопределената состојба на управуван SR леч двата влеза S и R не треба никогаш да бидат истовремено еднакви на 1. Тоа се постигнува со вградување на инвертор меѓу двата влеза и поврзување на влезовите во еден. Новиот влез се проследува кон колото како S влез, а комплементот на новиот влез се проследува како R влез. Лечот кој се добива на опишаниот начин се нарекува D (Delay) леч. Лечот има контролен влез C. D лечот останува во истата состојба ако влезот C e 0. Ако C e 1 во лечот се запаметува вредноста на влезот D. На сликата 5.10 е претставен D леч реализиран со НИ порти. На влезот S преку НИ порта се донесува комплемент на влезот D, а на влезот R преку инвертор и НИ порта се донесува влезот D. Се додека

Page 227: digitalna logika

218 Дигитална логика

контролниот сигнал C=0 двата влеза на SR лечот се 1 и колото не може да ја промени својата состојба под влијание на влезот D.

слика 5.10: D леч реализиран со НИ порти

Кога C=1 влезот D има влијание врз состојбата на лечот. Ако D=1 излезот Q се поставува на 1, а ако D=0 излезот Q се поставува на 0. На сликата 5.11 е претставен D леч реализиран со НИЛИ порти, а на сликата 5.12 е логичкиот симбол на лечот.

слика 5.11: D леч реализиран со НИЛИ порти

слика 5.12: Логички симбол на D леч

Начинот на функционирање на лечот може да се опише со вистинитосната табела на сликата 5.13а. Од табелата се забележува дека вредноста на влезот D се проследува на излезот независно од претходната состојба на лечот. Според тоа, табелата на премин на лечот може да се напише во облик прикажан на сликата 5.13б.

Page 228: digitalna logika

5. Секвенцијални кола 219

Qt D Qt+1 D Qt+1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1

а) б)

слика 5.13: а)Вистинитосна табела на D леч б) табела на премини

Карактеристичната функција на D леч која се добива со минимизација на излезната функција е Qt+1=D. Минимизацијата е претставена на сликата 5.14. SR и D лечевите се наједноставни и најефтини мемориски елементи кои се користат кај логичките кола. Наоѓаат примена во кола каде не постои надворешна повратна врска од излезите на лечевите до влезовите на комбинационо коло кое се наоѓа пред лечевите.

Qt+1=D

слика 5.14: Карактеристична функција на D леч На пример, кај D леч излезот Q ги следи промените на влезот D кога C=1. Ако со надворешна повратна врска излезот Q се донесе на влез на лечот заради доцнење на сигналот при пропагација низ лечот можни се непредвидени промени на состојбата на лечот. Промената на излезот Q не ја следи моментно промената на влезот. Потребно е извесно време за да се добие соодветниот излез на лечот при промена на влезот. За да се постигне само една промена на состојбата на лечот во еден чекор се користат мемориски елементи наречени флип-флопови (flip-flop).

D

Qt 0 1 0 1 1 1

Page 229: digitalna logika

220 Дигитална логика

Флип-флопови

За преминување од една во друга состојба на мемориското коло битно е новата состојба Qt+1 да не интерферира со старата во периодот на промена на состојбата. За добивање на новата состојба потребни се претходната состојба Qt и влезниот сигнал X. Флип-флопот се дефинира како бистабилно коло кое го користи управувачкиот сигнал C за одредување на моментите во кои меморијата ја менува состојбата под влијание на влезните сигнали и во кои се менуваат излезните сигнали. Кај флип-флопот управувачкиот сигнал има синхронизирачка улога и се нарекува такт сигнал или сигнал од системскиот часовник. Разликата меѓу лечеви и флип-флопови е што лечевите се осетливи на ниво (level sensitive), а флип-флоповите се осетливи на промена на ниво, односно се тригерираат на опаѓачки или растечки раб (edge triggering) на такт сигналот. Како што е прикажано на сликата 5.15, кога C=1, во интервалот t1-t2, се прифаќаат промените на влезовите на лечот. По одредено пропагационо доцнење промените на влезовите влијаат на излезите во интервалот t3-t4.

слика 5.15: Леч осетлив на ниво

Кога C=0 промените на влезовите не влијаат на излезите на лечот. Заради тоа, за лечевите се вели дека се осетливи на ниво. За правилно да функционира флип-флопот треба да се обезбеди интервалот кога се прифаќаат влезните променливи (t1-t2) и интервалот кога може да се менуваат излезите (t3-t4) да не се преклопуваат. Еден начин да се постигне бараниот услов е прифаќањето на влезните променливи да се изведува кога C=1, а

0

1

t1 t2

t4

t1

t3

Q

D

C

Q

t3

Page 230: digitalna logika

5. Секвенцијални кола 221

менувањето на излезите кога C=0. Овој начин на работа се користел во поранешните бистабилни кола. Денешните кола користат тригерирање на растечки (слика 5.16) или опаѓачки раб (слика 5.17). На сликите 5.15, 5.16 и 5.17 се претставени и логичките симболи на флип-флоповите кои се разликуваат од оние на лечевите по симболот > кај влезот за тактирање.

слика 5.16: Флип-флип кој се тригерира на растечки раб

слика 5.17: Флип-флоп кој се тригерира на опаѓачки раб

Формирање на флип-флопови од лечеви

Се разликуваат два вида флип-флопови: master-slave и флип-флоп кој се тригерира на раб. Кај master-slave флип-флопот влезните податоци се прифаќаат само кога контролниот сигнал C=1, а состојбата се менува само кога C=0. Другиот тип флип-флопови се тригерираат на

0

1

t1 t2

t4

t1

Q

D

C

Q

t3

0

1

t1 t2

t4

t1

Q

D

C

Q

t3

Page 231: digitalna logika

222 Дигитална логика

опаѓачки или растечки раб на контролниот сигнал, што значи дека промените на состојбата настануваат само при промена на тактот од 1 на 0 или од 0 на 1. Мaster-slave флип-флопот се состои од два леча и инвертор. На сликата 5.18 е претставен SR master-slave флип-флоп кој е осетлив на ниво. Првиот леч е master а вториот е slave. Slave лечот добива инвертиран такт сигнал за разлика од master лечот. Кога C=0 slave лечот функционира како SR леч и излезите му се менуваат во

зависност од вредностите на влезовите (Q1 и Q1 ), додека кај master лечот промената на влезовите не ја менува состојбата.

слика 5.18: SR master-slave флип-флоп осетлив на ниво

Master лечот функционира како SR леч кога C=1. Тогаш промените на

влезовите S1 и R1 ги менуваат излезите Q1 и Q1 . За тоа време slave

лечот не функционира, па промените на Q1 и Q1 не ги менуваат

вредностите на излезите Q2 и Q2 .

JK флип-флоп

JK флип-флопот може да се реализира како master-slave флип-флоп и како флип-флоп кој се тригерира на раб. Овој флип-флоп овозможува да се надмине недефинираната состојба кај SR лечот кога двата влезови S и R се 1 (слика 5.8). Тоа се постигнува со додавање повратни врски од излезите кон дополнителни порти на влезот (слика 5.19). Прво се опишува функционирањето на JK master-slave флип-флоп.

Page 232: digitalna logika

5. Секвенцијални кола 223

слика 5.19: JK master-slave флип-флоп

Кога двата влеза се 1 кај JK флип-флопот излезите се комплементираат (слика 5.20а).

Qt J K Qt+1 J K Qt+1 0 0 0 0 0 0 Qt 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 Qt 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0

а) б) слика 5.20: а) Вистинитосна табела на JK флип-флоп б) табела на

премини Влезот J одговара на влезот S, а влезот K на влезот R. Така, кога J=1 се изведува поставување на излезот Q на 1, а кога влезот R=1 флип-флопот се ресетира и се поставува излезот Q на 0. На сликата 5.20б е претставена табелата на премини. JK флип-флоп кој се тригерира на растечкиот раб на такт сигналот (слика 5.21) се добива со додавање на D флип-флоп кој се тригерира на растечки раб, опишан во понатамошниот текст.

Page 233: digitalna logika

224 Дигитална логика

слика 5.21: JK флип-флоп кој се тригерира на растечки раб На сликата 5.22 е претставена минимизација на излезната функција на

JK флип-флоп. Се добива дека функцијата е Q J Q KQt t t+ = +1 . JK

Qt 00 01 11 10

0 1 1 1 1 1

Q J Q KQt t t+ = +1

слика 5.22: Карактеристична функција на JK флип-флоп

D флип-флоп кој се тригерира на раб

D флип-флоп кој се тригерира на растечки раб може да се реализира со D леч како master, SR леч како slave и два инвертора (слика 5.23). Иако ова е master-slave комбинација на лечеви, колото има особина да се тригерира на предниот раб на такт импулсот. За C=0 влезот D се пренесува на излезот на master лечот. Работата на SR slave лечот е оневозможена и тој ја задржува претходната состојба.

слика 5.23: D флип-флоп кој се тригерира на растечки раб

Page 234: digitalna logika

5. Секвенцијални кола 225

При промена на контролниот сигнал од 0 на 1, односно на растечкиот раб на контролниот сигнал, се забранува работа на master лечот, а се дозволува работа на slave лечот. Така, slave лечот ја пренесува на излез состојбата на master лечот. Бидејќи излезот на master лечот не може да се промени состојбите на двата леча остануваат непроменети. Кога C ја промени вредноста од 1 на 0, односно на опаѓачкиот раб на такт сигналот, се дозволува работа на master лечот, а се забранува работа на slave лечот. Вредноста на излезот на master лечот ја следи промената на влезот D, но состојбата на slave лечот останува непроменета бидејќи не му е дозволена работа. Исто така, D флип-флоп кој се тригерира на раб може да се реализира со два D леча и еден инвертор (слика 5.24).

слика 5.24: D флип-флоп кој се тригерира на растечки раб, реализиран со два D леча и инвертор

T флип-флоп

Т флип-флопот може да се конструира со поврзување на влезовите на JK флип-флоп (слика 5.25). Исто така, може да се конструира со користење на D флип-флоп и порта исклучиво ИЛИ (слика 5.26). Овие флип-флопови не се произведуваат како посебна компонента, но се конструираат од JK или D флип-флопови.

слика 5.25: Т флип-флоп конструиран од JK флип-флоп

Page 235: digitalna logika

226 Дигитална логика

Овој флип-флоп е познат под името тригерски (trigger или toggle). Ако влезот Т=1 при растечки раб на тактниот импулс излезот на флип-флопот се комплементира, а кога Т=0 флип-флопот не ја менува состојбата.

слика 5.26: Т флип-флоп конструиран од D флип-флоп Вистинитосната табела и табелата на премини на Т флип-флопот се претставени на слика 5.27.

Qt Т Qt+1 Т Qt+1 0 0 0 0 Qt 0 1 1 1 Qt 1 0 1 1 1 0

а) б) слика 5.27: а) Вистинитосна табела на Т флип-флоп б) табела на

премини Карактеристичната функција на Т флип-флоп TQQTQ ttt +=+1 и постапката за нејзино добивање се прикажани на слика 5.28.

TQQTQ ttt +=+1

слика 5.28: Карактеристична функција на Т флип-флоп

Логичкиот симбол на Т флип-флоп е претставен на сликата 5.29.

T

Qt 0 1 0 1 1 1

Page 236: digitalna logika

5. Секвенцијални кола 227

слика 5.29: Логички симбол на Т флип-флоп

Табели на побуди на флип-флоповите

Табелите на побуди дефинираат каков треба да е влезот за да се добие бараниот излез. На сликата 5.30 се дадени табелите на побуди за SR, JK, D и T флип-флоп.

Qt Qt+1 S R Qt Qt+1 J K 0 0 0 b 0 0 0 b 0 1 1 0 0 1 1 b 1 0 0 1 1 0 b 1 1 1 b 0 1 1 b 0

Qt Qt+1 D Qt Qt+1 T 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0

слика 5.30: Табели на побуди на SR, JK, D и T флип-флоп

Вредностите на влезовите се добиваат со внесување на вредностите на излезите во карактеристичните равенки на флип-флоповите. Знакот b укажува дека тој влез не влијае на следната состојба на флип-флопот.

Page 237: digitalna logika

228 Дигитална логика

5.2 Анализа на секвенцијални кола

Анализа на секвенцијалните кола се изведува со цел да се добие опис за секвенцата на состојби, влезови и излези на колото. Излезите и следните состојби се функции од влезовите и тековните состојби. Вообичаен начин на претставување на работата на секвенцијалните кола се табелите на состојби и дијаграмите на состојби. На сликата 5.31 е дадено секвенцијално коло кое се состои од два SR флип-флопа и дополнителна комбинациона логика. Колото има два влеза x1 и x2, еден излез z и две променливи на состојба Q1 и Q2. Бројот на променливи на состојба го одредува бројот на состојби на колото. Всушност, бројот на променливи на состојба е број на флип-флопови во секвенцијалното коло. Ако бројот на променливи на состојба е n тогаш бројот на состојби е 2n. Значи, колото има 4 состојби (00, 01, 10 и 11). Бројот на редови во табелата на состојби е еднаков на бројот на состојби.

слика 5.31: Секвенцијално коло Прв чекор при анализа на колото е да се напишат функциите на побуда на флип-флоповите. За даденото коло овие функции се: S x Q1 2 2= , R x Q1 1 1= за првиот SR флип-флоп и S x Q x Q2 2 1 1 1= + , R x x2 2 1= + за вториот SR флип-флоп. За излезот z може да се напише

следната функција z x Q Q= 2 1 2 .

Page 238: digitalna logika

5. Секвенцијални кола 229

Табелата на состојби се пополнува користејќи ја карактеристичната

функција на SR флип-флоп: Q S RQt t+ = +1 . Оваа функција овозможува да се пресмета следната состојба на флип-флопот во зависност од влезовите S и R и тековната состојба Qt. Наместо ознаката Qt во понатамошниот текст се користи ознака Q, а наместо Qt+1 се користи ознака Q+. Од карактеристичната функција може да се изведат изразите за пресметување на Q1

+ и Q2+:

Q x Q x Q Q1 2 2 1 1 1+ = +

= + +x Q x Q Q2 2 1 1 1( ) = +x Q x Q2 2 1 1 Q x Q x Q x x Q2 2 1 1 1 2 1 2

+ = + + +( ) = + +x Q x Q x x Q2 1 1 1 1 2 2 . Од изразите за Q1

+ и Q2+ се пресметуваат вредностите во табелата на

состојби. Во првата колона на табелата се внесени можните состојби на колото, а во следните колони се внесени парови вредности следна состојба/излез кои се добиваат за вредности на влезните променливи означени во насловите на колоните. Табелата на состојби за секвенцијалното коло е претставена на слика 5.32а.

тековна состојба

Q1Q2

x1x2 00

влезови x1x2 01

x1x2 10

x1x2 11

0 0 00,0 01,0 00,0 01,0 0 1 01,0 11,0 00,0 11,0 1 1 11,0 10,0 01,0 11,0 1 0 10,0 10,1 11,0 11,1

следна состојба(Q1+Q2

+), излез(z) а)

Q1Q2 x1x2=00 x1x2=01 x1x2=10 x1x2=11 A A,0 B,0 A,0 B,0 B B,0 C,0 A,0 C,0 C C,0 D,0 B,0 C,0 D D,0 D,1 C,0 C,1

б) слика 5.32: Табела на состојби за секвенцијалното коло од слика 5.31

Page 239: digitalna logika

230 Дигитална логика

Ако секвенцијалното коло има m влезови тогаш бројот на колони е 2m. Колото кое се анализира има 2 влеза па табелата на состојби има 4 колони. Се забележува дека состојбите во првата колона се подредени во редослед кој обезбедува бинарните репрезентации на соседните состојби да се разликуваат во една бит позиција. Вообичаено е бинарните репрезентации на состојбите 00, 01, 11 и 10 да се заменат со букви A, B, C и D, соодветно (слика 5.32б). Дијаграмот на состојби или граф на премини (state diagram, state transition graph) претставува насочен граф во кој секој јазел одговара на состојба на колото, а секоја гранка одговара на премин од една во друга состојба. Гранките се обележени со влезовите и излезите. На пример, гранката насочена од состојба А кон B обележена со 01/0 означува дека под влијание на влез 01 се поминува од состојба А во состојба B при што излезот е 0. Дијаграмот на состојби за секвенцијалното коло е претставен на сликата 5.33.

слика 5.33: Дијаграм на состојби за секвенцијалното коло од слика 5.31

Дијаграмот на слика 5.33 претставува граф на Милиева машина. Кај Милиевите машини следната состојба и излезот зависат од влезот и тековната состојба. За разлика од тоа, кај Муровите машини следната состојба зависи од влезот и тековната состојба, но излезот зависи само од тековната состојба.

Page 240: digitalna logika

5. Секвенцијални кола 231

Секвенцијалните кола може да се претстават со Мурова или Милиева машина. Можна е трансформација на едниот тип машина во другиот. При синтеза на секвенцијални кола треба да се одлучи со кој тип на машина ќе се реализира колото. Примерoт 5.1 опишува конструирање на Мурова машина. На сликата 5.34 е претставен дијаграм на состојби на Мурова машина за колото од пример 5.1. Табелата на состојби со бинарно кодирање на состојбите е претставена на слика 5.35, а со алфабетско кодирање на состојбите на слика 5.36. Гранките на графот кој го претставува оваа машина се обележени со влезовите, а јазлите со парот состојба и излез. Гранката од состојба B кон состојба A означува премин од состојба B во A кога влезот е 0, при што излезот е 01. Табелата на состојби има толку редови колку што има можни состојби. Ако бр ојо т на влезо ви е m то гаш бр ојо т на ко ло ни е еднако в на 2m+1, бидејќи излезите се запишуваат во последната колона.

слика 5.34: Мурова машина за секвенцијалното коло од пример 5.1

Пример 5.1:

J xQ1 2=

Да се конструира табела и граф на состојби за секвенцијалното коло зададено со функциите на побуди на флип-флоповите и функциите на излезите:

21 xQK = z Q Q1 1 2= ⊕

J x2 = K x Q2 2= ⊕ z Q Q2 2 21= ⊕ = Секвенцијалното коло е составено од два JK флип-флопа. Бидејќи излезите z1 и z2 зависат само од тековната состојба, а не и од влезовите станува збор за Мурова машина. Карактеристичната

функција на JK флип-флоп е Q J Q KQ+ = + . Со користење на карактеристичната функција се наоѓаат изразите за Q1

+ и Q2+:

1212112121 QQQxQQxQxQQQxQ ++=+=+

Page 241: digitalna logika

232 Дигитална логика

222222222222 )( )( QxQQxQxQQxQxQxQQxQxQ ++=++=⊕+=+

xxQQx =+= 22 .

тековна состојба Q1Q2

влез x =0 x =1

излези z1z2

0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1

следна состојба(Q1+Q2

+) излези(z1z2)

слика 5.35: Табела на состојби за секвенцијалното коло од пример 5.1 Со помош на овие изрази се пополнува табелата на состојби која е претставена на сликите 5.35 и 5.36. Од табелата на состојби лесно може да се конструира графот на состојби на секвенцијалното коло.

тековна состојба Q1Q2

влез x =0 x =1

излези z1z2

A A C 0 1 B A B 1 0 C D B 0 0 D D C 1 1

слика 5.36: Табела на состојби за секвенцијалното коло од пример

5.1, со алфабетско кодирање на состојбите

5.3 Синтеза на секвенцијални кола

Постапката за дизајнирање на секвенцијални кола се одвива во неколку чекори. Првиот чекор е да се дефинира проблемот за кој се проектира секвенцијалното коло. Потоа потребно е да се определи колку мемориски елементи, односно колку состојби се потребни. Вообичаено е функционирањето на колото да се специфицира со дијаграм на состојби и со табела на состојби. Доколку во табелата постојат еквивалентни состојби се применува постапка на минимизација на табелата. Секвенцијалните кола може да се реализираат со различен вид на флип-флопови. Најчесто се употребуваат JK и D флип-флопови. Со користење на карактеристичните функции на флип-флоповите се креираат табели

Page 242: digitalna logika

5. Секвенцијални кола 233

на побуда или функции на побуда на флип-флоповите. На крајот се проектира логичкиот дијаграм на секвенцијалното коло. Со цел да се објасни постапката на синтезата на секвенцијални кола во текстот кој следува се разгледуваат неколку примери. Пример 5.2: Да се креира дијаграм и табела на состојби за секвенцијално коло со влез x и излез z кое изведува препознавање на секвенца од битови 1101. Ако на влез се јави низата битови се генерира излез z=1, а во спротивно се генерира z=0. Креирањето на дијаграм на состојби за даден проблем не е еднозначно. Дизајнерот може да го претстави колото било со Мурова било со Милиева машина, а одлуката зависи и од природата на проблемот за кој се проектира колото. Нека почетната состојба се означи со A. При влез 0 колото останува во оваа состојба и генерира излез 0, а при влез 1 поминува во состојба B и генерира излез 0.

Во состојба B ако на влез се јави 0 колото се враќа во состојба А, а ако се јави 1 преминува во состојба C.

Потоа, ако во состојба C на влезот се добие 1 колото останува во истата состојба. Колото преминува во состојба D само кога на влез се добие 0.

Од состојбата D колото може да премине во состојба A и да генерира излез 0 или во со стојба B и да генер ир а излез 1 . Ко га на влез е

Page 243: digitalna logika

234 Дигитална логика

добиена бараната секвенца 1101 колото преминува во состојба B затоа што е дозволено влезните секвенци да се преклопуваат. Со оваа постапка се креира дијаграмот на состојби (слика 5.37) на коло кое ја препознава секвенцата 1101.

слика 5.37: Дијаграм на состојби за коло кое ја препознава

секвенцата 1101 Од дијаграмот на состојби може да се напише табелата на состојби која е претставена на слика 5.38. Се забележува дека колото е реализирано како Милиева машина. Користењето на Милиев тип на машина при дизајнирање на секвенцијалните кола е повообичаено отколку реализација со Мурова машина.

тековна состојба влез x =0 x =1

A A,0 B,0 B A,0 C,0 C D,0 C,0 D A,0 B,1

слика 5.38: Табела на состојби за коло кое ја препознава секвенцата

1101

5.4 Еквивалентност на состојби и минимизација на секвенцијални машини

За едно секвенцијално коло може да бидат конструирани повеќе табели и дијаграми на состојби. Некои од нив овозможуваат реализација на колото со помал број на состојби додека други водат до посложена реализација. Како што минимизацијата на логичките функции води до поедноставна хардверска реализација на комбинационите кола, така и елиминирањето на еквивалентните

Page 244: digitalna logika

5. Секвенцијални кола 235

состојби од табелата на состојби води до поедноставна реализација на секвенцијалните кола. Секвенцијалните кола функционираат на тој начин што примаат секвенца од влезни симболи, преминуваат од состојба во состојба во зависност од тие симболи и генерираат излези. Всушност, тие ја пресликуваат влезната секвенца во излезна секвенца. Нека колото се наоѓа во состојба B и нека на влез доаѓа симбол 1. Под влијание на влезниот симбол нека колото преминува во состојба D. Состојбата D е наследник на состојбата B за влез 1. Дефиниција 5.1: Ако на влез на секвенцијално коло кое се наоѓа во состојба Ѕi се донесе влезна секвенца Х и притоа колото преминува во состојба Ѕј, тогаш се вели дека Ѕј е Х-наследник на Ѕi. Ако истата влезна секвенца Х се донесе на влез на истото коло двапати, еднаш кога колото е во состојба Ѕi, а еднаш кога е во Ѕј, тогаш излезните секвенци, може но не мора да се еднакви. Ако излезните секвенци се еднакви за дадена влезна секвенца тогаш двете почетни состојби не се разликуваат во однос на таа влезна секвенца. Генерално, ако излезната секвенца е еднаква за двете состојби, за било која влезна секвенца, тогаш двете состојби воопшто не се разликуваат. Дефиниција 5.2: Две состојби на колото Ѕi и Ѕј се еквивалентни ако и само ако за секоја влезна секвенца колото генерира иста излезна секвенца без разлика која од тие две состојби е почетна. Ваквата дефиниција е практично неупотреблива за проверка на еквивалентност на две состојби. Нека сега претпоставиме дека излезите од двете почетни состојби, за иста влезна секвенца, не се исти. Дефиниција 5.3: Две состојби Ѕi и Ѕј на секвенцијално коло се различни ако и само ако постои барем една конечна влезна секвенца која генерира различни излезни секвенци почнувајќи од Ѕi и Ѕј. Ако секвенцата има должина к, тогаш се вели дека состојбите се к-различни. Дефиниција 5.4: Две состојби кои што не се к-различни, се к-еквивалентни. Дефиниција 5.5: Две состојби на секвенцијално коло се еквивалентни ако се к-еквивалентни за секое к.

Page 245: digitalna logika

236 Дигитална логика

Како илустрација на дефинициите може да се разгледаат секвенцијалните кола зададени со табелите на состојби на слика 5.39.

тековна состојба

влез x =0 x =1

A B,0 D,1 B C,1 D,1 C C,0 A,0 D A,0 C,1

a)

б) слика 5.39: Примери на секвенцијални кола зададени со табели на

состојби Излезите од состојбите А и D за влезна секвенца со должина еден (влезот може да е 1 или 0) се еднакви. Значи, состојбите А и D не се 1-различни. Но ако влезната секвенца има должина 2, односно ако влезната секвенца е 00, почнувајќи од А излезот е 01, додека почнувајќи од D излезот е 00. Значи состојбите А и D се 2-различни. Во претходната дискусија се разгледува зависноста на излезните секвенци од влезните, а не се забележува како се менуваат состојбите. За колото претставено со табелата на слика 5.39а може да се забележи дека следните состојби не се исти кога почетни состојби се A и D. Во следниот чекор тие состојби ќе продуцираат различни излези при исти влезни симболи. Значи состојбите A и D се различни. За колото на слика 5.39б состојбите A, D и E се 1-еквивалентни. Следните состојби почнувајќи од A и E се еднакви за секој влез. По првиот влезен симбол, колото од било која состојба, A или Е, ќе премине во иста следна состојба и ќе генерира ист излез. Според тоа состојбите A и E се еквивалентни.

тековна состојба

влез x =0 x =1

A B,0 D,1 B C,1 D,1 C E,0 A,1 D A,0 C,1 E B,0 D,1

Page 246: digitalna logika

5. Секвенцијални кола 237

Претходната дискусија дава идеја како да се најдат состојбите кои се еквивалентни помеѓу себе. Почнувајќи од влезна секвенца со должина 1, се групираат состојбите што се 1-еквивалентни. Потоа се разгледуваат следните состојби за да се провери нивната различност, и така натаму. Деталите на процесот се илустрираат преку пример. Пример 5.3:

тековна состојба

Нека секвенцијалното коло е претставено со следната табела на состојби:

влез

x =0 x =1

A B,0 G,0 B B,1 H,1 C F,1 D,0 D B,0 H,0 E F,1 D,0 F F,0 C,1 G E,0 A,0 H E,0 A,0

Потребно е да се определи минималната табела на состојби. Се групираат состојби кои не се 1-различни, односно кои во еден чекор генерираат исти излези. Така, од почетната табела на состојби се формира табела поделена на 4 блокови a, b, c и d, кои го формираат множеството на блокови P1={ADGH, B, CE, F}:

тековна состојба

влез x =0 x =1

a

A B,0 G,0 D B,0 H,0 G E,0 A,0 H E,0 A,0

b B B,1 H,1

c C F,1 D,0 E F,1 D,0

d F F,0 C,1 Се испишува во кој блок на состојби поминува секоја состојба. Се забележува дека состојбите од ист блок генерираат ист излез за определен влез. Се добива следната табела

Page 247: digitalna logika

238 Дигитална логика

тековна состојба

влез x =0 x =1

a

A b,0 a,0 D b,0 a,0 G c,0 a,0 H c,0 a,0

b B b,1 a,1

c C d,1 a,0 E d,1 a,0

d F d,0 c,1 Табелата треба повторно да се дели на блокови бидејќи состојбите G и H во следниот чекор не преминуваат во состојби од ист блок како состојбите A и D. Потоа повторно се испишува во кој блок преоѓа секоја од состојбите. Делењето на табелата запира кога сите состојби од еден блок преминуваат во ист блок при одреден влез. Со втората поделба на табелата на состојби се добива множеството на блокови P2={AD,GH, B, CE, F}. По втората поделба се добива следната табела

тековна состојба

влез x =0 x =1

a A b,0 е,0 D b,0 е,0

е G c,0 a,0 H c,0 a,0

b B b,1 е,1

c C d,1 a,0 E d,1 a,0

d F d,0 c,1 Состојбите во секој блок се еквивалентни. Табелата може да се редуцира со бришење на еквивалентните состојби. Минималната табела за секвенцијалното коло е

Page 248: digitalna logika

5. Секвенцијални кола 239

тековна состојба

влез x =0 x =1

a b,0 е,0 e c,0 a,0 b b,1 е,1 c d,1 a,0 d d,0 c,1

5.5 Изведување на функции на побуда

По добивањето на минимизирана табела на состојби потребно е да се изврши кодирање на состојбите во бинарен облик. Потоа се определува бројот на потребни флип-флопови за реализација на секвенцијалното коло. Ако бројот на состојби се означи со S тогаш бројот на флип-флопови n се одредува од формулата . Следниот чекор е наоѓање на функциите на побуда за влезовите на флип-флоповите. Функциите на побуда се добиваат со минимизација со Карноови мапи. Карноовите мапи се формираат од табелата на побуда на секвенцијалното коло. Изведувањето на функции на побуда се опишува со следниот пример. Пример 5.4: Да се дизајнира синхрона секвенцијална машина со еден влез x и излез z. Излезот z=1 ако влезната секвенца е 0110 инаку z=0. Машината да се реализира со а) JK флип-флопови б) D флип-флопови. Постапката за цртање на дијаграм на состојби е опишана претходно. За да се добие секвенцата 0110 што ја препознава машината се тргнува од почетна состојба А и по потреба се додаваат нови состојби (слика 5.40а).

Page 249: digitalna logika

240 Дигитална логика

а) б)

слика 5.40: Дијаграм на состојби за коло кое ја препознава низата

0110 Потоа се дополнува графот со гранки кои одговараат на другите влезови во јазлите. Од дијаграмот на состојби (слика 5.40б) може да се напише табелата на состојби претставена на сликата 5.41.

тековна состојба

влез x =0 x =1

A А,0 B,0 B А,0 C,0 C А,1 D,0 D А,0 D,0

слика 5.41: Табела на состојби за коло кое ја препознава секвенцата

0110 Следен чекор е кодирање на состојбите A, B, C и D со бинарните кодови 00, 01, 10 и 11, соодветно, при што се добива табелата на слика 5.42. Забележете дека се сменети местата на последните два реда од табела 5.41 во табела 5.42, за полесно формирање на Каноовите мапи на сликата 5.44.

тековна состојба

Q1Q2

влез x =0 x =1 Q1

+Q2+,z Q1

+Q2+,z

0 0 0 0,0 01,0 0 1 0 0,0 10,0 1 1 0 0,0 11,0 1 0 0 0,1 11,0

слика 5.42: Табела на состојби по бинарно кодирање на состојбите

Page 250: digitalna logika

5. Секвенцијални кола 241

Бидејќи секвенцијалното коло има 4 состојби потребни се 2 флип-флопа. Прво со опишува реализација на колото со JK флип-флопови. Табелата на побуда на JK флип-флоп е

Qt Qt+1 J K 0 0 0 b 0 1 1 b 1 0 b 1 1 1 b 0

Со користење на оваа табела се добива табелата на побуди на колото, претставена на слика 5.43. Табелата на побуди ги определува вредностите на влезовите на двата флип-флопа J1, K1, J2 и K2 во зависност од променливите на состојба Q1Q2.

Q1Q2

x =0 J1K1 J2K2

x =1 J1K1 J2K2

0 0 0 b 0 b 0 b 1 b 0 1 0 b b 1 1 b b 1 1 1 b 1 b 1 b 0 b 0 1 0 b 1 0 b b 0 1 b

слика 5.43: Табела на побуди за колото од слика 5.41

при реализација со JK флип-флопови Потоа се изведува минимизација на функциите на побуда J1, K1, J2 и K2 и излезната функција z со Карноови мапи. Постапката е претставена на сликата 5.44. По минимизацијата побудните и излезната функција го добиваат следниот облик J xQ1 2= , K x1 = , J x2 = , K x Q2 1= + и z xQ Q= 1 2 . На сликата 5.45 е претставена реализацијата на секвенцијалната машина со JK флип-флопови.

Page 251: digitalna logika

242 Дигитална логика

слика 5.44: Карноови мапи на побудните функции и излезната

функција

слика 5.45: Имплементација на секвенцијалната машина од слика 5.41 со JK флип-флопови

K1 x

Q1Q2

0 1 00 b b 01 b b 11 1 10 1

J1 x

Q1Q2

0 1 00 01 1 11 b b 10 b b

J2 x

Q1Q2

0 1 00 1 01 b b 11 b b 10 1

K2 x

Q1Q2

0 1 00 b b 01 1 1 11 1 10 b b

z x

Q1Q2

0 1 00 01 11 10 1

Page 252: digitalna logika

5. Секвенцијални кола 243

За да се реализира машината со D флип-флопови потребно е да се најдат функциите на побуди за двата D флип-флопа. Табелата на побуди за D флип-флоп е

Qt Qt+1 D 0 0 0 0 1 1 1 0 0 1 1 1

Табелата на побуди на колото реализирано со D флип-флопови е

Q1Q2

x =0 x =1 D1D2 D1D2

0 0 00,0 01,0 0 1 00,0 10,0 1 1 00,0 11,0 1 0 00,1 11,0

слика 5.46: Табела на побуди за колото од слика 5.41при реализација со D флип-флопови

Табелата на побуди на колото се формира со користење на табелата на состојби на колото (слика 5.42) и побудната табела на D флип-флоп. По минимизацијата со Карноови мапи (слика 5.47) за побудните и излезната функција се добива D xQ xQ1 1 2= + , D xQ xQ2 1 2= + и z xQ Q= 1 2 . Имплементацијата на колото со користење на D флип-флопови е претставена на сликата 5.48.

Page 253: digitalna logika

244 Дигитална логика

слика 5.47: Карноови мапи на побудните функции и излезната

функција

слика 5.48: Имплементација на секвенцијалната машина од слика 5.41 со D флип-флопови

D1 x

Q1Q2

0 1 00 01 1 11 1 10 1

D2 x

Q1Q2

0 1 00 1 01 11 1 10 1

z x

Q1Q2

0 1 00 01 11 10 1

Page 254: digitalna logika

5. Секвенцијални кола 245

5.6 Правила за бинарно кодирање на состојбите

Бинарното кодирање на состојбите се нарекува уште доделување на состојби (state assignment). Кодирањето има влијание на имплементацијата на секвенцијалните кола. Во претходно разгледаниот пример 5.4, за дизајнирање на секвенцијално коло кое ја препознава секвенцата 0110, состојбите A, B, C и D се кодирани со бинарните кодови 00, 01, 10 и 11, соодветно. Ако за состојбите се користат кодовите A:00, B:01, C:11 и D:10 за имплементација на колото ќе биде потребна една порта повеќе. Не постои алгоритам за доделување на состојби, туку само неколку правила кои не гарантираат дека реализацијата на колото ќе биде оптимална. Правилата всушност се формулирани врз основа на искуство добиено при дизајнирање на секвенцијални кола. Кога правилата противречат едно на друго, треба да се даде предност на правилата со поголем приоритет. Приоритетот опаѓа од првото кон последното правило во листата. За дадена табела на состојби обично не може да се применат сите правила. Листата на правила за доделување на состојби е

1. На две состојби им се доделуваат логички соседни кодови ако имаат иста следна состојба за:

а) секоја влезна комбинација б) различни влезни комбинации, но ако на следните состојби може да се доделат соседни кодови в) некои влезни комбинации, но не сите.

2. За сите влезови кодовите на следните состојби, за секоја тековна состојба, треба да се соседни. Со други зборови следните состојби во ист ред треба да се кодираат со соседни кодови. 3. Доделувањата треба да ја поедностават излезната функција.

Page 255: digitalna logika

246 Дигитална логика

Пример 5.5:

тековна состојба

На сликата 5.49 се претставени табелата на состојби и правилата кои може да се применат за неа. Табелата има 7 состојби, па бројот на променливи на состојба ќе биде 3. Потребно е да се формира Карноова мапа за 3 променливи и во неа да се распоредат состојбите така да бидат задоволени барањата за логичко соседство.

влез x =0 x =1

A B,1 B,0 B C,0 D,1 C E,1 F,0 D F,0 E,1 E G,0 A,0 F A,0 G,0 G B,0 B,0

слика 5.49: Табела на состојби и правила за логичко соседство на

состојби Се избира состојбата А да се кодира со 000. Соседна на А треба да биде состојбата G. Во Карноова мапа за 3 променливи секоја ќелија е во логичко соседство со други 3 ќелии. Според тоа, G може да се постави во ќелиите на Карноовата мапа означени со 100, 010 и 001. Во која ќелија ќе се постави зависи од останатите барања за логичко соседство. Во овој пример не е потребно G да е во логичко соседство со друга состојба. Состојбата А треба да е соседна на C, итн. Распоредувањето на состојбите во Карноовата мапа е прикажано на сликата 5.50. Бинарните кодови на состојбите се А:000, G:001, C:010, E:100, F:101, B:111 и D:110.

слика 5.50: Карноова мапа за доделување на состојби

правило логички соседи

1a AG

1b CD ако EF EF ако AG

2 CD,EF,AG 3 AC,BD

Q1

Q2Q3

0 1 00 A E 01 G F 11 B 10 C D

Page 256: digitalna logika

5. Секвенцијални кола 247

Пример 5.6:

тековна состојба

На сликата 5.51 е дадена табела на состојби за едно секвенцијално коло и правилата кои може да се применат за кодирање на состојбите.

влез x =0 x =1

A B,0 C,0 B D,0 E,0 C F,0 G,0 D H,0 H,1 E H,0 H,1 F H,1 H,0 G H,1 H,0 H A,0 A,0

слика 5.51: Табела на состојби и правила за логичко соседство на

состојби На сликата 5.52 е претставено распоредувањето на состојбите во Карноова мапа и кодирањето на состојбите.

слика 5.52: Карноова мапа за доделување на состојби

правило логички соседи

1a DE,DF,DG EF,EG,FG

2 FG,BC,DE 3 DE,FG

Q1

Q2Q3

0 1 00 A H 01 B C 11 G E 10 F D

A 000 B 001 G 011 F 010 H 100 C 101 E 111 D 110

Page 257: digitalna logika

248 Дигитална логика

Пример 5.7:

Да се дизајнира синхрона секвенцијална машина зададена со табелата на состојби на слика 5.49. Да се користат JK флип-флопови. Бинарното кодирање на состојбите од табелата на слика 5.49 е опишано со пример 5.5. Од дадената табела може да се конструира табелата дадена на слика 5.53.

тековна состојба Q1Q2Q3

влез x =0 x =1 Q1

+Q2+Q3

+,z Q1+Q2

+Q3+,z

A 0 0 0 1 1 1,1 1 1 1,0 G 0 0 1 1 1 1,0 1 1 1,0 - 0 1 1 - - C 0 1 0 1 0 0,1 1 0 1,0 E 1 0 0 0 0 1,0 0 0 0,0 F 1 0 1 0 0 0,0 0 0 1,0 B 1 1 1 0 1 0,0 1 1 0,1 D 1 1 0 1 0 1,0 1 0 0,1

слика 5.53: Табела на состојби за пример 5.7 За да се најде табелата на побуди на колото прво се прегрупираат колоните на табелата на состојби при што се добива табела претставена на сликата 5.54. Табелата на побуди на секвенцијалната машина е дадена на слика 5.55. Пополнувањето на Карноовите мапи со вредности од табелата на побуди се изведува со директно внесување на цели блокови.

x=0 x=1 Q1Q2Q3 Q1Q1

+ Q2Q2+ Q3Q3

+ Q1Q1+ Q2Q2

+ Q3Q3+

0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 - 1 - 1 - 0 - 1 - 1 - 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0

слика 5.54: Прегрупирање на колоните на табелата на состојби

Page 258: digitalna logika

5. Секвенцијални кола 249

X=0 x=1 Q1Q2Q3 J1K1 J2K2 J3K3 J1K1 J2K2 J3K3

0 0 0 1 1 b 1 b 1 b 4 1 b 1 b 1 b 0 0 1 1 b 1 b b 0 1 b 1 b b 0 0 1 1 b b b b b b b b b b b b 0 1 0 1 b b 1 0 b 1 b b 1 1 b 1 0 0 2 b 1 0 b 1 b 3 b 1 0 b 0 b 1 0 1 b 1 0 b b 1 b 1 0 b b 0 1 1 1 b 1 b 0 b 1 b 0 b 0 b 1 1 1 0 b 0 b 1 1 b b 0 b 1 0 b

слика 5.55: Табела на побуди за секвенцијалното коло од пример 5.7

Блоковите кои се обележани на сликата 5.55 се внесуваат како колони во Карноовата мапа за J1 (слика 5.56). Распоредот е означен со броевите над колоните. По минимизацијата на побудните и излезната функција со Карноови мапи (слика 5.56) се добива: J1 1= , K Q xQ1 2 3= + , J Q2 1= , K Q2 3= , J x Q Q x Q3 1 2 1= + + +( )( ) , K x Q Q3 2 1= +( ) и z xQ Q xQ Q= +1 3 1 2 . 1 2 3 4

J1 xQ1

Q2Q3

00 01 11 10 00 1 b b 1 01 1 b b 1 11 b b b b 10 1 b b 1

K1 xQ1

Q2Q3

00 01 11 10 00 b 1 1 b 01 b 1 1 b 11 b 1 b 10 b b

слика 5.56: Карноови мапи за побудните функции (продолжува)

Page 259: digitalna logika

250 Дигитална логика

J2 xQ1

Q2Q3

00 01 11 10 00 1 1 01 1 1 11 b b b b 10 b b b b

K2 xQ1

Q2Q3

00 01 11 10 00 b b b b 01 b b b b 11 b b 10 1 1 1 1

J3 xQ1

Q2Q3

00 01 11 10 00 1 1 0 1 01 b b b b 11 b b b b 10 0 1 0 1

K3 xQ1

Q2Q3

00 01 11 10 00 b b b b 01 0 0 0 11 b b 10 b b b b

z xQ1

Q2Q3

00 01 11 10 00 1 01 11 b 1 b 10 1 1

слика 5.56: Карноови мапи за побудните и излезната функција

Page 260: digitalna logika

5. Секвенцијални кола 251

На сликата 5.57 е претставена имплементацијата на секвенцијалната машина.

слика 5.57: Имплементација на секвенцијалната машина

5.7 Регистри и бројачи

Регистрите и бројачите претставуваат две важни класи на секвенцијални кола. Како што е веќе нагласено, секвенцијалните кола се разликуваат од комбинационите во тоа што поседуваат меморија. Во меморијата може да се чуваат конечен број претходни влезови, претходни излези или претходни влезови и излези. Секвенцијалните кола кои меморираат конечен број претходни влезови се нарекуваат машини со конечна влезна меморија. Слично, колата кои чуваат конечен број излези се нарекуваат машини со конечна излезна меморија, а колата кои чуваат претходни влезови и излези се нарекуваат машини со конечна влезна и излезна меморија. Машините

Page 261: digitalna logika

252 Дигитална логика

со конечна меморија може да се реализираат со поместувачки регистри. Регистрите се составени од група мемориски елементи, од кои може да се чита или во кои може да се запишува. Регистерско поле (register file) претставува збир од повеќе регистри во рамките на едно интегрирано коло. RAM (Random Access Memory) претставува генерализација на регистерските полиња. Поместувачки регистри (shift registers) се вид на регистри кои може да ги поместуваат запамтените битови информација. Бројачите (counters) се регистри чија содржина кружи низ фиксна секвенца на состојби. Бројот на различни состојби низ кои минува бројачот се нарекува модул на бројачот.

Регистри

Секој флип-флоп може да меморира информација од еден бит. За да се добие регистер кој има меморија од n бита потребни се n флип-флопови. На сликата 5.58 е претставен регистер кој се состои од 4 D флип-флопови. Со растечкиот раб на такт импулсот информацијата присутна на влезовите D0, D1, D2 и D3 се пренесува во 4-битниот регистер. Со додавање на нови управувачки влезови може да се добие поголема функционалност на регистерот. На пример, со додавање на асинхроните Preset и Clear влезови може да се сетира (сите излези се поставуваат на 1) или ресетира (сите излези се поставуваат на 0) регистерот независно од такт сигналот. За составување на регистер со Preset/Clear влезови треба флип-флоповите од сликата 5.58 да се заменат со set/reset флип-флопови.

слика 5.58: Регистер со меморија од 4 бита

Page 262: digitalna logika

5. Секвенцијални кола 253

Друга модификација на регистерот која овозможува податоците да се памтат за период подолг од еден такт импулс е додавање на управувачки влез Load или Enable. Една реализација на регистер со Load влез е претставена на сликата 5.59. Овој влез одредува кога е дозволено запишување во регистерот. На влез на секој флип-флоп се поставува 2 во 1 мултиплексер. Влезот Load е селекторски влез на мултиплексерот со кој се одредува кој од двата влеза Ii или Qi ќе биде проследен на влезовите на флип-флоповите Di (i=0,1, … 3).

слика 5.59: Регистер со паралелно полнење Овој регистер се нарекува уште регистер со паралелно полнење бидејќи со Load влезот се овозможува истовремено полнење на новите податоци во сите флип-флопови. Поместувачките регистри се формираат со каскадно надоврзување на флип-флоповите. При тоа, излезот на еден флип-фло п е влез на

Page 263: digitalna logika

254 Дигитална логика

следниот флип-флоп и сите имаат заеднички такт сигнал. На сликата 5.60 е претставен поместувачки регистер реализиран со D флип-флопови.

слика 5.60: Поместувачки регистер

Ако на влезовите на флип-флоповите на поместувачкиот регистер од слика 5.60 се постават 2 во 1 мултиплексери се добива регистер кој овозможува конверзија на серискиот влез во паралелен излез (слика 5.61). Кога Shift влезот, кој е селекторски влез на мултиплексерот, е 0 нема промена на содржината на регистерот, а кога е 1 во првиот флип-флоп се сместува вредноста на влезот I, а во секој следен флип-флоп се сместува содржината на претходниот флип-флоп. Ако наместо 2 во 1 мултиплексери на влезовите на флип-флоповите се постават 4 во 1 мултиплексери се формира поместувачки регистер кој може да поместува во двете насоки.

слика 5.61: Поместувачки регистер со сериски влез и паралелен излез

За илустрација на примената на поместувачките регистри, во пример 5.8 се дизајнира секвенцијална машина со конечна влезна меморија, а

Page 264: digitalna logika

5. Секвенцијални кола 255

во пример 5.9 се разгледува реализација на машина со конечна излезна меморија. Пример 5.8:

z xQ Q Q xQ Q Q= +1 2 3 1 2 3

Да се дизајнира синхрона секвенцијална машина со влез x и излез z, која генерира излез z=1 ако на влез се добијат 4 исти битови или излез z=0 во спротивно. Машината треба да ги памти претходните 3 бита. Таа генерира излез 1 или 0 во зависност од вредноста на претходните 3 бита и тековниот влез. Според тоа, може да се реализира со поместувачки регистер од 3 флип-флопа. Излезот од машината е 1 само кога на влез се добијат минтермите 0000 и 1111, па излезната функција е

. Имплементацијата на машината е претставена на слика 5.62. Таа претставува пример на машина со конечна влезна меморија.

слика 5.62: Имплементација на секвенцијалната машина од пример 5.8

Пример 5.9:

z xQ xQ= +2 3

Да се дизајнира синхрона секвенцијална машина со еден влез x и еден излез z. Кога влезот x=1 машината треба да произведе излез еднаков на излезот добиен 2 такт импулси претходно, а кога x=0 треба да произведе излез еднаков на излезот добиен 3 такт имплулси претходно. Машината треба да памти најмногу 3 претходни излези. Таква машина може да се реализира со поместувачки регистер од 3 флип-флопа. Излезот на машината кога x=1 треба да е Q2, а кога x=0 треба

да е Q3, па излезната функција е .

Page 265: digitalna logika

256 Дигитална логика

Имплементацијата на машината е претставена на слика 5.63.

Слика 5.63: Секвенцијалната машина од пример 5.9

Бројачи

Бројачите се секвенцијални машини кои почнувајќи од една почетна состојба поминуваат низ фиксна секвенца на состојби и повторно се враќаат во почетната состојба. Кај некои бројачи потребната информација може да е само состојбата и тогаш не е потребно коло за декодирање на излезот. Во таков случај единствени излези се излезите на флип-флоповите. За други бројачи излезот се формира со користење на влезовите и состојбата на бројачот. Ако единствен влез на бројачот е такт сигналот, а единствени излези се излезите од флип-флоповите бројачот се нарекува single-mode бројач. Кога секвенцата на броење зависи не само од такт сигналот туку и од други влезни сигнали, а постојат и други излези освен излезите на флип-флоповите бројачот се нарекува multimode бројач. Бројот на различни состојби низ кои минува бројачот се нарекува модул на бројачот (modulo number). Бројот на флип-флопови потребни за реализација на бројачот се одредува од модулот на бројачот. Ако модулот на бројачот е n тогаш бројот на флип-флопови к е еднаков на . Бројачите кај кои секвенцата на состојби го следи бинарниот код се нарекуваат бинарни. Недостаток на овој код е што постојат соседни кодови кои не се разликуваат само во 1 бит туку во повеќе битови. Тоа значи дека при премин од една во друга состојба повеќе излези од флип-флопови треба истовремено да ја сменат вредноста. Бидејќи е тешко да се постигне истовремена промена на излезите на повеќе

Page 266: digitalna logika

5. Секвенцијални кола 257

флип-флопови бројачот може да се најде во состојба која не е дозволена. Покрај бинарен код може да се користи Грејов код или т.н. “ползечки” (creeping) код. Бинарниот, Грејовиот и creeping кодот се претставени на сликата 5.64. Бројачите чија секвенца на состојби е кодирана со creeping код се нарекуваат прстенести бројачи (ring counters). Кај прстенестите бројачи може да се јават висечки состојби (hang-up), односно бројачот да кружи во јамка на недозволени состојби. Проблемот на висечки состојби може да се надмине ако при наоѓањето на побудните функции со помош на Карноови мапи не се земаат во предвид ќелиите обележани со b, каде функцијата има недефинирана вредност. При тоа, испуштањето на b симболите се изведува само кај онаа побудна функција за која има проблем.

бинарен код Грејов код creeping код 000 000 0000 001 001 1000 010 011 1100 011 010 1110 100 110 1111 101 111 0111 110 101 0011 111 100 0001

слика 5.64: Бинарен, Грејов и “ползечки” (creeping) код

Бројачите може да бидат синхрони и ripple (брановидни). Кај синхроните сите флип-флопови се тригерираат од такт импулсот, а кај ripple бројачите некои или сите флип-флопови не се тригерираат од такт импулсот туку од излезот од други флип-флопови. На сликата 5.65 е претставен 4-битен ripple бројач изграден од JK флип-флопови. Излезот на секој флип-флоп е поврзан со управувачкиот влез C на следниот флип-флоп. Влезовите J и K се поврзани на логичка 1. Почетната состојба на бројачот е 0000, а на опаѓачкиот раб на такт импулсот бројачот се инкрементира за 1. Кога бројачот ќе дојде во состојба 1111 на следниот такт импулс преминува во почетната состојба.

Page 267: digitalna logika

258 Дигитална логика

На сликата 5.66 е претставена секвенцата на состојби на бројачот. Се забележува дека најмалку значајниот бит Q0 се комплементира за секој такт импулс. Следниот бит Q1 се комплементира кога Q0 преоѓа од 1 на 0. Исто така, Q2 се комплементира кога Q1 преоѓа од 1 на 0, а Q3 кога Q2 преоѓа од 1 на 0.

слика 5.65: 4-битен ripple бројач

Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

слика 5.66: Секвенца на состојби за 4-битен инкрементирачки бројач За да се реализира декрементирачки ripple бројач, односно бројач кој во следната состојба се намалува за еден, потребно е комплементираниот излез на секој флип-фло п да се по вр зе на контролниот влез C на следниот флип-флоп.

Page 268: digitalna logika

5. Секвенцијални кола 259

Недостаток на ripple бројачите е што е потребно подолго време за пропагирање на сигналот низ сите флип-флопови. Синхроните бројачи не внесуваат кумулативно временско каснење бидејќи тригерирањето на сите флип-флопови се врши истовремено. Со користење на дополнителна НИ порта може да се направи бројач по модул 10 од бројачот претставен на сликата 5.65. Кога бројачот преминува од состојба 1001 во состојба 1010 излезот од НИ портата станува логичка 0 и ги ресетира флип-флоповите, односно ги поставува нивните излези на 0. Бројачот по модул 10 е претставен на сликата 5.67.

слика 5.67: 4-битен бројач по модул 10 Со примерот 5.10 се илустрира постапката за дизајнирање на бројачи. Постапката всушност ги следи чекорите за дизајнирање на секвенцијално коло. Единствена разлика е што кодовите за состојбите кај бројачите се однапред познати. Пример 5.10: Да се изврши синтеза на бројач по модул 4 кој во зависност од влезниот сигнал x брои во две насоки. Ако x=1 бројачот се зголемува за еден, а ако x=0 се намалува за еден. За реализација на бројачот да се користат D флип-флопови и логички порти. Бројачот е multimode бидејќи покрај такт сигналот постои и влез x. Табелата на состојби за бројачот се определува од поставените барања. За влез x=0 бројачот треба да се декрементира, а за x=1 треба да се инкрементира. Табелата на состојби е претставена на сликата 5.68.

Page 269: digitalna logika

260 Дигитална логика

Q1Q2

x =0 x =1 D1D2 D1D2

0 0 10 01 0 1 00 11 1 1 01 10 1 0 11 00

слика 5.68: Табела на состојби за бројачот од пример 10

Може да се забележи дека состојбите се кодирани со Грејов код. На сликата 5.69 е претставен дијаграмот на состојби, кој претставува Мурова машина.

слика 5.69: Дијаграм на состојби за бројачот од пример 5.10 Карноовите мапи на побудните функции се претставени на сликата 5.70. Со минимизација за побудните функции се добиваат следните

изрази: D Q x Q x Q x1 2 2 2= + = ⊕ и D xQ xQ Q x2 1 1 1= + = ⊕ .

слика 5.70: Карноови мапи за побудните функции од пример 5.10

Реализацијата на бројачот е претставена на сликата 5.71. Бројачот е синхрон бидејќи сите флип-флопови се тригерираат со такт сигналот.

D2 x

Q1Q2

0 1 00 1 01 1 11 1 10 1

D1 x

Q1Q2

0 1 00 1 01 1 11 1 10 1

Page 270: digitalna logika

5. Секвенцијални кола 261

Тоа значи дека сите флип-флопови истовремено ја менуваат состојбата.

слика 5.71: Имплементација на синхрон бројач по модул 4

Page 271: digitalna logika

262 Дигитална логика

5.8 Примери

1. Дадена е табела на состојби на LG флип-флоп. а) Да се напише скратената табела на премини на лечот. б) Да се изведе карактеристичната функција на LG леч, односно изразот за Q+ во зависност од влезовите L и G и претходната состојба Q. в) Да се реализира лечот со помош на Т флип-флоп и дополнителни порти.

L G Q Q+ 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1

а) L G Q+ 0 0 Q 0 1 0 1 0 Q 1 1 1

б) GQ

L 00 01 11 10

0 1 1 1 1 1

LGQGQ +=+

в) L G Q Q+ T 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0

Page 272: digitalna logika

5. Секвенцијални кола 263

GQ

L 00 01 11 10

0 1 1 1

QLGGQLT +=

QT

G

L

Q

2. Да дена е табела на состојби на LM леч. а) Да се напише скратената табела на премини на лечот. б) Да се изведе карактеристичната функција на LM леч, односно изразот за Q+ во зависност од влезовите L и M и претходната состојба Q. в) Да се реализира лечот со помош на D флип-флоп и дополнителни порти.

L M Q Q+ 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0

a) L M Q+ 0 0 0 0 1 0 1 0 1 1 1 Q

б) MQ

L 00 01 11 10

0 1 1 1 1

Page 273: digitalna logika

264 Дигитална логика

QLMLQ +=+ в)

L M Q Q+ D 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0

MQ

L 00 01 11 10

0 1 1 1 1

QLMLD +=

QD

M

L

Q

3. Со користење на бројач по модул 16 и логички порти по избор да се конструира бројач по модул 9.

Q0 Q1J0 Q2J1 J2

Takt

1

Q3J3

Q0 Q1 Q2 Q3

K0 K1 K2 K3R R R R

Page 274: digitalna logika

5. Секвенцијални кола 265

4. Да се дизајнира синхрон бројач со користење на D флип-флопови кој на излез ја дава секвенцата 0, 2, 4, 6, 8, 10, 12, 14, 0, 2 ...

Q1Q2Q3Q4 Q1

+Q2+Q3

+Q4+

0 0 0 0 0 0 0 1 0 1 0 0 0 1 b b b b 2 0 0 1 0 0 1 0 0 3 0 0 1 1 b b b b 4 0 1 0 0 0 1 1 0 5 0 1 0 1 b b b b 6 0 1 1 0 1 0 0 0 7 0 1 1 1 b b b b 8 1 0 0 0 1 0 1 0 9 1 0 0 1 b b b b

10 1 0 1 0 1 1 0 0 11 1 0 1 1 b b b b 12 1 1 0 0 1 1 1 0 13 1 1 0 1 b b b b 14 1 1 1 0 0 0 0 0 15 1 1 1 1 b b b b

Q1Q2

D1 Q3Q4

Q1Q2

D2 Q3Q4 00 01 11 10 00 01 11 10

00 b b 00 b b 1 01 b b 1 01 1 b b 11 1 b b 11 1 b b 10 1 b b 1 10 b b 1

Q1Q2

D3 Q3Q4 00 01 11 10

00 1 b b 01 1 b b 11 1 b b 10 1 B b

21313211 QQQQQQQD ++= 32322 QQQQD +=

33 QD = 04 =D

Page 275: digitalna logika

266 Дигитална логика

5. Да се дизајнира синхрон бројач со користење на D флип-флопови кој на излез ја дава секвенцата 0, 1, 2, 9, 10, 11, 12, 13, 14, 15, 0, 1, ...

Q3Q2Q1Q0 Q3

+Q2+Q1

+Q0+

0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 2 0 0 1 0 1 0 0 1 3 0 0 1 1 b b b b 4 0 1 0 0 b b b b 5 0 1 0 1 b b b b 6 0 1 1 0 b b b b 7 0 1 1 1 b b b b 8 1 0 0 0 b b b b 9 1 0 0 1 1 0 1 0

10 1 0 1 0 1 0 1 1 11 1 0 1 1 1 1 0 0 12 1 1 0 0 1 1 0 1 13 1 1 0 1 1 1 1 0 14 1 1 1 0 1 1 1 1 15 1 1 1 1 0 0 0 0

Q1Q2

D3 Q3Q4

Q1Q2

D2 Q3Q4 00 01 11 10 00 01 11 10

00 b 1 00 b 01 b b b b 01 b b b b 11 1 1 1 11 1 1 1 10 b 1 1 1 10 b 1

0123133 QQQQQQD ++= 012023122 QQQQQQQQD ++=

Q1Q2

D1 Q3Q4

Q1Q2

D0 Q3Q4 00 01 11 10 00 01 11 10

00 1 b 00 1 b 1 01 b b b b 01 b b b b 11 1 1 11 1 1 10 b 1 1 10 b 1

013011 QQQQQD += 00 QD =

Page 276: digitalna logika

5. Секвенцијални кола 267

6. Со декодер 4/16 и кодер 16/4 да се реализира конвертор од вишок 3 во (1,2,4,6) код.

децимална цифра вишок 3 (1,2,4,6) код a b c d x y z w

0 0 0 1 1 3 0 0 0 0 0 1 0 1 0 0 4 1 0 0 0 8 2 0 1 0 1 5 0 1 0 0 4 3 0 1 1 0 6 1 1 0 0 12 4 0 1 1 1 7 0 0 1 0 2 5 1 0 0 0 8 1 0 1 0 10 6 1 0 0 1 9 0 0 0 1 1 7 1 0 1 0 10 1 0 0 1 9 8 1 0 1 1 11 0 1 0 1 5 9 1 1 0 0 12 1 1 0 1 13

0

b

12345

6

789

1011

121314

15

a

d

c

12345

6

789

1011

121314

15

0

y

x

w

z

7. Да се дизајнира синхроно секвенцијално коло со еден влез и еден излез, кое на излез генерира вредност 1, секогаш кога последните 4 влезни симболи кореспондираат на бинарен број кој е делив со 3. На располагање се декодер 4/16, D флип-флопови и логички порти по потреба.

Page 277: digitalna logika

268 Дигитална логика

Q1

LSB

Q1

Q2

Q2

D1 Q3

Q3

D2 D3

x

C

MSB

Q4

Q4

D4

0123456789101112131415

z

Page 278: digitalna logika

5. Секвенцијални кола 269

5.9 Задачи

1. Да се конструира табела и граф на состојби за синхроната секвенцијална мрежа дадена на следна слика

2. Да се конструира табела и граф на состојби за синхроната секвенцијална мрежа дадена на следна слика

3. Да се дизајнира секвенцијална машина која претставува генератор за бит на непарна парност. Машината додава контролен бит к=1 на порака од 3 податочни битови ако пораката има парен број на единици и к=0 ако пораката има непарен број на единици.

Page 279: digitalna logika

270 Дигитална логика

4. Да се минимизира табелата на состојби

тековна состојба

влез x =0 x =1

A A,0 C,0 B D,1 A,0 C F,0 F,0 D E,1 B,0 E G,1 G,0 F C,0 C,0 G B,1 H,0 H H,0 C,0

5. Да се имплементира секвенцијално коло со два влеза x1 и x2 и еден излез z, зададено со следната табела на состојби: Да се користат JK флип-флопови. 6. Со користење на D флип-флопови да се дизајнира бројач кој на излез ја дава секвенцата: 0, 2, 4, 6, 8, 10, 12, 14, 0, 2, 4, 6, 8, 10 ... 7. Со користење на D флип-флопови да се дизајнира бројач по модул 6 кој се инкрементира за 1 кога влезот x=0, а се декрементира за 1 кога влезот x=1. 8. Со користење на D флип-флопови и НИЛИ порти да се конструира шема за секвенцијалното коло зададено со функциите на побуди и излези: J xQ1 2= , K xQ1 2= , J x Q x Q2 1 1= + +( )( ) , K x Q x Q2 1 1= + +( )( ) z Q1 2= и z Q2 1= . 9. Да дена е табела на состојби на LM леч. а) Да се напише карактеристичната функција на LM леч. б) Да се реализира лечот со помош на SR леч.

Q1Q2 x1x2,z

00 01 10 11 0 0 1 0,0 1 1,0 0 0,1 1 1,0 0 1 1 0,1 1 1,0 0 0,1 1 1,1 1 0 0 0,0 0 1,1 0 0,1 0 1,0 1 1 0 0,1 0 1,0 0 0,1 0 1,1

Page 280: digitalna logika

5. Секвенцијални кола 271

L M Q Q+ 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0

10. Со користење на Т флип-флопови да се дизајнира секвенцијална машина со два влеза x1 и x2 и два излеза z1 и z2, зададена со табелата на состојби

Q1Q2 x1x2,z1z2

00 01 10 11 0 0 00,00 01,00 11,00 00,00 0 1 01,00 01,00 11,00 01,00 1 0 10,11 01,11 11,10 10,10 1 1 11,10 01,10 11,10 11,10

Page 281: digitalna logika

Литература

1. Balabanian N., Carlson B.: Digital logic design principles, John Wiley & Sons, New York, 2001 2. Balch M.: Complete digital design: A comprehensive guide to digital electronics and computer system architecture, McGraw-Hill, New York, 2003 3. Mano M., Ciletti D.: Digital design, Prentice Hall, New York, 2007 4. Lazić B., Urošević Z.: Logičko projektovanje računara, Nauka, Beograd, 1994 5. Lazić B., Urošević Z.: Zbirka rešenih zadataka iz logičkoh projektovanja digitalnih sistema, Nauka - Beograd, 1995 6. McCluskey E.: Logic design principles: With emphasis on testable semicustom circuits, Prentice Hall Englewood Clifs, New Jersey, 1986 7. Null L., Lobur J.: The essentials of computer organization and architecture, Jones and Bartlett, Boston, 2003 8. Popović M., Hribšek M.: Zbornik rešenih problema iz impulsne i digitalne elektronike, II deo-Kola sa integrisanim komponentama, Naučna knjiga, Beograd, 1985 9. Tanenbaum A.: Structured computer organization, 3rd edition, Prentice Hall Englewood Clifs, NJ, 1990