You are on page 1of 38

3.

РЕПРЕЗЕНТАЦИЈА И ИМПЛЕМЕНТАЦИЈА
НА ЛОГИЧКИТЕ ФУНКЦИИ
Претходното поглавје се занимаваше со прекинувачката алгебра. Дознавме дека
ентитетите наречени прекинувачки променливи се поврзани со многу
прекинувачки операции со помош на најразлични нивни комбинации, наречени
прекинувачки или логички изрази. Видовме дека прекинувачките функции можат
да бидат претставени со еден или повеќе изрази.
Да претпоставиме дека променливите ги интерпретираме како сигнали. Тогаш
прекинувачкиот израз E ( x1 , x2 ,..., xn ) може да биде интерпретиран како операции
извршени над влезни сигнали xi , давајќи излезен сигнал во согласност со изразот.
Како што беше накратко опишано во претходното поглавје, основната цел е
имплементирање на прекинувачките изрази со помош на физички кола и хардвер.
Прекинувачката функција може да биде имплементирана од страна на хардверот,
бидејќи можеме да ја претставиме со помош на многу различни изрази. Некои
хардверски компоненти можат да бидат попогодни од други, поефтини,
поедноставни, побрзи или да имаат помала потрошувачка на енергија. Со овие
барања ке се запознаеме во следното поглавје.
Ова поглавје ги истражува алтернативните методи за изразување на логичките
функции: геометриски, алгебарски и табеларни методи. Ќе се запознаеме со
пристапите за конверзија на изразите во поедноставни форми, но претходно ќе
научиме што значи “поедноставно“. Ќе дискутираме и за имплементацијата на
логичките функции во примитивните порти на поедноставните интегрирани кола.
Пошироки имплементации во MSI и LSI колата ќе бидат претставени во наредното
поглавје.

3.1 МИНТЕРМ И МАКСТЕРМ ЛИСТИ


Како што беше дефинирано во претходното поглавје, прекинувачка функција со n
променливи е доделување на бинарни вредности на секоја од 2n комбинации од
вредности на n променливи. Прекинувачката функција е целосно определена со
нејзината табела на вистинитост. Но табелата на вистинитост може да има голем
број на редици и колони- на пример 16 редици и 5 колони за 4 променливи. Она
што ни е потребно е поедноставна процедура за добивање на прекинувачките
функции.

Декаден код xyz f Минтерм Макстерм


0 000 0 x’y’z’ x+y+z
1 001 1 x’y’z x+y+z’
2 010 0 x’yz’ x+y’+z
3 011 1 x’yz x+y’+z’
4 100 1 xy’z’ x’+y+z
5 101 0 xy’z x’+y+z’
6 110 0 xyz’ x’+y’+z
7 111 0 xyz x’+y’+z’

Слика 1 Табела на вистинитост за дадена функција f

1
Ќе започнеме со следниов пример на прекинувачка функција, претставена со
следниов израз:
f ( x, y , z ) = ( x '+ y ' z ' )( z '+ xy ' )

Овој израз може да биде претворен во неканонична форма сума-од-производи со


примена на дистрибутивниот закон и други Булови правила, а потоа и во
канонична форма. Направете го тоа, а потоа споредете го добиениот резултат со
следниов:

f = x ' z + xy ' z ' = x ' z ( y + y ' ) + xy ' z ' = x ' y ' z + x ' yz + xy ' z '

Секој собирок од конечната форма е минтерм. Секој минтерм ина вредност 1 за


одредена комбинација на вредностите на променливите. Според тоа, функцијата
добива вредност 1 за три различни комбинации на вредности за променливите:
001, 011 и 100, прикажано на табелата на вистинитост на слика 1. (Привремено
игнорирајте ги последните две колони; тие не се дел од оваа табела на
вистинитост, но се додадени за некоја следна потреба.)

Минтерм листа и форма сума-од-производи

Очигледно е дека табелата на вистинитост содржи голем број на непотребни


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

f ( x, y, z ) = ∑ (1,3,4)

Ваквата репрезентација на дадена функција се нарекува минтерм листа.


Симболот за сума значи дека се додаваат минтермите претставени со нивните
декадни вредности. Кога прекинувачкиот израз е даден во некоја форма, еден
начин на определување на минтерм листата е со претходно правење на табела
на вистинитост и потоа запишување на минтерм листата со проверка.
Алтернативно, дадениот израз може најпрвин да биде претворен во канонична
форма сума-од-производи, а потоа минтермскиот број кој одговара на секој
минтерм се добива со претворање на бинарниот број кој го претставува тој
минтерм во декадна форма. Така, за четири променливи, минтермот ABC’D’ ја
добива вредноста 1 за комбинацијата 1100, или децимално 12.
Обратното е исто така возможно. Ако е дадена минтерм листа, може да биде
добиен минтермот кој одговара на секој минтерм број. Сумата од сите вакви
минтерми ја претставува каноничната форма сума-од-производи. Да ја земеме
следнава минтерм листа:

f ( A, B, C ) = ∑ (2,3,5,7)

Минтерм бројот 5 има вредност 1 за комбинацијата 101, која одговара на


минтермот A’BC’, а истата постапка важи и за останатите минтерми.

2
Општо, минтермот може да биде означен како mi , каде i е минтерм бројот. (Ја
користиме малата буква m, бидејќи станува збор за минтерм.) За функција од три
променливи, тоа би изгледало вака: A’BC’= m2 . Каноничната форма сума-од-
производи на функцијата чија минтерм листа е дадена во претходниот израз,
може да биде запишана на следниов начин:

f ( A, B, C ) = m2 + m3 + m5 + m7

Вежба 1 Дадена беше табела на вистинитост за функцијата f1 на слика 5 во


поглавјето 2. Напишете три репрезентации на оваа функција: со минтерм листа,
со сумирање на соодветните mi и сумирање на дадените минтерми.
Одговор: f1 = ∑ (1,3,6,7) = m1 + m3 + m6 + m7 = x' y ' z + x' yz + xyz'+ xyz

Макстерм листа и форма производ-од-суми

Заради принципот на дуалност, она што беше направено во претходниот пример


во однос на сумата на производи, минтермите и минтерм листите, може да биде
направено и во облик на производ-од-суми, макстерми и макстерм листи.
Прекинувачката функција може да биде определена со специфицирање на
нејзините вредности 1. Исто така може да биде определена и со вредностите 0,
т.е. комбинација на вредности за променливите за кои вредноста на функцијата е
0. На табелата на вистинитост од слика 1, функцијата е 0 за пет комбинации на
вредности на променливите: 0, 2, 5, 6, 7. (Потврди!) Макстермите кои одговараат
на овие редици од табелата се 0 за одредени вредности на променливите. Значи,
производот на овие пет макстерми ќе биде 0. Симболично, функцијата може да
биде претставена на следниов начин:

f ( x, y, z ) = ∏ (0,2,5,6,7)

Оваа претстава на функцијата се нарекува макстерм листа. Симболот за


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

Како што минтермот симболично беше претставен со mi , така макстермот се


претставува со M i . (Голема буква М бидејќи се работи за Макстерм.) Претходната
канонична форма сума-од-производи може да се запише како:

f = M 0M 2M 5M 6M 7

Вежба 2 За табелата на вистинитост од вежба 1, напиши три репрезентации за


функцијата: со макстерм листа, симболично, употребувајќи соодветно M i и со
множење на дадените минтерми.
Одговор: f1 = ∏ (0,2,4,5) = M 0 M 2 M 4 M 5 = ( x + y + z )( x + y '+ z )( x'+ y + z )( x'+ y + z ' )

3
3.2 ЛОГИЧКИ МАПИ
Во предходниот дел покажавме како едноставните симболички изрази, минтерм и
макстерм листите кои претставуваат каконична форма на сума-од-производи и
производ-од-суми, можат да бидат запишани за која било функција. Но,
каноничните форми содржат голем број на литерали, па затоа може да се
групираат со цел тој број да се намали. Сега ќе опишеме геометриски начин на
претставување на прекинувачките изрази, како подготовка за методот на
поедноставнување на истите.

Логичка и геометриска блискост

Ако е даден каноничен израз сума-од-производи, би било корисно применувањето


на метод кој ќе го поедностави изразот, но притоа не ја менува неговата вредност.
Ова се постигнува со групирање на два или повеќе собироци во еден собирок. Ако
ги земеме минтермите wxyz и wxy ' z и ги собереме се добива минтермот wxz , кој е
поедноставена форма на збирот. Потребно ни е име за опишување на
поврзаноста на ваквите минтерми. Да ја воведеме следнава дефиниција:

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


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

Во израз со три променливи со влезна комбинација 110 и 111, променливите се


логички блиски бидејќи се разликуваат само за една битова позиција, последната.
Целта сега е да создадеме геометриска репрезентација на функцијата. Ќе видиме
дека ваквата комбинација е корисна за наоѓање минимални сума-од-производи и
производ-од-суми.
Да започнеме со функција од две променливи, x и y. Шемата за геометриската
репрезентација е прикажана на слика 2а. За да ја комплетираме шемата потребно
е да го определиме распоредот на x и y. Постојат четири можности, но да ги
распределиме како на слика 2б. (Размислете за останатите можности.) За овој
распоред на вредностите на x и y , можните xy комбинации се прикажани во
ќелиите на слика 2в. Забележуваме дека комбинациите за x и y во секоја колона и
редица се логички блиски. Но, забележете дека двете ќелии во секоја редица и
колона се и физички блиски, т.е. геометриски блиски.

x x
0 1 0 1
y 0 y 0 00 01
1 1 10 11

(а) (б) (в)

Слика 2 Геометриска репрезентација на функција од две променливи.


(а) Мапа, (б) x и y вредности, (в) координати

4
x x x
0 1 xy 0 1 0 1
z 0 00 000 100 00 000 100
yz 1 yz 01 001 101 yz 01 001 101
10 010 110 11 011 111
11 011 111 10 010 110

(а) (б) (в) (г)

Слика 3 Геометриска структура за случај со три променливи

Сега да претпоставиме дека распоредот на вредностите за x и y е обратен (10


наместо 01). Резултатот ќе остане ист, т.е. ќелиите во секоја редица и колона ќе
бидат геометриски и логички блиски. (Потврдете го ова тврдење.)
На сликите 3а и 3б е илустрирана можната комбинација на три променливи –
една поставена хоризонтално, а другите две вертикално и обратно. Во оваа книга
ќе ја среќаваме комбинацијата на слика 3а. Во случајот со две променливи не
беше важно која променлива на која оска се наоѓа, но овде тоа прави голема
разлика. Првата координата ја поврзавме со колоните, додека последните две со
редиците, но може и обратно.
Да претпоставиме дека двете променливи yz од слика 3а се запишани со BCD
код како на слика 3в. Очигледно е дека секои две ќелии во редиците се
геометриски блиски. Со проверка се забележува дека се и логички блиски. (Види
ја слика 3в за да дојдеш до одговор, а потоа провери во фуснотата) 1
Неблискоста помеѓу втората и третата редица е како резултат на одбирањето
на BCD за запишување на yz вредностите. Забележуваме дека yz вредностите во
третата и четвртата редица се меќусебно заменети(10 со 11) со што се добива и
геометриска и логичка блискост. Резултат на оваа смена е прикажан на слика 3г.
Овој код се нарекува Грејов код.
Во праксата често се среќава индетификување на ќелиите со нивните декадни
еквиваленти. Броевите се запишуваат во аголот на секоја ќелија, но така да
зафаќаат помал простор, бидејќи и други вредности кои ќе ја опишуваат
функцијата ќе бидат запишани во ќелиите. Овие мали броеви се токму
минтерските броеви.
Да забележме дека на слика 3г најгорните ќелии се логички блиски со
најдолните, но се чини дека не се и геометриски блиски. Оваа аномалија може да
биде објаснета. Да замислиме изработување на мапа на парче хартија, притоа
употребувајќи го целиот простор, а потоа превиткување на хартијата во вид на
вертикален цилиндар, со мапата од надворешната страна. Она што беше во
најдолната редица сега ќе е геометриски блиско со она што се наоѓаше во
најгорната редица. За секоја вредност на x(т.е. за секоја колона), геометриски
блиските ќелии ќе бидат и логички блиски!

Распоредот на променливите е избран така да кои било две геометриски


блиски ќелии бидат и логички блиски.

1
Во секоја колона две геометриски блиски ќелии се и логички блиски, освен оние во втората и
третата редица.

5
Да ја земеме на пример ќелијата 001(декадно 3) на слика 3г. Логички блиските
ќелии се добиени со замена на секој бит со неговиот комплемент, т.е.:

111 (декадно 7)
001 (декадно 1)
010 (декадно 2)

Од сликата се забележува дека оние ќелии се и геометриски блиски на 001.


Геометриската структура во која две геометриски блиски ќелии се и логички
блиски се нарекува логичка мапа 2 .

Декаден код x y z f
x x
0 000 0
0 1 0 1
1 001 1
00 00 1
2 010 0
yz 01 yz 01 1
3 011 1
4 100 1 11 11 1
5 101 0 10 10
6 110 0
7 111 0
(а) (б) (в)

Слика 4 (а) вистинитосна табела, (б) геометриска структура,


(в) репрезентација на функцијата f = ∑ (1,3,4)

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


Таа повторно е прикажана на слика 4а, а нејзината логичка мапа за структура од
три променливи на слика 4б, каде за вертикалните променливи се употребува
Грејовиот код. Логичката мапа за самата функција е на слика 4б и има три
единици кои одговараат на самите минтерми. Секој минтерм од функцијата
одговара на една ќелија од мапата за која функцијата има вредност 1. Една ќелија
е најмалата единица која ја сочинува мапата.
Во секоја ќелија да ја внесеме вредноста на функцијата дадена во табелата на
вистинитост. Дали е навистина потребно да ги внесуваме и вредностите 1 и
вредностите 0. Ако се внесени само вредностите 1, оние ќелии во кои не се
внесени вредности ја добиваат вредноста 0. Во логичката мапа на слика 4в се
внесени само единиците. Секој минтерм од функцијата на оваа мапа одговара на
една ќелија со вредност 1.

Вежба 3 Употребувајќи логичка мапа со три променливи, објасни го терминот


„макстерм“ со помош на ќелиите кои содржат вредност 0.

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


променливи. Најпрвин да преминеме на функција со четири променливи, притоа
очекувајќи дека мапата ќе има две променливи на секоја оска. Ако ги земем
променливите w,x,y,z ќе очекуваме 2*2 логичка мапа(wx за определување на
колоните, а yz за определување на редиците). Како и претходно, на wx и yz ќе им
доделиме вредности во согласност со Грејовиот код.

2
Се нарекува и Карноова мапа, по името на Maurice Karnaugh, кој прв ја предложил во 1953 год.

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

(а) (б)

Слика 5 Логичка мапа со четири променливи за f = ∑ (1,3,7,9,11,14,15).

ПРИМЕР 1

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


консруира логичка мапа за оваа функција.

f ( w, x, y, z ) = ∑ (1,3,7,9,11,14,15)

Структурата на мапата со четири променливи, со Грејов код за вредностите на


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

Ако ја нацртаме мапата на парче хартија и ја превиткаме во вид на цилиндар, ќе


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

wx wx
00 01 11 10 00 01 11 10
00 0 4 12 8 16 20 28 24
yz 01 1 5 13 9 17 21 29 25
11 3 7 15 11 19 23 31 27
10 2 6 14 10 18 22 30 26
v=0 v=1

(а) (б)

Слика 6 Мапа за структура со пет променливи

Структурата на мапа со пет променливи е дадена на слика 6. Таа се состои од две


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

7
Вежба 4 Лоцирај ја ќелијата со минтерм 01011 на мапата и одреди ги минтерм
броевите на петте ќелии со кои оваа ќелија е логички блиска.
Одговор: Добиете ги со заменување на секој бит со неговиот комплемент.

Мапата со шест променливи ќе се состои од две мапи со пет променливи


наредени една врз друга. За горната мапа, првата променлива ќе добие вредност
0, додека за долната мапа таа вредност ќе биде 1 или обратно. Ваквата шема ќе
биде повторена и за останатите мапи од повисок ред.

Коцки од ред k

Сега ќе го објасниме она што беше започнато во пример 1 и илустрирано на


мапата од слика 5б, а повторено на слика 7а. Минтермите m 3 и m 7 се логички
блиски. Сумата на овие минтерми е:

w' x ' yz + w' xyz = w' yz ( x + x ' ) = w' yz

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


x + x'= 1 . Групирањето на овие минтерми е прикажано на слика 7а.

а) (б) (в)

Слика 7 Групирање на минтерми на мапа

Слично групирање може да се направи и со минтермите m 11 и m 15 , па се добива:


wx ' yz + wxyz = wyz . Ова групирање е прикажано на слика 7б. Резултатите од двете
групирања се разликуваат само во еден комплемент за едниот од членовите. Ако
ги собереме го добиваме следниов резултат:

w' yz + wyz = yz

Резултатот е редуциран израз на групирањето на четирите минтерми кои се


наоѓаат во иста редица што е прикажано на слика 7в.

Вежба 5
а. Претходниот пример покажа како се групираат четири минтерми кои се
блиски во парови и се комбинирани во коцка од втор ред. Постои уште еден начин

8
на групирање на овие минтерми во парови, кој на крај ја дава истата коцка од втор
ред . Пронајдете ги овие два парови.
б. Мапата на слика 7 содржи уште четири други минтерми, покрај претходното
опишаните, кои се блиски по парови и формираат коцка од втор ред. Означете ги
двата соодветни парови (со правоаголници) и запишете поедноставен израз за
нивна сума. Повторете го истото со другите два парови и потврдете дека
конечниот резултат е идентичен.
в. Постои уште еден пар на блиски минтерми. Означете го на мапата и
запишете поедноставен израз за сумата на двата минтерми.
Одговор: (а) 0111 и 1111 заедно формираат xyz ; 0011 и 1011 формираат x' yz , а
комбинирани даваат yz .
(б) {m1 , m3} и {m9 , m11} ; ( w' x ' y ' z + w' x' yz ) + ( wx ' y ' z + wx ' yz ) = x ' z . Блискоста
на паровите е покажана со цртање на линија во табелата која ги поврзува. Уште
една можност е поврзувањето на {m1 , m9 } и {m3 , m11} , а потоа групирање на двете
3-коцки.
(в) {m14 , m15 } ; wxyz + wxyz ' = wxy . Мапата е дадена на следната слика.
wx
00 01 11 10
00

yz 01 1 1
11 1 1 1 1
10 1
Дел од одговорот на вежба 5

Ова што беше претставено во претходниот пример може да биде


генерализирано. Функцијата од n променливи може да има вредност 1 во некои
ќелии од логичката мапа и вредност 0 во други. За да правиме разлика помеѓу
ќелиите, да ги именуваме како ќелии-1 и ќелии-0, соодветно. Потпирајќи се на
претходниот пример, ќе ја направиме следнава дефиниција:

Множество од 2 k ќелии-1, од кои секоја е блиска со k ќелии од множеството,


е наречено коцка од ред k, или k-коцка. Се смета дека k-коцката ја покрива
секоја од 2 k ќелиите.

Да се вратиме на слика 7в и да ја применеме оваа дефиниција. Множеството


{14,15} е 1-коцка (има 2= 21 ќелии, па k=1). Множествата {3,7,11,15} и {1,3,9,11} се
2-коцки. Забележете дека во 2-коцката {3,7,11,15} има 1-коцки: {3,11}, {3,7}, {7,15} и
{11,15}. Но, бидејќи овие 1-коцки се целосно покриени со 2-коцката, тие не
влегуват во конечниот израз.

Вежба 6 Напишете ја сумата на прекинувачкиот израз кој одговара на 2-коцката


{3,7,11,15} и на 1-коцките кои ја сочинуваат: {3,11}, {3,7}, {7,15} и {11,15}. Наведете

9
кој прекинувачки закон овозможува поедноставување на изразот, а потоа
поедноставете го.
Одговор: Законот за апсорпција.

ПРИМЕР 2

Дадена е функција со следнава минтерм листа: F = ∑ (2,4,6,9,10,11,12,13,15)


а. Конструирајте логичка мапа.
б. Наведете ги сите k-коцки.
в. Наевдете ги сите k-коцки кои не се препокриени со некои повисоки k-
коцки.
г. Наведете минимално множество од k-коцки кои ги прекриваат сите 1-
ќелии најмалку еднаш. Повторете го ова за сите минимални множества кои
ќе ги најдете.
Одговор:

а. Мапата со четири променливи е прикажана на слика 8.


б. Започнете со најмалиот минтерм број, направете ги сите 1-коцки
формирани од највисоките минтерм броеви. Повторете го ова со секој
нареден минтерм број. Направете 2-коцки на истиот начин, а потоа
избришете ги сите 1-коцки кои ги направивте претходно. Коцки од повисок
ред се прават на ист начин. Резултат: {2,6}, {2,10}, {4,6}, {4,12}, {10,11},
{12,12}, {9,11,13,15} и 1-коцките {9,11}, {9,13}, {11,15}, {13,15}, кои се
покриени од 2-коцките.

(а) (б) (в)

Слика 8 Мапа на функцијата f = ∑ (2,4,6,9,10,11,12,13,15) и нејзините к-коцки.

в. Сите, без последните четири од одговорот б.


г. Покрај 2-коцките кои ги покриваат сите непарни минтерми, 1-коцките се
потребни за да ги покријат останатите пет минтерми, сите парни:
2,4,6,10,12. Две 1-коцки не можат да покријат пет минтерми, па затоа се
потребни најмалку три 1-коцки. Две од нив мора да покриваат два различни
парни минтерми. Покрај 2-коцките, има четири различни комбинации на три
1-коцки кои го прават истото. Две од множествата на k-коцки кои ги
покриваат сите минтерми се заокружени на слика 8б. Секоја од овие четири
можности ќе има ист број на членови. Потврдете го ова и напишете ги
четирите изрази.

10
3.3 МИНИМАЛНА РЕАЛИЗАЦИЈА НА ПРЕКИНУВАЧКИТЕ ФУНКЦИИ
Претходниот пример претставува случај во кој со употреба на логичка мапа,
можат да се добијат четири различни прекинувачки изрази кои претставуваат иста
функција и секој од нив има ист број на членови и ист број на променливи во
членовите. Не е возможно да се поедностави добиениот израз со изоставање на
некој член или со елиминирање на променлива во него, без претходно
променување на логичката вредност на функцијата.

Нередуцирачки и минимални изрази

Врз основа на претходниот параграф можеме да го дефинираме следново:

Изразот сума-од-производи е нередуцирачки ако елиминирањето на член или


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

Уште една дефиниција произлегува при споредување на различни изрази кои


претставуваат дадена функција:

Изразот сума-од-производи, еквивалентен со дадена функција е минимален


ако има најмал број членови од сите такви еквивалентни изрази. Ако постојат
повеќе такви изрази, тогаш минимален е оној со најмал број на променливи.

Во примерот 2 сите четири изрази имаат ист број на членови и ист број на
литерали во членовите. Затоа сите се минимални изрази. Ова покажува дека
постоењето на минимален израз кој претставува дадена функција не секогаш
значи дека тој израз е единствен.
Дали е можно изразот да биде минимален, но не и нередуцирачки? Погледнете
ги подобро двете дефиниции. Претпоставете дека изразот е минимален, но може
да биде редуциран со елиминирање на член или променлива во членот. Ова е
контрадикторно, бидејќи ако постои можност за редуцирање, тоа би значело дека
изразот не е минимален. Заклучокот е: ако изразот е минимален, тогаш тој е и
нередуцирачки.
Дали важи спротивното? Дали е можно изразот да биде нередуцирачки, но не и
минимален? Дефиницијата за нередуцирачки израз не кажува ништо за бројот на
членови во изразот. Значи, нема причина зошто еден нередуцирачки израз да
биде и минимален.

Вежба 7 Вратете се на примерот 2 и запишете ги изразите кои ги вклучуваат


2-коцките и следниве 1-коцки: {2,6}, {4,6}, {10,11} и {12,13}. Дадете аргументи дека
овие изрази се нередуцирачки, но не и минимални.
Одговор: Изразот кој ги содржи петте членови не е минимален, бидејќи
претходниот минимален израз имаше четири члена. Изразот е нередуцирачки
бидејќи секоја од петте коцки вклучува минтерм кој не е вклучен во ниедна друга
коцка.

11
Примарни импликанти

Концептите за минимални и нередуцирачки изрази, како и за прекривање на коцки


од ред k ќе бидат формализирани и проширени до воопштени прекинувачки
изрази. Концептот на препокривање, може да биде проширен на следниов начин:

Прекинувачка функција f1 препокрива друга прекинувачка функција, f 2 , ако за


f 2 =1 се добива f1 =1.

Претпоставете дека функцијата f = xy ' z + wyz '+ wx ' y + xz ' и функцијата


g = wx ' y + xz ' . Кога g = 1 , тогаш f = xy ' z + wyz '+1 . Значи f ја препокрива g .
Во изразот сума-од-производи, очигледно е од овој пример дека кога едниот од
членовите е 1, тогаш и самиот израз има вредност 1. Ова значи дека сумата-од-
производи го препокрива секој член-производ во даден израз.

Ако функцијата f препокрива производ од променливи, тогаш производот од


променливи го имплицира f или е импликант на f .

Во претходниот пример, првиот член, xy ' z , е производ од променливи. Кога овој


член добива вредност 1, тогаш и самата функција има вредност 1. Значи f го
препокрива членот xy ' z и со новата терминологија, xy ' z е импликаннт на f .
Производот од променливи може да биде минтерм, или може да претставува
k-коцка која препокрива 2 k минтерми. Бидејќи k-коцката ја препокрива секоја од
2 k ќелиите кои ја прават k-коцката, секоја таква ќелија е импликант на k-коцката.
Како илустрација да се вратиме на примерот 2 во претходниот дел. Во него
2-коцката {9,11,13,15} ја препокрива секоја од 1-коцките {9,11}, {9,13}, {11,15},
{13,15}. Секоја 1-коцка, пак, ги препокрива нејзините два минтерми. Изразот кој ја
претставува функцијата е: f = wz + xy ' z '+ w' yz '+ wx ' y + wxyz .
Секој од производите на десната страна е импликант на f . Членот со две
променливи претставува 2-коцка, членовите со три променливи претставуваат
1-коцка, додека последниот член е минтерм. Ако претпоставиме дека x е
избришан од членот wxyz , она што останува соодветствува на 1-коцката од слика
8, која е препокриена од 2-коцката {9,11,13,15} што претставува wz . И 1-коцката и
2-коцката се импликанти на f . Но постои и разлика меѓу самите импликанти.

Импликантот на функцијата f велиме дека е примарен импликант p ако


бришењето на кој и да било литерал од p дава производ на литерали кој не е
импликант на функцијата..

Во претходниот пример, wxyz е импликант, но не и примарен, бидејќи со


отстранување на x или y , или двете, членот повторно останува импликант на
функцијата.
Постои разлика помеѓу импликанти и k-коцки, иако има и поврзаност.
Импликантот е производ на литерали, додека k-коцката е множество од 2 k ќелии
на мапата, каде секоја е блиска со k други ќелии. Секоја ќелија одговара на
минтерм, а збирот од 2 k минтерми кој одговара на k-коцка е импликант. Ако
k-коцката не е препокриена од коцка од повисок ред, тогаш дадениот импликант е
примарен. За да ги најдеме сите примарни импликанти на функцијата, ги

12
лоцираме оние k-коцки на логичката мапа кои не се препокриени од коцки од
повисок ред.

Ако сумата-од-производи на дадена функција е нередуцирачка, тогаш таа е


сума на примарни импликанти.

Вежба 8 Докажете ја претходната теорема, употеребувајќи контрадикција. Тоа


значи: претпоставете дека производот е импликант (секој член во сумата мора да
е импликант), но не и примарен, а потоа дојдете до контрадикција.

к-коцките импликантите

Слика 9 Функција од вежба 8 со к-коцки и соодветните импликанти

Минимален израз сума-од-производи

Процесот на пронаоѓање на минимален израз сума-од-производи кој е


еквивалентен на прекинувачката функција f е следниов:
1. Најдете ги сите примарни импликанти.
2. Најдете го најмалото подмножество на примарни имликанти,
притоа препокривајќи ги сите минтерми.
Останува уште да се илустрира процесот преку неколку примери.

ПРИМЕР 3

Мапата на функцијата прикажана на слика 8 е повторена и на слика 9, но со листа


на сите k-коцки кои не се препокриени од коцки од повисок ред и соодветните
импликанти. Овој пример ќе биде употребен како илуистрација за наоѓање на
минимален израз сума-од-производи кој ја претставува дадената функција.
Секоја k-коцка од листата одговара на примарен импликант. Функцијата има
четири променливи, па 2-коцката одговара на примарен импликант од 4-2=2
литерали, а сите 1-коцки одговараат на примарни импликанти од 4-1=3 литерали.
Ако ги разгледаме дадените k-коцки ќе забележиме дека сите ќелии се појавуваат
во повеќе од една коцка, а само ќелиите 9 и 15 се појавуваат точно во една коцка.

Даден примарен импликант е и неопходен ако препокрива најмалку еден


минтерм кој не е препокриен од друг примарен импликант..

13
Важноста на неопходниот примарен импликант е во тоа што тој мора да
биде вклучен во секој минимален израз кој претставува дадена функција. Поинаку
минтермот кој го претставува нема да биде препокриен.
Процесот за наоѓање на минимален израз е следниов:
1. Идентификувајте ги сите примарни импликанти. Ако тоа множество ги
покрива сите минтерми, задачата е завршена.
2. Најдете го најмалиот број на примарни импликанти кои ги препокриваат
оние минтерми што не се препокриени со неопходните примарни
имппликанти.
3. Ако постои избор во вториот чекор, одберете ги примарните импликанти
со најмалку литерали.

ПРИМЕР 3 (продолжение)

Да се вратиме на примерот каде примерниот импликант wz кој одговара на


2-коцката е неопходен. Тој препокрива четири минтерми (оставајќи само пет да
бидат препокриени од други примарни импликанти), од кои сите поединечно
препокриваат два минтерми. Значи, ќе бидат потребни најмалку три примарни
импликанти, кои ќе го дадат минималниот израз. Во примерот 2, употребувајќи
друг пристап, веќе го најдовме минималниот израз кој содржи четири од оние кои
ги идентификувавме како примарни импликанти.

ПРИМЕР 4

Сленава функција има интересна структура на примарни импликанти:


f ( A, B, C ) = ∑ (0,1,2,3,4,5,7) . Мапата, заедно со листата на 1-коцки и примарни
импликанти е прикажана на слика 10.

Слика 10 Циклична мапа

Постојат шест 1-коцки: {0,4}, {4,5}, {5,7}, {7,3}, {3,2}, {2,0} кои ги претставуваат
примарните импликанти. Тие имаат одредена шема, нагласена со редоследот на
запишување на 1-коцките и нивните соодветни минтерми. Таквата мапа се
нарекува циклична мапа. Секој минтерм се појавува во точно два примарни
импликанти. Значи сите минтерми можат да бидат препокриени од две множества
со три примарни импликанти за секое, без заеднички минтерми:

f = y ' z '+ xz + x ' y = x ' z '+ xy"+ yz

14
Вежба 9 Направете мапа и најдете минимален израз сума-од-производи за
следнава функција:
f = ( A, B, C , D) = ∑ (0,1,2,3,4,8,9,10,14)
Одговор: Постојат пет вакви примарни импликанти, еден одговара на 2-коцка, а
четири одговараат на 1-коцка: {0,2,8,10}, {0,4}, {2,3}, {8,9}, {10,14}. Сите четири
1-коцки се неопходни, па мора да бидат вклучени во минималниот израз. Заедно
тие ги препокриваат сите минтерми, па останатиот примарен импликант не е
потребен, иако има помалку литерали. Минималниот израз е:
f = A' C ' D '+ A' B ' C + AB ' C '+ ACD ' .

Минимален израз производ-од-суми

Поради принципот на дуалност, се што беше направено на изразот сума-од-


производи, може да биде повторено и за изразот производ-од-суми. Забележете
дека идејата за блискост може да се примени и на 0-коцките. Потребните промени
во дефинициите за k-коцките, препокривањето, нередуцирачките изрази,
импликантите и примарните импликанти се очигледни, со очигледни промени во
терминологијата.

Множество од 2 k ќелии, од кои секоја е блиска со k други од


множеството, се нарекува k-коцка и таа ги препокрива сите 2 k ќелии.
Ако функцијата f препокрива сума од литерали, тогаш таа сума ја
имплицира f , или е импликант на f . Импликантот е примарен импликант ако
бришењето на кој и да било литерал резултира во сума на литерали која не е
импликант на f .
Ако изразот производ-од-суми, еквивалентен на функцијата f е
нередуцирачки, тогаш тој мора да биде производ на примарни импликанти.
Примарниот импликант е неопходен ако препокрива најмалку еден макстерм кој
не е препокриен од други примарни импликанти.

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


листа може само малку да се разликува од наоѓањето на минимален израз сума-
од-производи, но сите чекори се идентични.

ПРИМЕР 5

За функцијата чија минтерм листа беше дадена во примерот 2 и логичката мапа


од слика 8а:
а. Напишете израз кој ја претставува функцијата како макстерм листа
б. Одредете метод за наоѓање на листа од сите k-коцки кои не се препокриени
од коцки од повок ред, а потоа запишете ја листата.
в. Запишете го факторот за сума за секој примарен импликант.
г. Запишете го минималниот израз производ-од-суми за дадената функција.
Дали постои повеќе од еден израз?

Одговор
а. Сите коцки на мапата кои немаат вредност 1 мора да добијат вредност 0.
Значи, листата е: ∏(0,1,3,5,7,8,14) = M 0 M 1M 3 M 5 M 7 M 8 M 14

15
б. Еден метод е со соодветно заокружување на нулите на мапата и резултатот
е: {1,3,5,7}, {0,8}, {14}, {0,1}.
в. Факторите во сумата се: ( w + z ' ), ( x + y + z ), ( w'+ x '+ y '+ z ), ( w'+ x'+ y ' ) .
г. Првите три члена во пример 5в се неопходни примарни импликанти и заедно
ги препокриваат сите макстерми. Значи, ќе има само еден таков израз:
f = ( w + z ' )( x + y + z )( w'+ x '+ y '+ z )

Имплементации на две нивоа

Досега се задржавме на добивањето изрази кои претставуваат дадена


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

И-ИЛИ (AND-OR) имплементација

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


прекинувачки променливи. Производот xyz ' е И операција од три променливи, па
може да биде имплементиран од И порта со три влезови.
Целиот израз сума-од-производи е логичка сума од членови-производи.
Логичката сума е имплементирана од ИЛИ порти, па и целиот израз може да биде
имплементиран од ИЛИ порти чии влезови и излези се И порти кои
имплементираат логички производ.
Како пример да го употребиме минималниот израз од вежба 9. Тој се состои од
логичка сума на членови, од кои секој е производ од три променливи. Значи,
изразот може да биде имплементиран од четири И порти со три влезови, чии
излези се влезови во Или порта. Резултатот е прикажан на слика 11.
Не сметајќи ги инверторите, сликата 11 е коло од второ ниво: сите надворешни
сигнали мора да поминат низ две порти од почетниот влез до излезот.
Каноничниот израз сума-од-производи има иста форма како и минималната
сума-од-производи во вежба 9. Значи колото кое го имплементира ќе биде коло со
две нивоа.

Слика 11 Имплементација на функцијата од вежба 9

Вежба 10
а. Употребувајќи ја мапата од слика 8б, запишете го минималниот израз сума-
од-производи според заокружените k-коцки.

16
б. Нацртајте И-ИЛИ коло кое го имплементира овој израз и споредете ги
влезовите во И портите.

НИ (NAND) имплементација

Примитивните порти употребени во претходниот пример се имплементирани од


ниско-интегрираните кола. Имплементацијата би била поедноставена ако се
употребува само еден вид порти.
На колото од слика 11, претпоставете дека сите И порти се заменети со НИ
порти. Резултатот би бил неприфатлив, бидејќи излезот на секоја И порта би бил
инвертиран. Меѓутоа ако направиме уште една инверзија на секој влез од ИЛИ
портата, ќе добиеме идентичен излез како и почетниот. ИЛИ портата со
инвертирани влезови е уште една форма на НИ порта. Следува дека НИ портите
можат да ги заменат сите порти во И-ИЛИ колото.

Слика 12 Имплементација на производ-од-суми

ИЛИ-И (OR-AND) имплементација

Уште една форма во која може да се изрази прекинувачката функција е формата


производ-од-суми. За да имплементираме ваков израз секоја логичка сума ќе биде
имплементирана од ИЛИ порта, а крајниот логички производ ќе биде
имплементиран од И порта.
Како илустрација ќе го употребиме изразот од пример 5:

f = ( w + z ' )( x + y + z )( w'+ x '+ y '+ z )

Овој израз е логички производ од три членови, од кои секој е влез во И порта.
Овие членови се излези од ИЛИ порти, чии влезови пак се литералите во секоја
сума. Конечната имплементација со примитивни порти е прикажана на слика 12.
Ако ја споредиме структурата на ова коло со онаа од слика 1 ќе зебележиме
дека и двете се имплементации на две нивоа.

Вежба 11 Искористете го фактот дека две последователни инверзии на дадена


променлива резултираат во истата променлива, заедно со слика 9 од поглавје 2 и
претворете го колото од слика 12 во НИЛИ коло.

17
3.4 ИМПЛЕМЕНТАЦИЈА НА ЛОГИЧКИТЕ ИЗРАЗИ

Во претходните делови од ова поглавје покажавме различни начини на


претставување на прекинувачките функции, кои што изгледаа „поедноставни“ на
некој начин. Единствените начини на имплементација на логичките функции кои
што беа досега наведени беа колата во две нивоа AND-OR и OR-AND. Бидејки
дадена прекинувачка функција може да се напише со повеќе различни изрази,
нормално би било да може да се имплементира на различни начини. Некои од
нив имаат подобри карактеристики од други.
Еден од факторите во цената на имплементацијата е бројот на порти. Сепак, во
интегралното коло покрај портите учествуваат и врските помеѓу излезната порта и
влезот на портата од следното ниво. Исто така со имплементацијата во две нивоа,
излезната порта има исто толку влезни терминали колку и портите од првото
ниво. Овој број, fan-in, може да биде голем кај некои технологии за интегрални
кола, перформансите на портата со високи , fan-in се разбирливо деградирани.

Вежба 12 Следните шест различни изрази одговараат на една иста


прекинувачка функција.
f ( w, x, y , z ) = ( y + z )( wx + w' x' ) (a)
= y ( wx + w' x ' ) + z ( wx + w' x ' ) (b)
= wx ( y + z ) + w' x ' ( y + z ) (c)
= wxy + wxz + w' x ' y + w' x ' z (d)
= m1 + m2 + m3 + m13 + m14 + m15 (e)
= ( y + z )( w'+ x )( w + x' ) (f)

a. Уверете се дека секој од овие изрази ја претставува истата функција.


b. Претпоставете дека секој од изразите може да се имплементира со AND,
OR и NOT порти. Исто така претпоставете дека и променливите и нивните
комплементи се веќе дадени. Дадете имплементација за секој од изразите.
c. Претпоставете дека сите порти имаат исто задоцнување, t p . Направете
табела, во којашто редовите ќе одговараат на различната имплементација,
а колоните ќе го дават бројот на порти, внатрешни проводници, најголемото
задоцнување од влезот до излезот и најголемото fan-in на која и да било од
портите.

Секој од дадените изрази се состои само од AND, OR и NOT порти. Но, не би


требало да имате проблеми во имплементирањето на изразите. Самите изведете
имплементација за ској израз, пред да ја погледнете слика 13. И покрај тоа што
претходно изведувавме имплементации само во две нивоа на прекинувачките
функции, ние видовме дека секоја порта претставува поедина прекинувачка
операција. Од тука преку двовлезна AND порта се добива излезот. Секој од двата
влеза наизменично претставува излез на двовлезна OR порта. На овој начин се
изведува имплементацијата почнувајки од излезот и одејки наназад . Продолжете
сами!
Предходно во ова поглавје го разгледавме каноничниот облик или
минималнните сума-од-производ или производ-од-сума изрази за дадена
функција. Тие се имплементираат со кола во две нивоа. Како што ќе видите во
следната вежба, возможно е да изведете повеќе слојна имплементација која што
има помалку внатрешни врски и понизок fan-in. Како што изаразите за дијаграмите

18
на колата од (a) до (c) покажуваат, всушност се работи за пронаоѓање на факторот
кој одговара на логичкиот израз.

Вежба 13
a. За да извежбате, разгледајте го изразот на слика 13b. Изведете израз од
секој дел посебно за да добиете еквивалентен израз.
b. Имплементирајте го овој израз. Споредете го бројот на порти со бројот на
внатрешни врски и пропагираното задоцнување преку најдолгата патека со
тие што ги конструиравте вие во вежба 12.

Анализа

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


изрази, опишавме како да се имплементира коло кое ги задоволува наведените
операции. Но, како да знаеме дека не сме направиле грешка и дека добиеното
коло, всушност ги дава бараните излези?
Во физичките кола од кој и да било тип (не само логичките кола), се изведува
процес кој вклучува мерења (на напон, да речеме) во соодветни точки во колото
за да се осигураме дека измерените вредности се такви какви што би требале да
бидат теортетски. Овој процес се нарекува проверка.
Но, зошто да го имплементираме колото физички пред да ја направиме
проверката? Откако ќе го добиеме колото на хартија (или ќе го генерираме
софтверски), можеме да го анализираме колото за да се осигураме дека
логичните вредности добиени во секоја точка се навистина оние вредности кои
што се бараат во спецификациите на дизајнот. Споредено со процесот на
дизајнирање, анализирањето на логичките кола е многу поедноставно. Можеме да
го именуваме излезот од секоја порта. Логичките изрази за овие излези можеда се
запишат во делови во однос на влезовите на тие порти. Секој влез на портата е
или примарен влез или пак излез од некоја друга порта.
Ако овој процес се изведува за излезите од сите порти, евентуално во изразот
за која и да било од излезните порти ќе останат само примарните променливи,
вклучувајќи ги и оние чии што излези се вклучени во колото. Овие изрази се
споредуваат со со дадените информации. Во случај на имплементација во две
нивоа на коло со еден излез, овој поцес е тривиален. Во други случаи во кои
колата имаат повеќе од еден излез, има повеќе работа.
Разгледајте го примерот со колото од слика 13b и нека излезот од левата OR
порта е u. Влезовите во оваа OR порта се излези од двете AND порти од
нејзината лева страна, кои се wx и w’x’ соодветно. Од тука, излезот на оваа OR
порта е u = wx + w’x’. Излезот од колото е излез од OR портата од десно и е
f = yu + zu. Заменувајќи го изразот за u, се потврдува изразот за кој е имплементи-
рано колото.

19
Слика 13 Различни кола кои имплементираат иста функција

20
Карактеристики на колата со логички порти

Во претходното поглавје беа разгледувани следните карактеристики на логичките


кола: fan-in, fan-out, брзина (или пак спротивната вредност - пропагираното
задоцнување) и нивоата на имплементација. Имплементирањето на слика 13 се
однесува на овој поглед. Забележете дека сума-од-производ и производ-од-сума
имплементацијата , било да е во канонична или пак во мимнимизирана форма,
сепак е коло во две нивоа и според тоа има најмало задоцнување во TTL
технологијата. Сепак, каноничната имплементација е најлоша во однос на бројот
на порти. Од нивната структура, сума-од-производ имплементацијата се опишува
со AND-OR кола, додека производ-од-сума имплементацијата со OR-AND кола.
Единствените порти во секоја од имплементациите на слика 13 се AND и OR.
Како што беше напоменато во врска со имплементацијата од слика 11, би било
корисно ако една имплементација се изведе само со еден вид на порти; потоа ќе
бидат потребни SSI пакети само со еден вид на порти. Во второто поглавје
видовме дека NAND портите се универзални, како и NOR портите. Според тоа,
функцијата имплементирана со колата од слика 13 мора да може да се оствари со
кола кои се состојат само од NAND порти или само од NOR порти. Начинот, како
да се изведе ова е со конвертирање на секое од колата од слика 13 во
еквивалентна форма користејќи само NAND или NOR проти. Решението на ова е
слика 9 во второто поглавие, со тоа што знаеме дека вредноста на променливата
не се менува ако ја конвертираме два пати.
Како пример за тоа земете го, сума-од-производ колото од слика 13d. Ставете
инвертирачко топче на секоја од AND портите и израмнете со инвертирање на
соодветните влезови на OR портите. Ова значи дека нема промена во
променливите на ниту една од лините. Со еквиваленцијата прикажана на слика 9
во второто поглавје, сите порти се заменети со NAND порти, без промени на
променливите.

Вежба 14 Потврдете го овој резултат со применување на инволуција и на Де


Моргановата теорема за сума-од-производ изрази.

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


слика 13. На слика 13с, на пример, нема AND порти кои би се искористиле со
влезната OR со цел да изведете двојно инвертирање. Ако ставите инвертирачко
топче на секој од влезовите од таа OR порта, не може да се балансира со
инвертирање на излезите од AND портите, но може да се балансира со
инвертирање на соодветните влезни променливи. Според тоа, сите порти можат
да се заменат со NAND порти, но y и z влезовите мора да се комплементираат.
Тоа не е голема работа ако ни се дадени комплементите од влезовите.

Вежба 15 Слика 13а и 13f се разликуваат од другите по тоа што има AND порта
на излезот. Покажете дека може да се добие еквиваленција all-NAND, но со
одредена цена. Каква цена?
Одговор -Зголеменото задоцнување е резултат на додадените NAND порти на
излезот .

Вежба 16 Од сите кола кои ја имплементираат истата функција на слика 13, она
коло кое што се менува во однос на бројот на порти, бројот на нивоа, бројот на
врски, и максимумот на fan-in е производ-од-сума колото на слика 13f. По
конвертирањето на сите кола во all-NAND кола, споредете ги слика 13с и 13f во

21
однос на бројот на порти, нивоа, врски и максимумот од fan-in. Некој коментар?
(Запаметете дека и влезните променливи и нивните комплементи се дадени.)

3.5 ВРЕМЕНСКИ ДИЈАГРАМИ

Претставувањето на дигиталните логички кола до сега се карактеризираше


само со однесување без промени. За даден влез, системот има специфичен излез
во состојба на мирување, како таа опишана во вистиносната табела. При
изведување на операциите, влезовите фреквентно се менуваат, а со тоа и
излезите се менуваат од едно ниво до друго, како реакција на промената на
влезот. Како резултат од неизбежното доцнење на портите, промените на излезот
доцнат, но сепак за релативно време во однос на промените на влезот. Во овој
дел накратко ќе го разгледаме ефектот од ваквите задоцнувања на излезите од
колото.
Цртањето на брановите форми како функција од времето е добар начин за
пртставување на промените на влезовите и излезите. Ваквите цртежи, познати
како временски дијаграми, се друг начин за претставување на операции во
дигиталните системи. Временскиот дијаграм кој што го претставува однесувањето
на двовлезна AND порта е претставено на слика 14. Во временските дијаграми
промената помеѓу логичките нивоа вообичаено се пртставува со вертикални
линии , додека реално овие линии имаат помал наклон, како што е покажано во
второто поглавје, слика 22. Временските дијаграми се нацртани со проценување
на реалното време на доцнење на портите, така го прикажува динамичкото
однесување на системот, спротивно од статичкото однесување претставено со
вистиносната таблица.

влез 1 0 1 0 1 0

влез 2 0 0 1 1 1

излез 0 0 0 1 0

Слика 14 Временски дијаграм за И порта

Ако сигналите се пропагираат со доцнењето на портите, промената на логичките


вредности ќе се одвива непрекинато. Сепак сигналите се со неизбежно доцнење
при минувањето низ портите, а и различните порти ке предизвикаат различно
задоцнување. Според тоа сигналите се подложни на различни задоцнувања
минувајќи низ различни делови од колото. Како резултат на ова, додека
стабилните состојби на логичките вредности во одредени точки во колото може да
ја имат очекуваната вредност, излезот може да даде моментални грешни
вредности при пристигнувањето на овие непроменати вредности.
Овој процес можеме да го илустрираме со анализа на колото од слика 11.
Претпоставете дека колото е во стабилна состојба со влез ABCD = 0000 и дека
портата 3 има поголемо доцнење од портата 1. Сега претпоставете дека влезот A
се менува од 0 на 1. Промената на излезот f може да се нацрта како што е
прикажано на слика 15. Излезот повремено се менува на 0 пред да ја постигне

22
стабилната вредност еднаква на 1. Оваа повремена промена се нарекува hazard
(ризик). Временските дијаграми се единственото претставување на дигиталните
системи кои имаат можност за прикажување на ваков hazard.

Слика 15 Временски хазард во колото од слика 11.

Во комбинационите кола, ризикот е повеќе проблематичен отколку закана. Сепак,


ваквото однесување на колото е непосакувано од повеќе причини. Најлоша
последица е кога излезот се разгледува за време на hazard-от. Тогаш се издвојува
погрешна вредност, која што ке резултира со пад на системот. Hazard –ите исто
така можат да предизвикаат прекинувачки звук и растурање на енергијата која што
може да биде непожелна ако комбинационите кола се во близина на осетливите
кола (можеби на самиот чип). Како што ќе видиме подоцна (поглавје 7), постојат
многу околности каде што hazard-ите немаат спротивен ефект врз системските
операции или врз перформансите. Во ваквите случаи не треба да се замараме со
нив.
Дали е можно да се дизајнира коло кое нема да има hazard? За да се избеганат
hazard-ите прикажани на слика 15, на пример, колото на слика 11 може да се
дизајнира така што портата 2 има поголемо задоцнување од портата 1. Но ова не
може да ви гарантира дека ќе важи за секоја копија од колото која ќе се
произведе. Заради неможноста од прецизна контрола на процесот, во фабриките
за интегрални кола, доцнењето на „идентични“ порти има одредени статистички
варијанти. Точната вредност за доцнењето на одредена порта не може да се
предвиди. Возможно е да се специфицира минимална и максимална вредност
помеѓу која ќе се наоѓа доцнењето на портата на некој чип. Дизајнот на ваквото
колото е невозможно да гарантира дека доцнењето на порта 2 е поголемо од
доцнењето на порта 1 или пак да бара сигурно зголемување на доцнењето на
системот.
Прaвилниот метод кој гарантира дека нема да има hazard е вклучувањето на
дополнителна порта која ќе го одржува излезот на вредност 1 додека влезот А се

23
менува од 0 на 1. Ако во имплементацијата на колото вклучиме дополнителна
AND порта која ќе го имплементира изразот-производ B’C’D’, тогаш и покрај
релативните доцнења на портите 1 и 3 и промената во нивните доцнења, на
излезот нема да има hazard за наведената промена на влезот А (погледнете во
поглавје 7 за покомплетно објаснување.)

Вежба 17 При промена на влезот ABCD од 0000 на 0010 , нацртајте временски


дијаграм за колото на слика 11.Дали има можен hazard? Идентификувајте го
изразот-производ кој што би бил вклучен во колото за да се елиминира hazard –от
кога влезот ќе се смени од 0000 на 0010.
Одговор 3

Овој краток пример за hazard-от се користи за зголемување на важноста на


претставувањето со временските дијаграми во дизајнот на дигиталните системи.
Hazard-ите се разгледани во поголеми детали во поглавје 7 во врска со
асинхроните секвенцијални кола.

3.6 НЕЦЕЛОСНО ОПРЕДЕЛЕНИ ФУНКЦИИ

Од се она што го видовме досега, сфативме дека за секоја комбинација на влезни


вредности секоја прекинувачка функција си има конечна одредена вредност или 1
или 0. Ваквите функции се викаат целосно дефинирани функции.
Има случаи кога одредени комбинации никогаш нема да дојдат на влезот. Но,
кои ќе се вредностите на излез во ваквите случаи? Одговорот е дека не ни е
важно. Вредноста може да биде 0 или 1 т.е. онаа која ни одговара повеќе.
Пример ако имаме 4-битен код со кој се претставени декадните броеви, бидејќи
со 4 променливи можеме да претставиме 16 комбинации на вредности за
претставување на 10 декадни цифри, шест од нив не одговараат на ниту една
декадна цифра. Ако четирите бита се влезови на прекинувачко коло , тогаш шест
од можните 16 комбинации никогаш нема да се случат. Затоа, што ќе се добие на
излез за овие одредени влезни комбинации е сосема сеедно. Дали е тогаш
коректно овие излези да ги наречеме не е важно? Бидејќи излезот во овие случаи
не е сосема определен, функцијата се вели дека не е целосно определена. За да
го прикажеме не е важно излезот на мапа, потребен ни е специјален симбол. Во
оваа книга ќе го користиме знакот „х“.
Исто така потребен ни е начин за да го вклучиме не е важно излезот кога
функцијата е определена со минтерм бројки. Со конвенција е одредено да се
додадат не е важно излезите во минтерм листата, на начин прикажан со изразот
за некомплетно специфицирана функција:

f = ∑(минтерм броеви) + ∑d(не е важно броеви)

3
(изразот-продукт што треба да се вклучи за да се елиминира hazard-от е A’B’C’)

24
Слика 16 Мапите на функцијата f = ∑(0,2,7,12,13,14,15) + ∑d(6,8)

Пример 6

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

f (w,x,y,z) = ∑(0,2,7,12,13,14,15) + ∑d(6, 8)

Нашата цел е да најдеме минимална сума-од-производи и производ-од–суми кои


ќе ја претставуваат оваа функција. Мапи со заокружени к-квдрати од единици во
едниот случај и к-коцки од нули во другиот случај се прикажани на слика 16.
Вториот коцка {12, 13, 14, 15} на слика 16b е неопходен, поради минтермот 13.
Минтермот 7 може да формира еден коцка со минтермот 15, но резултантниот
примарен импликант BCD ќе има три литерали. Сепак, не е важно излезот може
да се искористи за да формира втор коцка {6, 7, 14, 15} и да се добие примарен
импликант BC со само два литерали. Само еден од не е важно излезите може да
се користи за да се формира коцка од повисок ред во секоја од мапите. Ништо
нема да се добие со искористување на не е важно излезот 8 на слика 16b или или
не е важно 6 на слика 16с. Бројот на изрази и бројот на литерали во двете форми
се сосема исти. Минималните изрази добиени од мапите се следниве:

f = wx + xy + w’x’z’ и f = (w’ + x)(x + z’)(w + x’ + y)

Вежба 18 Треба да се дизајнира комбонационо коло со четири влеза така што


на излез да се добие 1 без разлика дали влезната комбинација x1 x2 x3 x4
претставува BCD број на степен два.
a. Конструирајте логичка мапа која ги задоволува условите на дизајнот.
b. Користејќи ја мапата, најдете го минималниот сума-од-производи израз кој
ја претставува функцијата.
c. Нацртајте логичко коло кој ќе го имплементира минималниот сума-од-
производи израз.
d. Користејќи ја мапата најдете го минималниот производ-од-суми израз.

e. Нацртајте логичко коло кој ќе го имплементира минималниот производ-од-


суми израз.
25
f. Забележете ја комплексноста на секое од колата.
Одговор 4

3.7 КОМПАРАТОРИ (Споредувачи)

Досега, во фазата на „имплементација“ при дизајнот на комбинационите кола,


проблемите имаа теоретски поглед врз нив. Во овој дел ќе ги разлгедаме сите
поважни пресметковни задачи, како што се: споредба на магнитудите на два
бинарни броја кои имаат иста должина. Гледјаќи го ова како општ случај,
алгебарски е многу сложено. За тривиалниот случај на два едно битни броеви,
ексклузивна или порта (XOR) ќе даде на излез 0 кога двата броеви ќе се исти и
единица кога тие ќе се различни. (XNOR излезот ќе го дава сосема спротивното,
се разбира.) Но, во кој и да било од случаите, ако тие се различни, нема да
знаеме кој од нив е со поголема вредност. Ние ќе го разгледаме општиот случај,
така што најпрво ќе се задржиме на случајот со два двобитни броја.

Дво-битни компаратори

Нека X = x1 x0 и Y = y1 y0 се два двобитни броеви. Задачата е да се споредат


овие броеви и да се одреди нивната релативна магнитуда. Ајде да ги определиме
излезите 5 :
G = (X > Y)
E = (X = Y)
L = (X < Y)

Слична нотација ќе се добие за секој бит посебно (пр. E1 значи x1 = y1 ).


Логичпката функција од две променливи кои стануваат 1 кога променливите се
еднакви беше дефинирана во второто поглавје како еквивалентна врска на XNOR,
комплементот на ексклузивното OR. Според тоа,

4
a. Минтерм листата, вклучувајќи ги и не е важно излезите, е f = ∑(1, 2, 4, 8) + ∑d(10, 11, 12,
13, 14, 15). Вашата мапа треба да има единици во келиите 1, 2, 4, 8 и не е вжно во 10, 11,
12, 13, 14, 15.
b. Ниту еден од минтермите не може да се искомбинира за да формира коцка, заоа
искористете ги не е важно за да формирате коцка од прв ред со минтерми 2, 4 и 8. Нема
коцки од повисок ред. Минтермот 1 (20) не формира ниту еден к- коцка со друг минтерм
или со не е важно. Според тоа минималниот сума-од-производи израз е
f = x2 ' x1 x0 + x2 x1 ' x0 '+ x3 x1 ' x0 '+ x3 ' x2 ' x1 ' x0 . На прво ниво има три AND порти со по три
влеза и една AND порта со чертири влеза и четиривлезна OR порта на второто ниво.
c. Има шест минтерми кои одговараат на декадните броеви кои не се во минтерм листата.
Мкстермот 0000 не се комбинира со ниту еден друг макстерм или со не е важно.
Макстермот 1101 се комбинира со три не е важно излези за да формира коцка од втор ред.
Макстермот 0111 се комбинира одделно со секој од другите три макстерми и два не е
важно за да формира други три квдрати од втор ред. p-of-s изразот е
f = ( x 3 '+ x 2 '+ x 1 '+ x 0 ' )( x 3 + x 0 )( x 2 + x 0 )( x 1 + x 0 )( x 2 + x 0 ) .
d. На прво ниво има четири двовлезни и една четири влезна OR порта и петвлезна AND
порта на второто ниво
5
G значи „поголемо од“ и т.н.

26
Ei = ( xi <=> yi ) = ( xi ⊕ y i ) ' = ( xi yi '+ xi ' yi ) ' = xi + xi ' yi ' , i = 1, 0

E1 = 1 само кога двата разгледувани бита се еднакви: x1 = y1 . Тогаш од сите E1 , E


е AND порта, во случајов E = E1 * E 0 и E = 1 кога x1 = y1 и x0 = y0 . Во
имплементацијата на колото, откако E1 ќе се определи, AND портата со E1 како
влез ќе ја даде E .

Вежба 19
a) Конструирајте логички дијаграм чии што влезови се x1 , y1 x0 , y0 а излезот е E .
Искористете го изразот од десно во (1) и исто така E = E1 * E 0 и претпоставете
дека сите битови се дадени паралелно. Иако можеби ќе бидете во искушение
да погледнете во дијаграмот на слика 17, видете ја сликата откако прво ќе се
обидете сами.
b) На слика 17b, претпоставете дека XNOR портите се заменети со XOR порти.
Која друга дополнителна измена треба да се направи?
Одговор 6

Слика 17 Имплементација на коло кое ја прикажува еквивалентноста на два


2-битни броеви

Слично, состојбата G = 1 е определена со споредување на определени битови од


двата збора, почнувајќи од најзначајниот бит. Ако најзначајните битови се исти, се
споредуваат следните битови (и така натаму, а за зборови со поголема должина е
замислено се додека не се дојде до два соодветни бита кои се еднакви,
„замислено“, затоа што тоа не е процедура која ќе ја користиме секогаш за броеви
кои имаат повеќе од два бита).
• Ако х-битот е поголрм од y битот, тогаш G = 1, без разлика на останатите
битови. Во нашиот случај, ако x1 > y1 ( x1 = 1и y=0), тогаш G = 1, без разлика од
x0 , y0 .
• Ако x1 < y1 , тогаш G не може да биде 1. Во тој случај L = 1, без разлика на x0 , y0 .

6
Влезовите на AND портата треба да бидат комплементирани, па така E = E1 ' E0 ' = ( E1 + E0 ) .
Заменете ја AND портата со NOR порта.

27
• Ако x1 = y1 , тогаш можеме да ја испитаме следниот помалку значаен бит. Во
овој случај G може да биде 1 само ако x0 > y0 . (За L може да се направи
сосема сличен преглед . Изведете го експлицитно.)

Вежба 20 Конструирајте логичка мапа со четири променливи за G користејќи ги


X = x1 x0 и Y = y1 y0 како променливи. G = 1 на аглите за кои x1 x0 > y1 y0 . Напишете
израз кој нема да биде минимален за G користејќи коцки од втор ред и два нулта
коцки.
Одговор 7

Вежба 21 Повторете ја вежва 20, но овој пат за L.


Одговор 8

Слика 18 Парцијални кола за (а) G и (b) L.

На крај, забележете дека сигналот E1 е даден на слика 17 како излез на NOR


портата (или на XNOR портата на слика 17b). Излезите од AND портата x1’y1 и
другите во изразите за G и L дадени се на истата слика. Користејќи ги нив за влез,
на слика18 е даден дијаграмот за имплементација на излезите L и G. (Уверете се
дека AND-OR колото кое се однесува на изразот од фуснотите 25 и 26 може да се
имплементира со all-NAND коло како што е покажано.) Двата дијаграми можат да
се комбинираат во единствено коло со четирите х и y влезови и трите излези E, G
и L. Изведете го овој чекор сами.

Генерализација

Она што го направивме до сега може да сметаме дека тривиално бидејќи


споредувавме само двобитни броеви. За зборови со поголема должина, постојат

7
G = x1 y1 '+ x0 y0 ' ( x1 y1 + x1 ' y1 ' ) = x1 y1 ' E1 , каде што E1 = x1 y1 + x1 ' y1 ' е излезот на XNOR портата
како што е покажано на слика 17b. Во согласност со (13) од второто поглавје и дискусијата е исто
така иста ( x1 ↔ y1 ) = ( x1 + y1 )' = ( x1 y1 '+ x1 ' y1 ' )' . Иако E1 = 0, тоа значи првите битови од двата
броја не се еднакви. Првиот израз покажува дека единствениот начин за G да биде 1 е
x1 = 1, y1 = 0 , безависно од вторите битови. Ако E1 = 1, тогаш првите битови од двата броја мора
да бидат исти и според тоа, првиот израз во G е 0 и G се намалува на x0 y0 ' . Единствениот начин
за G да биде 1 е за x0 = 1, y0 = 0 , а со тоа се потврдува дека X>Y.
8
L = x1 ' y1 + x1 ' x0 ' y1 ' y0 + x1 x0 ' y1 y0 = x1 ' y1 + x0 ' y0 E1 . Изведете ја анализата од фуснотата 25 за
да се уверите дека изразот го дава точниот резултат.

28
различни пристапи во зависност од тоа дали бројотна битови е парен или
непарен. Ќе го разгледаме прво случајот со со 4 битови.

4-битни компаратори

Четири битните споедувачи мочат да се добијат со користење на резултатите од


дво-битните споредувачи, еден за секои два бита од повисок ред и еден за
битовите од понизок ред. Ако двата пара битови од повисок ред не се исти
(едниот пар е поголем од другиот), тогаш потребно е да се споредат битовите од
пониското ниво. Ова ќе го разгледаме комплетно врз база на двата бита од
повисокото ниво. (Пробајте го ова врз некој конкретен прмер, како 10 x0 x1 и 11 y1 y0 .
Уверете се дека х-овите и y-ите на третата и четвртата позиција не се сметаат.
Вториот број секогаш ќе биде поголем од првиот, бидејќи првите два бита се
поголеми.) Така, 2-битниот споредувач е потребен за споредба на два бита од
повисок ред. Ако за овој споредувач G = 1 и L = 1, тогаш се поставува прашањето
дали парот од битови од пониско ниво е воопшто важен.
Само ако двата бита од повисоко ниво се за секој компаратор на два бита се
исти тогаш ќе биде неопходно да се споредат давата бита од пониското ниво. Но
и во овој случај има потреба од 2-битен споредувач. Резултатот од оваа споредба
ќе одлучи кој од 4-битните броеви е поголем. Останува значајниот проблем за
реализација. Целата задача вклучува или еден или најмногу два двобитни
споредувачи. Во делот со поблем ќе се бара да се разгледа ова во детали.

Компаратори на броеви со парен број битови

Компараторите на кои било два броја со ист број на битови може да се добие на
сличен начин. Најпрво се третираат паровите од битови од повисок ред. Ако
G = 1 или L = 1, тоа одлучува без понатаму да се проверуваат битовите од
понизок ред. Следниот по ред пар од битови од повисокиот ред се разгледуват на
истиот начин. Само ако Е = 1 во секој од пар од битови, ќе биде неопходно да се
проверува следниот пар од пониско ниво. Единствениот случај во кој ќе има
потреба да се поверуваат паровите од најниското ниво е кога сите претходни
битови во двата броја биле исти. Деталите ќе бидат оставени на вас да ги
добиете при решавање на проблем.

Компаратори на броеви со непарен број битови

Компараторите на два броја A = Xa0 и B = Yb0 кои имаат непарен број на битови
може да се добие со тргање на (lsb) најнезначајниот бит од двата броја на страна
и со конструирање на компаратор за двата броја кои ќе имаат парен број на
битови, Х и Y. Запаметете дека овој компаратор ќе има три излези. Ако излезот G
претставува Х >Y, тогаш независно од најмалку значајните битови, A>B. Од друга
страна пак, ако L претставува X<Y, тогаш независно од најнезначајниот бит, A<B.
Само ако X=Y (кое значи E=1) тогаш најнезначајните битови ќе ги земеме во
предвид. Значи, дополнително осигурување ќе биде потребно само ако X=Y.
Тогаш треба да се изведе процедура слична претходната за броеви од по еден
бит, каде двата број кои ќе ги соредуваме се a0 и b0 . Деталите ви се оставени на
вас да ги разгледате во делот со проблеми.

29
3.8 ОДРЕДУВАЊЕ НА ПРИМАРНИ ИМПЛИКАНТИ:
ТАБЕЛАРНА МЕТОДА

Определувањето на минималниот израз на сума од производи или производ од


суми за дадена прекинувачка функција може да биде тешко за функции од повеќе
од пет или шест променливи користејќи го методот опишан претходно во ова
поглавје. Она што е потребно е систематски пристап кој е јасно објаснет така да
може да се кодира во алгоритам. Во тој случај, може да се програмира и да се
изведе машински. Ваквата процедура за минимизација, вообичаено се нарекува
алгоритам на Quine-McCluskey 9 . Изведеувањето на овој алгоритам за компјутер-
скиот програм нема да се дискутира тука.Но за информација ваквите програми се
достапни. 10 Во минимизирачкиот процес се вклучени два чекори:
• Наоѓање на примарни импликанти
• Наоѓање на најмалата коминација на овие импликанти за покривање на
функцијата
Секој од процесите е алгоритамски.
Основната идеја во методот кој ќе го опишеме е тоа да два соседни логички
минтерми кои се канонични продукти од литерали (коцка од нулто ниво во мапата)
може да се комбинираат во продукти во кои еден од литералите недостига (коцка
од прво ниво од мапата). Понатака, два коцки од прво ниво кои што се соседни
т.е. два литерали-продукти кои што се исти, освен што и-тиот литерал се јавува
како xi во едниот подукт,а како xi ' во другиот продукт. Може да се комбинира во
коцка од второ ниво. Со овој процес може да се продолжи се додека постојат
соседни к-коцки. Групата на сите примарни импликанти е претставена со група од
сите к-коцки кои не се целосно покрини со коцки од повисок ред.
Претпоставете дека мапа од четири променливи ги покрај другите ги содржи
и следните минтерми: {4, 5, 12, 13}. Ние ќе тежнееме да ги зокружиме сите четири
минтерми во коцка од втор ред, без да е потребно да се забележи дека
минтермите формираат четири различни коцки од прво ниво. Но ако бараме
сигурен табеларен метод каде се формираат коцките од повисоко ниво од оние
едно ниво подолу, не можеме да оставиме к-коцките на hazard, случајно
идентификување. Ние мора систематски да ги разгледаме сите можни соседи.

9
Елиминирајќи неколку порти од дизајнот може да предизвика големи придобивки за цена на
редуцирањето, бидејќи дизајнот на малите кола вообичаено се изведува со SSI кола во кои
повеќекратните примарни порти од ист тип и истото fan-in се пакуваат заедно. Но сепак, има некои
интелектуални придобивки во разбирањето на инволвираниот коцепт: и во подлабоко разбирање
на структурата на логичките кола. Понатаму, „големи“ кола нормално се имплементираат со
препакување на „програмбилни логичкки уреди“ (PLDs) кои ќе ги разгледуваме во следното
поглавје. Внатрешната структура на овие уреди е AND-OR во две нивоа, со фиксен број на АND
порти. Ако неминимизираната функциа има премногу АND порти дури и достапните PLDs нема да
можат да се искористат за имплментација. Според тоа, минимизацијата е неопходна алатка
особено за функии со голем бој на променливи. Уште повеќе, Концептот развиен во контекс на
минимизација на прекинувачки функции може да се искоисти и во други случаи. На пример,
минимизација на експеимент за дијагностицирање на грешките во логичките кола , Понапредна
област која не е тема на оваа книга.
10
За објаснување на јазикот Pascal за изведување на алгоритмот на Quine-McCluskey , погледнете
p.p 236-243 од Warkly, Digital Design. (Видете Bibliography). Процесот опишан во ова поглавје е
алгоритамски и повторлив. Може да се разгледа тенденциозно. Откако пости компјутерскиот
програм за алгоритмот постои и објаснувањето, Кое можеби ќе сакате да го скокнете.

30
Претставување на соседни к-коцки

Како што знаете, бинарната репрезентација на две соседни келии се разликува за


точно една бит позиција. Разгледајте ја функцијата f = ∑(2,3,4,5,7,8,10,11,12,13).
Со групата од минтерми {4,5,12,13}, се формираат следните к-коцки:

1-коцка {4,5} 1-коцка {12,13} 2-коцка {4, 5,12,13}


4 0100 12 1100 {4, 5} (010-)
(010-) (110-) (-10-)
5 0101 13 1101 {12, 13} (110-)

Секоја бит позиција во бинарниот број одговара на 2. Кога два соседни к-коцки
формираат (к+1)-коцка, позицијата во која се разликуваат бинарните вредности се
заменува со ―, како што е прикажано погоре.
Следното прашање кое се поставува е: Дали бинарната репрезентација на
два соседни минтерми се разликува за точно една позиција и како се разликуваат
нивните декадни репрезентации? Откако секоја апозиција одговара на 2 и откако
битот на оваа позиција е 1 во едниот минтерм и 0 во другиот минтерм, разликата
на во двете декадни репрезентации е точно на степен два. т.е.,

Ако два минтерми се соседни, нивните декадни минтерм броеви се


разликуваат за степен 2.

Индекс 0-коцки Коцки од прв Коцки од втор ред


(Бр. на 1) (минтерми) ред
1 2√ 2, 3 (1) √ 2, 3, 10, 11 (8) P1
4√ 2, 10 (8) √ 4, 5, 12, 13 (1,8) P2
8√ 4, 5 (1) √ Примарни
4, 12 (8) √ импликанти
8, 10 (2) P3 P1 = {2, 3, 10, 11}
2 3√ 8, 12 (4) P4 P2 = {4, 5, 12, 13}
5√ P3 = {8, 10}
10 √ 3, 7 (4) P5 P4 = {8, 12}
12 √ 3, 11 (8) √ P5 = {3, 7}
5, 7 (2) P6 P6 = {5, 7}
3 7√ 5, 13 (8) √
11 √ 10, 11 (1) √
13 √ 12, 13 (1) √

Слика 19 Табеларно претставување на примарните импликанти за функцијата


f = ∑(2,3,4,5,7,8,10,11,12,13).

Дали оваа конверзија е точна? Т.е. ако минтерм броевите се разликуваат за


степен 2, дали овие минтерми се соседни? Одговорот е не! Како пример,
минтермите 10 (1010) и 6 (0110), се разликуваат за 4 = 22 , т.е. степен два. Но тие
не се соседни. Нивните бинарни вредности се разликуваат за две позиции, а не
само за една. Овој факт има импликација за процедурата која што ја опишуваме.
Тоа значи дека тестирањето на соседите не треба да се изведува на декадните
форми, туку секогаш на бинарните репрезентации.
31
Подредување според индекс

Ако бинарните вредности на два минтерми се разликуваат за една позиција, тоа


значи дека бројот на битови се разликува за 1. Нека индексот на минтермите е
дефиниран како број на единици во неговата бинарна репрезентација. Тоа значи
ако минтермите се класифицираат според индексот, тогаш само оние чии што
индекси се разликуваат за еден можат да бидат соседни. Но што е се
претворањето? Дали ако индексите на два минтерми се разликуват за 1, сигурно е
точно дека и бинарните вредности ќе се разликуваат за една позиција? Одговорот
е повторно, не. Индексите на минтермите 8 и 3, на пример се 1 и 2 , соодветно.
Сепак нивните бинарни вредности се разликуваат за три позиции. Според тоа,
условот дека декадните броеви на два минтерми кои се разликуваат за степен два
и условот дека бројот на единици во бинарната репрезентација се разликува за
еден се неопходи услови, но не и доволни.
Ајде да се осврнеме на табеларната процедура за дадена функција. Првиот
чекор е да се направи листа на сите минтерм броеви, групирани по индекс, во
првата колона од табелата. Примерот претставен на претходно се користи во
табелата на слика 19.
Следниот чекор е да се тестираат оние минтерми кои можат да бидат
соседна база на нивните индекси и да се види дали се тие воопшто соседни. Секој
минтерм број во групата со индекс 1 се проверува со сите од групата со индекс 1.
Коцките од прв ред формирани од два соседни 0-коцки се добиваат со листање на
паровите од минтерм броеви проследени со вредноста на степен два за кои што
се разликуваат нивните бинарни вредности, како што е покажано во третата
колона. Коцките од прв ред формирани од минтермите 4 и 12, со разлика 8, на
пример, се пишува 4, 12 (8). Откако тие коцки од нулто ниво се покриени со
к- коцки од повисоко ниво и затоа не можат да бидат примарни импликанти, се
штиклираат.
Забележете дека иако минтермот 4 (индекс 1) се разликува од минтермот 3
(индекс 2) за степен 2, m4 и m3 не се соседни . Тие се разликуваат во бинарните
позиции. Уште повеќе, 4 во пониската индекс-група е поголем број од 3 во
следната индекс-група. Воопштувањето на овие досегашни разгледувања е: Нема
потреба да се проверува дали се соседи минтрмите со помал индекс од оние кои
имаат поголем индекс ако вториве се со помала вредност, бидејќи тие не можат
да бидат соседи.
Откако сите коцки кои вклучуваат минтерми со индекси 1 и 2 се формирани,
тогаш минтермите со индекс 2 се проверуваат со минтермите со индекс 3 за
соседност. Сепак, коцките од прво ниво формирани од ваквите соседства се
запишуваат посебно од првата група. Се продолжува со овој процес се додека не
се проверат сите вакви комбинации. Во дадениот пример нема минтерми со
повисок индекс, па се завршува со овој чекор.
Што се прави следно е очигледно. Формираме коцки од второ ниво од
соседните паровина коцки од прво ниво. Бројот на загради кои одговараат на
минтерм броевите во коцките од прво ниво се на степен два и одговараат на
бинарната позиција за која се разликуваат двата минтерми кои го фомираат
коцкаот од прво ниво. Коцката од прво ниво 4, 12 (8), на пример, има бинарна
репрезентација - 100.Бинарната вредност 12 има 1 на 8 ( 23 ) позиција, додека
бинарната вредност на 4 има вредност 0. Ако овај коцка од прво ниво е соседна
со друг коцка од прво ниво, другатамора исто така да има исто така 8 во
заградите, што значи – на 8-та позиција во неговата бинарна вредност.

32
Истовремено двете коцки мора да се разликуваат за точно една позиција.
Овие два чекори се потврдуваат во двата чекори со споредба на секој коцка од
прв ред од првата категорија со тие од втората категорија. Најпрво броевите во
загради мораат да се сложуваат. Потоа првите два минтерми во секој коцка од
прв ред мораат да се разликуваат за степен два ако двата коцки од прв ред се
соедни. (Ако сите минтерми се подредат според соседност за секој коцка од к-ти
ред, тогаш доволно е да се п ровери само првиот минтерм. Другите автоматски ќе
се разликуваат за степен два.)
Почнувајќи од коцката од прв ред 2, 3 (1), на пример, единствените коцки од
прв ред за проверка во следната група се оние кои имаат (1) во заградите: 10, 11
(1) и 12, 13 (1). Проверуваме дали првите минтерми од паровите на коцки од прв
ред се разликува за степен два. Забележуваме дека 2 и 10 се разликуваат за
степен два, но 2 и 12 не. Што значи дека само (2,3,10,11) формират коцка од втор
ред. За да се определат позициите за кои се разликуваат нивните битови, ги
запишуваме 1 и 8 во згради, како што е покажано во последната колона од
табелата.
Следниот коцка од прв ред во првата група е 2, 10 (8), е проверен со тие од
следната група. Единствените кандидати со кои можат да се формираат коцки од
втор ред се тие со 8 во заградите: 3, 11 (8) и 5, 13 (8). За 3, 11(8), првите минтерми
(2 и 3) се соседни, но не и за 5, 13 (8). Коцката од втор ред која се формира е
(2,3,10,11) (1, 8). Тоа е истиот кој веќе го најдовме и нема потреба повторно да го
зпишуваме. Со секој чекор се штиклираат коцките од прв ред кои формирале
коцка од втор ред, како да биле препокриени и според тоа не се примарни
импликанти. Со процесот на формирање на коцка од втор ред се продолжува се
додека има коцки од прв ред. Во дадениот пример, постојат само два коцки од
втор ред. Осум од коцките од прв ред се целосно препокриени со нив, и
остануваат четири непрепокриени коцки од прв ред. Сите овие четири коцки од
прв ред претставуваат примарни имликанти, правејќи вкупно шест во прикажанта
табела.
Описот кој што беше даден е доста долг, но всушност самиот процес е
релативно едноставен. Неколку чекори се повторуваат постојано и како што веќе
кажавме може да се имплементира компјутерски.

33
Табела 1

1. Дадена е прекинувачка функција, одредете ја минтерм листата. Групирајте ги


декадните минтерм броеви во колони по соседен редослед на индексите
(бројот на единици).
2. Тестирајте ги за соседност секој од минтермите од најмалиот индекс со секој
од оние кои имаат следна поголема вредност на индексот, почнувајќи од
најмалиот. Тие се соседни ако нивните декадни вредности се разликуваат за
степен на два а нивните бинарни вредности се разликуваат за една битова
позиција. Запишете ги коцките од прв ред кои се формирани од соседните
минтерми, со минтерм броевите во редослед на соседи и разликата степен
од два помеѓу нив во загради. Повторувајте го ова се додека не ги поминете
сите индекси. Елиминирајте ги сите минтерми кои што се препокриени со
коцка од прв ред, затоа што не се примарни импликанти.
3. Почнувајќи од парот со најмал индекс, повторувајте го ова за групите на
коцки од прв ред. Проверете дали се соседни сите коцки од прв ред во
група формирана од парови на индекси со тие формирани во следната група
на парови од индекси. Тие ќе бидат соседни само ако го имаат истиот број во
загради и ако првите броеви им се разикуваат за степен два. 3апишете ги
сите коцки од втор ред формирани од соседните коцки од прв ред, со
бројот на сите минтерм броеви по редослед на соседи и на бројот во
заградите додадете ја разликата за степен два на првите минтерм броеви од
коцките од прв ред. Повторно коцките од прв ред препокриени со коцки од
втор ред се елиминираат за да се покаже дека не можат да бидат примарни
импликанти. Одделете ги паровите од коцки од прв ред од оние од втор ред.
4. Повторете го ова за секоја група од коцки од к-ти ред се додека можат да се
формираат коцки од повисокиот ред . Сите коцки од к-тото ниво кои не се
елиминирани претставуват примарни имликанти. Набројте ги нив почнувајќи
со оние од највисокиот ред.

Процесот на наоѓање на сите примарни импликанти со табеларен метод е даден


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

Некомплетно дефинирани функции

Претходната поцедура, која се однесува на некомплетно дефинираните функции,


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

34
Пример 7

Дадена е следнава функција:


f(A,B,C,D,E) = ∑(0,4,5,7,9,12,13,14,15,23,31) + ∑d(3,6,10,16,20).
Да се определат сите примарни импликанти.

Индекс 0-Коцки 1-Коцки 2-Коцки 3-Коцки


0 0√ 0,4(4) √ 0,4,16,20(4,16) P2 4,5,6,7,12,13,14,15(1,2,8) P1
0,16(16) √
1 4√
16√ 4,5(1) √ 4,5,6,7(1,2) √
4,6(2) √ 4,6,12,14(2,8) √
2 3√ 4,12(8) √ 4,5,12,13(1,8) √
5√ 4,20(16) √
6√ 16,20(4) √
9√ 5,7,13,15(2,8) √
10√ 3,7(4) P4 6,7,14,15(1,8)
12√ 5,7(2) √ 12,13,14,15(1,2) √
20√ 5,13(8) √
6,7(1) √
3 7√ 6,14(8) √ 7,15,23,31(8,16) P3
13√ 9,13(4) P5
14√ 10,14(4) P6
12,14(2) √
4 15√
23√ 7,15(8)√
7,23(16) √
5 31√ 13,15(2) √
14,15(1) √

15,31(16) √
23,31(8) √

Слика 20 Табеларната процедура за одредување на примарните импликанти за


функцијата f = Σ(0,4,5,7,9,12,13,14,15,23,31)+Σd(3,6,10,16,20)

Табелата составена со запишување на сите не е важно како да се единици е


прикажана на слика 20. Бидејќи 0 е минтерм во овој пример, се појавува и индекс
0. Се изведува процесот опишан во табела 1. Сите оние коцки од к- ти ред кои не
се штиклирани се примарни импликанти. Погледнете ги деталите во табелата.

35
Избор на минимални изрази

Откако ќе се определат примарните импликанти, следниот чекор е да се избере


најмалиот број од нив кој што ќе ги покрива сите минтреми и ќе има најмал број на
литерали. Процесот се поедноставува со составување на табела на примарни
импликанти, или мапа, во која примарните импликанти ќе претставуваат редици, а
минтермите ќе ги формираат колоните. Ако примарниот импликант Р1 го покрива
минтермот m1, се шкрта редицата која одговара на Р1 и колоната која одговара на
m 1.

Комплетно дефинирани функции

Бидејќи има разлика, иако мала, прво ќе разгледаме целосно дефинирана


функција, почнувајќи со пример.
Пример 8
Примарните импликанти за f = ∑(2,3,4,5,7,8,10,11,12,13) се претставени на слика
19. Мапата формирана за примарните импликанти е дадена на слика 21.
Примарните импликанти од повисок ред се зададени први и групите на коцки од
втор ред се разделени од групите на коцки од прв ред. Забележете дека бројот на
минтерми покриени со коцки од к-ти ред е 2 k . Толку штиклирки треба да има во
една редица за комплетно дефинирана функција. Поверете ги деталите од оваа
табела.
Бидејќи секој примарен импликант покрива минтерм кој не е покриен со ниту
еден друг примарен импликант, минималната група мора да содржи неопходни
примарни импликанти. За да се идентификуваат истите, секоја колона се гледа
верикално. Ако во некоја од колоните има единствена штиклирка, таа колона
одговара на посебен минтерм, како и колоната во која се појавува овој примарен
импликант. Како што е покажано на слика 21b, кога минтермот ќе биде покриен со
примарен импликант кој е запишан, се става кругче околу штиклирката.

2 3 4 5 7 8 10 11 12 13
P1 √ √ √ √ P1=B'C
P2 √ √ √ √ P2=BC'
P3 √ √ P3=AB'D'
P4 √ √ P4=AC'D'
P5 √ √ P5=A'CD
P5 √ √ P6=A'BD

а)
2 3 4 5 7 8 10 11 12 13
*P1 √ √ √ √
*P2 √ √ √ √
P3 √ √
P4 √ √
P5 √ √
P5 √ √
b)

Слика 21 Мапата на примарни импликанти за f = Σ(2,3,4,5,7,8,10,11,12,13)

36
На слика 21, има четири различни минтерми, но само два од нив се неопходни, и
се означени со ѕвездичка. Минтермите препокриени од неопходните примарни
импликанти не мора да бидат покриени од ниту еден друг примарен импликант. За
да се одредат веќе покриените минтерми, во редицата на примарниот импликант
се штиклираат броевите на минтермите во соодветната колона. Единствените
минтерми кои на се покриени од Р1 и Р2 се 7 и 8. Од соодветните колони се
забележува дека минтермот 7 е покриен со Р5 или со Р6, а минтермот 8 е покриен
со Р3 или со Р4.
Бидејќи бројот на литерали во секој од овие е ист, изборот на која и да било
комбинација ќе го даде исиот минимален израз:

f = P1 + P2 + P3 + P5 = P1 + P2 + P3 + P6 = P1 + P2 + P4 + P5 = P1 + P2 + P4 + P6

Продуктот од литерали формирани за импликанти кои одговараат на коцка од


к-ти ред се добива на следниов начин. Прво напишете ги бинарните вредности на
сите минтерм броеви покриени со коцка од к-ти ред. Потоа заменете го со – битот
на секој позиција на која еден од минтермите во коцката од к-ти ред ја има
комплементираната вредност. Според тоа, во коцката од прв ред Р4 = (8,12)
бинарната вредност за 8 е 1000. Бинарната вредност на 12 се разликува од онаа
на 8 само на позиција 22, со што се добива 1–00. Бидејќи променливите се A, B, C,
D, втората променлива, В, ја нема во примарниот импликант и продуктите се
AС`D`. Проверете ги изразите за другите примарни импликанти дадени на
сликата.

√ √ √ √ √ √ √ √ √ √ √
0 4 5 7 9 12 13 14 15 23 31
*P1 √ √ √ √ √ √ √
*P2 √ √
*P3 √ √ √ √
P4 √
*P5 √ √
P6 √

Слика 22 Примарни импликанти за некомплетно определената функција


од слика 20

Справување со не е важно броевите

Кога ги определувавме групите на сите примарни импликанти за нецелосно


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

37
елементи. Тие не се дадени како минтерми во табелата на примарни импликанти
на слика 22. Забележете од колоните Р1, Р2, Р3 и Р4 дека редицата која одговара
на коцка од к-ти ред нема потреба од 2к штиклирки. Има четири неопходни
примарни импликанти и заедно тие ги покриваат сите минтерми. Од тука
единствениот минимален израз е:
f = P1 + P2 + P3 + P5 = А`С + В`D`E` + CDE + A`BD`E

Потврдете го изразот за примарните импликанти.

3.9 ЛОГИЧКИ КОЛА СО ПОВЕЌЕ ИЗЛЕЗИ

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

f1(a,b,c) = ∑(0,1,3), f2(a,b,c) = ∑(0,4,5)

Овие две функции можат да се третираат независно користејќи во поглавието


претходно опишани методи и да се реализираат користејќи двовлезни NAND
порти за секоја функција. Уверете се со конструирање на логички мапи и
изведување на имплементацијата.
Функциите не се независни поради тоа што имаат заеднички минтерми. Ако f1
се имплементира како a’b’c’+a’c , и f2 како a’b’c’+ab’, тогаш излезот од тривлезната
порта (а’b’c’) може да се искористи два пати, по еднаш за секој излез. Оваа
имплементација содржи четири двовлезни NAND порти и една тривлезна NAND
порта. Одредете ја оваа реализација со логичката мапа и нацртајте шематски
дијаграм за логичките порти. Придобивките во овој пример можеби не се големи,
но во многу други случаи може да резултираат со поголема економичност.

38

You might also like