Sunteți pe pagina 1din 85

Fundamentele calculatoarelor

Onuţ Lungu

Florin Drăgan

FUNDAMENTELE CALCULATOARELOR

CURS IDD An I

1

Fundamentele calculatoarelor

Lucrarea de faţă se doreşte o introducere în analiza şi studiul dispozitivelor numerice, cu un puternic caracter aplicativ. Cursul este gândit pentru forma de învăţământ la distanţă dar credem că este util oricărei persoane care doreşte să abordeze domeniul. Fiecare capitol are în încheiere un rezumat în care sunt prezentate toate aspectele teoretice care se regăsesc în capitolul respectiv, precum şi o parte de întrebări şi probleme care ajută mai bine la înţelegerea noţiunilor prezentate.

2

Autorii

Fundamentele calculatoarelor

CAP. I NOŢIUNI INTRODUCTIVE

3

1.1

Procese industriale. Sisteme cu stări finite

3

1.2

Discretizarea, eşantionarea, cuantizarea

5

1.3

Sisteme de numeraţie

5

1.4

Coduri binare

7

1.4.1

Reprezentarea datelor numerice

7

1.4.1.1

Codul binar. Reprezentarea numerelor binare

cu semn

7

1.4.1.2 Codul zecimal-binar 8421

8

1.4.1.3 Coduri continue

9

1.4.2

Reprezentarea datelor alfa-numerice

10

1.5 Circuite de comutaţie

10

CAP. II FUNCŢII LOGICE

14

2.1

Elemente de algebră booleană

14

2.1.1 Axiomele şi teoremele algebrei booleene

14

2.1.2 Algebra circuitelor de comutaţie

15

2.2

Funcţii logice

16

2.2.1

Funcţii logice elementare

16

2.2.1.1 Funcţii logice de o variabilă

16

2.2.1.2 Funcţii logice de două variabile

17

2.2.2

Moduri de exprimare a funcţiilor logice

17

2.2.2.1

Formele canonice ale funcţiilor logice

18

2.2.2.2

Formele normale ale funcţiilor logice

20

2.2.2.3

Reprezentarea funcţiilor logice prin tabel de

adevăr

20

2.2.2.4

Reprezentarea funcţiilor logice prin diagrame

Veitch-Karnaugh

20

2.2.2.5

Reprezentarea funcţiilor logice de timp

21

2.2.3

Funcţii incomplet definite

22

2.3

Minimizarea funcţiilor logice

23

2.3.1

Minimizarea funcţiilor logice folosind diagrame

Veitch-Karnaugh

23

2.3.1.1 Minimizarea funcţiilor logice în formă normală

disjunctivă

2.3.1.2 Minimizarea funcţiilor logice în formă normală

23

 

conjunctivă

25

2.3.1.3

Minimizarea funcţiilor incomplet definite

26

Rezumat

27

Întrebări şi probleme

29

CAP. III NOŢIUNI DE TEORIA AUTOMATELOR CU STĂRI FINITE

31

3.1

Introducere. Definiţii

31

3.1.1. Moduri de reprezentare a automatelor finite

31

1

Fundamentele calculatoarelor

3.1.2

Clasificări ale automatelor cu stări finite

36

3.2

Automatul de ordinul zero. Circuite logice

combinaţionale

40

3.2.1 Sinteza şi analiza circuitelor logice combinaţionale

 

40

3.2.2 Circuite logice combinaţionale sintetizate cu porţi

logice

41

3.2.2.1

Sinteza cu porţi logice NU, SI, SAU

42

3.2.2.2

Sinteza cu porti logice SI-NU, respectiv SAU-NU

 

43

3.2.3

Multiplexorul

45

3.2.4

Decodificatorul si demultiplexorul

49

3.2.5

Memoria fixă ROM

52

3.2.6

Structuri logice programabile

55

3.2.7

Aplicaţii ale circuitelor logice combinaţionale.

Sumatorul

59

3.3. Automatele de ordinul 1

61

3.3.1.

Circuitul basculant bistabil RS (latch-ul)

62

3.3.2

Memoria RAM

64

3.3.3

Principiul master-slave

65

3.3.4

Registrul

67

3.3.4.1 Registrul serie

67

3.3.4.2 Registrul paralel

67

3.3.4.3 Registrul serie-paralel

68

3.4

Automatele de ordinul 2. Automatele elementare

70

3.4.1.

Circuitul basculant bistabil de tip T

70

3.4.2.

Circuitul basculant bistabil JK

73

3.4.3

Numărătoare

75

3.4.3.1

Numărătoare asincrone

76

Rezumat

80

Întrebări şi probleme

82

2

Fundamentele calculatoarelor

CAP. I NOŢIUNI INTRODUCTIVE

1.1 Procese industriale. Sisteme cu stări finite

Prin proces industrial se înţelege un ansamblu de transformări mecanice, electrice sau de altă natură care au loc în instalaţii industriale. Procesele sunt descrise prin relaţiile cauzale care există între mărimile de intrare şi de ieşire ale procesului

(fig.1.1).

MARIMI DE

INTRARE

PERTURBATII MARIMI DE PROCES IESIRE
PERTURBATII
MARIMI DE
PROCES
IESIRE

Figura 1.1

Mărimile de ieşire, numite şi mărimi reglate, sunt acelea care caracterizează modul de desfăşurare al procesului, variaţia (valoarea) lor constituind obiectul conducerii procesului. Mărimile de intrare sunt acelea care determină în mod cauzal variaţia mărimilor de ieşire. Ele se împart în două categorii:

mărimi comandate, numite şi comenzi, care se modifică manual sau automat astfel încât să se
mărimi comandate, numite şi comenzi, care se modifică
manual sau automat astfel încât să se asigure desfăşurarea
procesului conform obiectivelor impuse;
mărimi necomandate, numite şi perturbaţii, de care depinde
desfăşurarea procesului, dar ale căror valori nu pot fi
controlate în scopul conducerii procesului, ci se modifică
independent.
Clasificarea setului de mărimi de intrare se face de către
proiectant.
Un exemplu este cel al unui robot destinat asamblării
automate (fig.1.2).
ROBOT
BANDA
BANC DE

TRANSPORTOARE

Figura 1.2

ASAMBLARE

Obiectivul acestui proces este de a prelua o anumită piesă de pe banda transportoare şi a o monta într-o poziţie bine

3

Fundamentele calculatoarelor

determinată pe bancul de asamblare. Este un proces complex cu mai multe mărimi de ieşire: poziţia braţului robotului, poziţia şi prezenţa piesei în sistemul de prindere, poziţia finală a piesei. Mărimile de intrare pentru proces sunt: tipurile de piese existente pe banda transportoare şi poziţia lor, starea unor motoare de acţionare, a unor microîntrerupătoare şi a unor limitatoare de cursă, a unor traductoare de poziţie şi altele. Procesul este condus prin comenzi de pornire şi oprire a motoarelor de acţionare, comenzi de prindere şi desprindere a pieselor, etc. Aparatura destinată conducerii procesului constituie aşa numitul “sistem de conducere”. Sistemul de conducere urmăreşte desfăşurarea procesului şi generează comenzile către proces în scopul realizării obiectivelor impuse. Clasificarea mărimilor de intrare ale procesului în comenzi şi perturbaţii este o operaţie necesară în vederea elaborării temei de proiectare a sistemului de conducere. Unele mărimi de ieşire ale procesului, unele perturbaţii precum şi un program de desfăşurare a procesului constituie mărimi de intrare ale sistemului de conducere (fig.1.3).

PERTURBAŢII

MĂRIMI DE COMENZI IEŞIRE PROCES
MĂRIMI DE
COMENZI
IEŞIRE
PROCES
(fig.1.3). PERTURBAŢII MĂRIMI DE COMENZI IEŞIRE PROCES PROGRAM DE DESFĂŞURARE A PROCESULUI SISTEM DE

PROGRAM DE

DESFĂŞURARE

A

DE COMENZI IEŞIRE PROCES PROGRAM DE DESFĂŞURARE A PROCESULUI SISTEM DE CONDUCERE Figura 1.3 În funcţie

PROCESULUI

SISTEM DE

CONDUCERE

DE DESFĂŞURARE A PROCESULUI SISTEM DE CONDUCERE Figura 1.3 În funcţie de modul de funcţionare ,
DE DESFĂŞURARE A PROCESULUI SISTEM DE CONDUCERE Figura 1.3 În funcţie de modul de funcţionare ,

Figura 1.3

În funcţie de modul de funcţionare, sistemele de conducere se clasifică în sisteme continue şi sisteme discrete (sisteme cu stări finite). În principiu orice sistem care operează la momente discrete de timp şi a cărui intrări, ieşiri şi structură internă işi pot atribui numai un număr finit de configuţii distincte, poartă denumirea de sistem discret sau sistem cu stări finite. Circuitele de comutaţie constituie componentele de bază în proiectarea sistemelor de conducere discrete moderne şi studiul lor constituie obiectivul prezentului curs. Mai trebuie subliniat că sistemele de conducere discrete pot conduce atât procese continue cât şi procese discrete.

4

Fundamentele calculatoarelor

1.2 Discretizarea, eşantionarea, cuantizarea

Atunci când sistemul de conducere este un sistem cu stări finite şi informaţia pe care trebuie să o utilizeze este continută în mărimi continue, aceste mărimi sunt supuse unui proces de discretizare. Discretizarea se realizează cu CAN, acestea fiind dispozitive care transformă mărimea continuă aplicată la intrare într-un număr furnizat la ieşire, număr ce este funcţie de valoarea mărimii de intrare. Conversia analog-numerica, prin care unei mărimi care variază continuu în timp şi care poate lua o infinitate de valori i se asociază o secvenţă de numere, constă dintr-un proces de eşantionare şi unul de cuantizare (fig.1.4 a, b, c).

u t 0 1T 2T 3T 4T 5T 6T 7T a
u
t
0
1T 2T 3T 4T 5T 6T 7T
a
u 6 5 4 3 2 1 t 0 b
u
6
5
4
3
2
1
t
0
b

Figura 1.4

u t 0
u
t
0

c

Eşantionarea constă în preluarea valorilor mărimii continue numai în anumite momente, de obicei la intervale constante de timp.

Intervalul de eşantionare se alege în funcţie de banda de frecvenţă a semnalului continuu astfel încât acesta să se poată reconstitui din eşantioanele extrase. Conform teoremei eşantionării, dependenţa dintre perioada de eşantionare T şi

frecvenţa maximă din spectrul semnalului continuu

f max

, este:

T

1

2 f

max

(1.1)

Cuantizarea constă în asocierea unui număr pentru toate valorile semnalului continuu cuprinse într-un interval denumit cuantă. Se defineşte o cuantizare liniară şi una neliniară.

1.3 Sisteme de numeraţie

Numerele pot fi reprezentate în diferite moduri în funcţie de sistemul de numeraţie utilizat. Dintre sistemele de numeraţie folosite o mai largă răspândire au sistemul zecimal,

5

Fundamentele calculatoarelor

binar, octal şi hexazecimal. Toate aceste sisteme de numeraţie sunt sisteme poziţionale caracterizate prin faptul că ponderea fiecărei cifre din reprezentarea unui număr depinde de poziţia acesteia în reprezentare. În general, într-un sistem de numeraţie cu o bază pozitivă întreagă “b”, un numar oarecare N se exprimă în felul următor:

N

b

a

n

a

n 1

a a

1

0

(1.2)

iar valoarea lui poate fi determinată cu formula:

N

a

n

.b

n

a

n 1

.b

n 1

a b

1

a

0

(1.3)

(a) Sistemul de numeraţie zecimal (b=10) este sistemul cel mai frecvent folosit în elementele care realizează interacţiunea dintre om şi sistem (introducerea datelor,

afişarea rezultatelor). La reprezentarea numerelor se utilizează zece cifre. (b) Sistemul de numeraţie binar (b=2) este sistemul utilizat pentru reprezentarea internă a numerelor în sistemele de calcul. La reprezentarea numerelor în sistem binar se folosesc două cifre: 0 şi 1.

Exemplu:

N

2

1101

N

1.2

3

1.2

2

 

1

13

(c) Sistemul octal de numeraţie (b=8) este utilizat la introducerea şi extragerea datelor numerice în sisteme mici de calcul pentru simplificarea dispozitivelor de conversie. La reprezentare se folosesc 8 cifre.

Ex:

N

8

361

N

3.8

2

6.8

 

1

241

Conversia din sistemul octal în sistemul binar se face înlocuind fiecare cifră octală cu reprezentarea ei binară.

Ex:

361

8

011110001

2

Conversia inversă, din sistem binar în sistemul octal, se face înlocuind fiecare grup de 3 cifre alăturate, începând cu cifra cea mai puţin semnificativă, cu cifra octală corespunzătoare. Ex:

11001011 2
11001011
2

313

8

(d) Sistemul hexazecimal de numeraţie este asemănător cu sistemul octal şi are aceeasi destinaţie, cu precizarea că este preferat de cele mai multe ori deoarece conduce la o reprezentare foarte compactă a numerelor ceea ce constituie un avantaj real atunci când volumul datelor de introdus este mare.

Conversia din cod hexazecimal în cod binar şi invers se face după aceleasi principii ca şi pentru codul octal.

6

Fundamentele calculatoarelor

Sistemul utilizează cele zece cifre din sistemul zecimal urmate de primele şase litere mari din alfabet.

1.4 Coduri binare

În sistemele numerice pentru reprezentarea numerelor şi a simbolurilor se utilizează succesiuni de cifre binare de 0 şi 1. Corespondenţa dintre elementele mulţimii simbolurilor şi elementele mulţimii succesiunilor de 0 şi 1 defineşte un cod.

1.4.1 Reprezentarea datelor numerice 1.4.1.1 Codul binar. Reprezentarea numerelor binare cu semn

Există trei moduri de reprezentare a numerelor binare cu

semn:

- reprezentarea prin mărime şi semn;

- reprezentarea prin complementul faţă de 1;

- reprezentarea prin complementul faţă de 2.

În reprezentarea prin mărime şi semn prima cifră reprezintă semnul şi este, prin convenţie, 0 pentru numerele pozitive şi 1 pentru numerele negative. Celelalte cifre reprezintă mărimea numărului în cod binar natural. De exemplu, într-un sistem de calcul în care se alocă 8 cifre

pentru reprezentarea numerelor, numerele +53 si 53 se exprimă astfel:

53

53

 

10110101 00110101

În reprezentarea prin complementul faţă de 1 numerele pozitive se reprezintă la fel ca şi în reprezentarea prin mărime şi semn, iar cele negative se obţin prin schimbarea fiecărei cifre din reprezentarea prin mărime şi semn cu complementul ei, mai puţin cifra de semn. Pentru numerele considerate avem:

53

53

 

11001010 00110101

În reprezentarea prin complementul faţă de 2, numerele pozitive se reprezintă la fel ca şi în reprezentarea prin mărime şi semn, iar cele negative se obţin în două etape:

1- se formează complementul faţă de 1; 2- se adună o unitate la poziţia cea mai puţin semnificativă. Pentru exemplul considerat avem:

7

Fundamentele calculatoarelor

53

 

53

 

11001011 00110101

1.4.1.2 Codul zecimal-binar 8421

Codul zecimal-binar se foloseşte atunci când ponderea operaţiilor de prelucrare a datelor este mică în comparaţie cu ponderea operaţiilor de introducere/extragere (care se face în sistem zecimal) şi conversia în cod binar în vederea prelucrării este neeconomică. De asemenea codurile zecimal-binare se folosesc în cazurile în care se cere efectuarea de calcule exacte asupra numerelor zecimale fracţionare. Într-o codificare zecimal-binară fiecărei cifre zecimale îi corespunde o combinaţie de n 4 cifre binare. Dintre codurile zecimal-binare cel mai cunoscut este codul 8421 în care fiecare cifră zecimală este codificată separat cu 4 cifre binare, grupurile binare scriindu-se în ordinea în care au fost scrise cifrele zecimale.

Ex:

53 01010011

BCD

Observaţie: Întrucât din cele 16 combinaţii posibile ce se pot forma cu 4 cifre binare în codul 8421 (cod BCD) se folosesc numai 10, operaţiile aritmetice cu numere codificate în cod BCD prezintă unele particularităţi. Ex.1: Adunând 3 cu 4 în cod BCD rezultă:

0011+

0100

0111

=> 7 rezultat corect

Ex.2: Adunând 4 cu 7 în cod BCD se obţine:

0100+

0111

1011+

0110

10001

BCD se obţine: 0100+ 0111 1011+ 0110 10001 rezultat corect - > acest număr nu există

rezultat corect

-> acest număr nu există în cod BCD. Pentru a obţine codul rezultatului corect care este 00010001BCD trebuie facută o corecţie adunând codul cifrei 6.(corespunzător combinaţiilor neutilizate)

Ex.3: Adunând numerele 8 cu 9 în cod BCD ar trebui obţinut codul 00010111.

1000+

1001 10001+ corecţia 0110 10111 corect
1001
10001+
corecţia
0110
10111
corect

8

Fundamentele calculatoarelor

1.4.1.3 Coduri continue

Codurile continue sunt frecvent intâlnite, alături de codul binar natural, în dispozitivele numerice. Pentru a putea fi definite este necesar ca în prealabil să fie definită noţiunea de adiacenţă referitoare la cifre sau combinaţii de cifre. Într-un sistem de cifre două cifre se zic adiacente dacă diferă printr-o unitate. Sunt adiacente de asemenea cifrele extreme. Ca urmare, două combinaţii de cifre sunt adiacente dacă ele nu diferă decât prin cele două cifre ale unui singur rang, cifre care la rândul lor sunt adiacente. De exemplu numărul zecimal 460 are următoarele şase numere adiacente:

360, 560, 450, 470, 469, 461. În cazul particular al sistemului binar (nu există decât două cifre 0 şi 1 evident adiacente) două combinaţii adiacente sunt două combinaţii care au două cifre diferite numai într-un singur rang. Un cod cuprinzând toate combinaţiile posibile şi în care două combinaţii consecutive sunt adiacente se numeşte cod continuu. Dacă, în plus, ultima combinaţie este adiacentă cu prima, el se numeşte continuu ciclic. Dintre codurile binare continue ciclice cel mai frecvent folosite sunt codurile binare reflectate. Ele se numesc reflectate deoarece, dacă se inşiră cuvintele codului în ordinea naturală a numerelor pe care le codifică, pentru primele “m-1” cifre binare din cele “m” cifre binare ale cuvântului de cod, numărate de la dreapta la stânga, se poate găsi o axă de simetrie faţă de care se reflectă cele “m- 1” cifre binare ale cuvântului de cod. Apoi, în cadrul fiecărei jumătăţi, pentru primele “m-2” cifre se mai găseşte câte o axa de simetrie s.a.m.d. În fig.1.5 este dat codul binar reflectat cu patru cifre binare alături de codul binar natural. Codul binar natural reflectat, care este un cod ciclic, poartă denumirea de cod Gray.

COD BINAR

COD BINAR

NATURAL

REFLECTAT

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

1

0

0

0

1

1

0

0

1

1

0

0

1

0

9

Fundamentele calculatoarelor

0

1

0

0

0

1

1

0

0

1

0

1

0

1

1

1

0

1

1

0

0

1

0

1

0

1

1

1

0

1

0

0

1

0

0

0

1

1

0

0

1

0

0

1

1

1

0

1

1

0

1

0

1

1

1

1

1

0

1

1

1

1

1

0

1

1

0

0

1

0

1

0

1

1

0

1

1

0

1

1

1

1

1

0

1

0

0

1

1

1

1

1

1

0

0

0

Figura 1.5

1.4.2 Reprezentarea datelor alfa-numerice

Codificarea datelor alfa-numerice este necesară pentru a putea imprima şi memora mesaje sau comenzi. În mod

obişnuit se codifică 90 de caractere distincte care cuprind:

- 52 de simboluri pentru literele mari şi mici ale alfabetului;

- 10 simboluri pentru cifrele zecimale;

- 28 de simboluri pentru caractere speciale.

Codificarea a 90 de caractere necesită minimum 7 biţi. Datorită faptului că sistemele de calcul au magistrala de date organizată pe cel puţin 8 biţi, codificarea caracterelor alfanumerice se face cu 8 biţi, bitul al 8-lea putand fi folosit pentru verificarea paritatii. Exemplu de cod alfa-numeric frecvent utilizat este codul ASCII.

1.5 Circuite de comutaţie

Prelucrarea şi păstrarea datelor în sistemele de conducere cu stări finite se realizează cu ajutorul unor circuite cu numai două stări stabile, distincte, numite circuite de comutaţie. De exemplu, bobina unui releu poate fi parcursă de un curent sau nu, contactele unui releu pot fi închise sau deschise, un tranzistor poate fi blocat sau saturat, etc. În vederea utilizării lor la sinteza sistemelor de conducere cu stări finite, celor două stări distincte ale circuitelor de

10

Fundamentele calculatoarelor

comutaţie li se vor asocia cele doua cifre ale codului binar: 0 şi 1.

Considerând drept criteriu de clasificare a circuitelor de comutaţie modul lor de funcţionare, avem:

a) circuite cu comutaţie dinamică;

b) circuite cu comutaţie statică.

Circuitele cu comutaţie dinamică au fost primele circuite utilizate în sistemele de conducere şi au fost materializate de către releele electromagnetice. Circuitele de comutaţie statică cele mai frecvent utilizate în practică sunt circuitele de comutaţie cu porţi

logice. În general o poartă poate avea mai multe intrări

unde i 1,2,,n . Ieşirea porţii Y este funcţie de intrările

unde f este funcţie de comutaţie

acesteia, Y f(u 1 ,u 2 , sau funcţie logică.

U

i

,u

n

)

Rezumat

Un proces industrial este definit ca fiind un ansamblu de transformări mecanice, electrice sau de altă natură care au loc în instalaţii industriale. Mărimile care caracterizează modul de desfăşurare al procesului se numesc mărimi de ieşire iar cele care determină în mod cauzal variaţia mărimilor de ieşire se numesc mărimi de intrare. Mărimile de intrare se împart în două categorii:

- mărimi comandate;

- mărimi necomandate (perturbaţii). Sistemul de conducere urmăreşte desfăşurarea procesului şi generează comenzile către proces în scopul realizării obiectivelor impuse. Circuitele de comutaţie constituie componentele de bază în proiectarea sistemelor de conducere discrete moderne. Conversia analog-numerică constă dintr-un proces de eşantionare şi unul de cuantizare. Eşantionarea constă în preluarea valorilor mărimii continue la intervale constante de timp. Relaţia dintre perioada de eşantionare T şi frecvenţa maximă din spectrul semnalului

continuu

f max

, este:

T

1

2 f

max

Cuantizarea constă în asocierea unui număr pentru toate

11

Fundamentele calculatoarelor

valorile semnalului continuu cuprinse într-un interval denumit cuantă. Un număr N aflat într-un sistem de numeraţie cu o bază pozitivă întreagă “b” se exprimă în felul următor:

N

b

a

n

a

n 1

a a

1

0

Valoarea lui în baza 10 va fi determinată cu formula:

N

a

n .b

n

a

n 1

.b

n 1

a b

1

a

0

La reprezentarea numerelor în sistemul zecimal se utilizează zece cifre (0-9) în timp ce pentru sistemul binar se folosesc doar cifrele 0 şi 1. Sistemul hexazecimal de numeraţie conduce la o reprezentare foarte compactă a numerelor folosind cifrele de la 0 la 9 şi simbolurile A-F. Codul 8421 este codul în care fiecare cifră zecimală este codificată separat cu 4 cifre binare, grupurile binare

scriindu-se în ordinea în care au fost scrise cifrele zecimale.

Ex:

73 01110011

BCD

Într-un sistem de cifre, două cifre se zic adiacente dacă diferă printr-o unitate. Cifrele extreme sunt adiacente de asemenea. Un cod cuprinzând toate combinaţiile posibile şi în care două combinaţii consecutive sunt adiacente se numeşte cod continuu. Un cod continuu în care ultima combinaţie este adiacentă cu prima se numeşte cod continuu ciclic. Datele alfa-numerice sunt necesare pentru a putea memora mesaje sau comenzi. În mod obişnuit se codifică 90 de caractere distincte care cuprind:

- 52 de simboluri pentru literele mari şi mici ale alfabetului;

- 10 simboluri pentru cifrele zecimale;

- 28 de simboluri pentru caractere speciale. Codificarea caracterelor alfanumerice se face cu 8 biţi, bitul al 8-lea putând fi folosit pentru verificarea parităţii.

Întrebări

1. Ce se înţelege prin proces industrial ?

2. Ce tipuri de mărimi caracterizează procesul?

3. De câte tipuri pot fi mărimile de intrare?

4. Care sunt cele două operaţii necesare pentru o conversie analog-numerica?

12

Fundamentele calculatoarelor

5.

Care este relaţia dintre perioada de eşantionare T şi frecvenţa maximă din spectrul semnalului continuu

7.

Care este modul de exprimare a unui număr N într-o bază de numeraţie “b” şi cum poate fi determinată valoarea lui în baza 10?

Câte cifre şi (dacă e cazul) simboluri sunt folosite pentru următoarele baze de numeraţie: 2,10,16?

10.Daţi un exemplu de număr scris în codul 8421. 11.Când spunem că două cifre sunt adiacente? 12.Ce este un cod continuu? 13.Ce este un cod continuu ciclic? 14.De câţi biţi este nevoie pentru codificarea datelor alfanumerice?

9.

8.

6.

În ce constă eşantionarea?

În ce constă cuantizarea?

f

max

?

13

Fundamentele calculatoarelor

CAP. II FUNCŢII LOGICE

2.1 Elemente de algebră booleană

2.1.1 Axiomele şi teoremele algebrei booleene

Analiza şi sinteza circuitelor de comutaţie se face cu ajutorul algebrei booleene. Se consideră o mulţime B, cu cel puţin două elemente distincte, în care se definesc două operaţii binare, operaţia SAU (pentru care se foloseşte operatorul “+”) şi operatia SI (pentru care se foloseşte operatorul “.”), precum şi o relaţie de echivalenţă între elementele mulţimii B, pentru care se foloseşte simbolul “=”. În mulţimea B există două constante caracteristice, constanta 0 şi constanta 1. Mulţimea B considerată mai sus este o algebră booleană dacă sunt satisfăcute următoarele axiome:

A.1. Operaţiile SAU, respectiv SI, sunt asociative. Pentru orice a,b,cB

(

a

b

)

c

 

a

(

b

c

)

(

.

a b

).

c

a

.(

.

b c

)

(2.1)

A.2. Operaţiile SAU, respectiv SI, sunt comutative.

Pentru a,bB

a a b

.

b

b . a b

a

(2.2)

A.3. Există în mulţimea B două elemente 0 şi 1 cu efect nul faţă de cele două operaţii. Astfel pentru aB

a

a

.1   0 1. 0

a

a a

a

(2.3)

A.4. Operaţiile SAU, respectiv SI, sunt distributive una faţă de alta. Pentru a,b,cB

a

(

b c

)

(

a

b

)(

a

c

)

a .(

b

.

c

)

.

a b

.

a c

 

(2.4)

A.5. Fiecare element a din mulţimea B are un

complement în B, notat a , astfel încât:

a

a a

a

.

1

0

(2.5)

Pe baza axiomelor de mai sus se pot demonstra o serie de teoreme dintre care cele mai importante vor fi prezentate în continuare. Teorema 1. Idempotenţa elementelor mulţimii B pentru operaţiile SAU respectiv SI.

14

Fundamentele calculatoarelor

a a a   a a

.

a

(2.6)

Teorema

2.

Teorema

operaţiile SAU respectiv SI.

a a .0 1   0

1

elementelor absorbante pentru

(2.7)

Teorema 3. Legile absorbţiei.

a

a

a

.(

a

a b

.

a

)

a

b

a b

.

a

b

.(

a

a b

.

a

(

a

b

b

)

a b

.

).(

a b

a

)

.

a

b

a

Teorema 4. Unicitatea complementului: orice element aB are un singur complement in B. Teorema 5. Legea dublei complementări.

a a

Teorema 6. Legile lui De Morgan.

a b c

.

.

.

.

z

a

b

c

 

z

a

b

c

 

z

 

a b c

.

.

.

.

z

(2.8)

2.1.2 Algebra circuitelor de comutaţie

În studiul circuitelor de comutare se utilizează o algebră booleană în care mulţimea B considerată are numai două elemente, 0 şi 1, corespunzătoare celor două stări stabile ale circuitelor de comutare. Operaţia SAU este definită în tabelul

2.1, operaţia SI în tabelul 2.2, iar complementarea în tabelul

2.3.

SAU

0

1

0

0

1

1

1

1

Tabelul 2.1

SI 0 1 0 0 0 1 0 1 Tabelul 2.2
SI
0
1
0
0
0
1
0
1
Tabelul 2.2
NU 0 1 1 0 Tabelul 2.3
NU
0 1
1 0
Tabelul 2.3

Această algebră booleană numită şi algebra comutaţiei este identică cu algebra booleană folosită în logică în care însă cele două elemente ale mulţimii B sunt constantele logice “adevărat” şi “fals”. Din acest motiv algebra comutaţiei este denumită frecvent algebra logicii, operaţia SAU este numită şi sumă logică, operaţia SI este numită şi produs logic, iar complementarea este denumită negaţie. De asemenea circuitele de comutaţie se mai numesc şi circuite logice, iar funcţiile de transfer ale acestora se numesc funcţii logice.

15

Fundamentele calculatoarelor

2.2 Funcţii logice

, unde

i , pentru i 1,2,,n , iau valorile 0 şi 1, se

defineşte ca o aplicaţie a mulţimii

unde prin

cu ea insăşi de “n” ori. Există mai multe metode de specificare (exprimare) a unei funcţii logice, metode ce vor fi prezentate într-un alt subcapitol pentru a putea da exemple de funcţii logice. Dintre ele vom prezenta totuşi metoda definirii prin “tabel de adevăr”. Tabelul de adevăr al unei funcţii logice de “n” variabile

este o configuraţie geometrică cu “n+1” coloane şi

n combinaţii posibile de valori

2

Primele n coloane conţin cele

variabilele

n în mulţimea {0,1},

O funcţie logică de “n” variabile

x

{0,1}

{0,1}

f

(

x

1

,

x

2

,

,

x

n

)

n s-a notat produsul cartezian al mulţimii {0,1}

2

n

linii.

ale variabilelor funcţiei iar coloana “n+1” conţine valorile funcţiei. Pentru exemplificare în tabelul 2.4 este prezentat tabelul de adevar al funcţiei MAJORITATE DE 3 VARIABILE, funcţie ce ia valoarea 1 atunci când majoritatea variabilelor funcţiei au valoarea logică “1”.

a

b

c

fM

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

0

1

0

1

1

1

1

0

1

1

1

1

1

Tabelul 2.4

2.2.1 Funcţii logice elementare 2.2.1.1 Funcţii logice de o variabilă

Există patru funcţii logice de o variabilă şi anume: DA, NU, 0, 1, cu menţiunea că funcţiile “0” şi “1” sunt constante logice şi se utilizează la implementarea funcţiilor logice atunci când circuitele logice utilizate la implementare au intrări nefolosite.

a

f=a

a

f=a

a

f=0

a

f=1

0

0 0

1

0

0

0

1

1

1 1

0

1

0

1

1

a

b

c

Tabelul 2.5.

16

d

Fundamentele calculatoarelor

Circuitele care realizează funcţia logică DA (adică nu schimbă valoarea logică a semnalului aplicat la intrare) se utilizează pentru formarea semnalelor sau pentru mărirea puterii semnalelor (amplificare). Simbolul utilizat pentru aceste circuite este următorul:

Circuitele care implementează funcţia logică NU (adică inversează valoarea logică a semnalului aplicat la intrare) sunt utilizate atât pentru complementarea semnalului aplicat la intrare cât şi pentru formarea şi/sau mărirea puterii sale. Simbolurile folosite pentru aceste circuite sunt:

sale. Simbolurile folosite pentru aceste circuite sunt: Figura 2.1. 2.2.1.2 Funcţii logice de două varia bile
sale. Simbolurile folosite pentru aceste circuite sunt: Figura 2.1. 2.2.1.2 Funcţii logice de două varia bile

Figura 2.1.

2.2.1.2 Funcţii logice de două variabile

Există 16 funcţii logice de două variabile. Dintre acestea mai frecvent intâlnite sunt funcţiile logice SI, SAU, SI-NU, SAU-NU, SAU-EXCLUSIV. În continuare va fi prezentat tabelul de definiţie pentru aceste funcţii şi simbolurile utilizate pentru circuitele care le implementează:

     

SAU

 

SI

SAU-NU

SI-NU

a

b

f

a b

f

a.b

f

a b

f

a.b

0

0

 

0 0

 

1

 

1

0

1

 

1 0

 

0

 

1

1

0

 

1 0

 

0

 

1

1

1

 

1 1

 

0

 

0

  1 1 1   1 1   0   0 Tabelul 2.6. Observaţii: a) funcţia
  1 1 1   1 1   0   0 Tabelul 2.6. Observaţii: a) funcţia

Tabelul 2.6.

1 1   1 1   0   0 Tabelul 2.6. Observaţii: a) funcţia logică SAU
1 1   1 1   0   0 Tabelul 2.6. Observaţii: a) funcţia logică SAU

Observaţii:

a) funcţia logică SAU de două sau mai multe variabile ia valoarea logică 1 dacă cel puţin una din variabile are valoarea logică 1.

b) funcţia logică SI de două sau mai multe variabile ia valoarea logică 1 dacă toate variabilele au valoarea logică 1.

2.2.2 Moduri de exprimare a funcţiilor logice

Există mai multe moduri de exprimare a funcţiilor logice, moduri ce se împart în două categorii:

17

Fundamentele calculatoarelor

- moduri de exprimare algebrică;

- moduri de exprimare grafică.

Dintre modurile de exprimare algebrică existente în cadrul prezentului curs vor fi prezentate exprimările funcţiilor logice în formă canonică şi respectiv în formă normală, iar dintre modurile grafice vor fi prezentate exprimările funcţiilor logice prin tabel de adevăr, diagramă Veitch şi diagramă de timp .

2.2.2.1 Formele canonice ale funcţiilor logice

Forma canonică disjunctivă. Este aceea la care funcţia se exprimă ca o sumă logică de produse logice standard. Un

produs standard este un produs în care fiecare variabilă apare o dată şi numai o dată, în forma negată sau nenegată.

produse

standard. În tabel sunt date produsele standard de trei variabile, reprezentarea lor binară şi notaţia folosită. De reţinut că un produs standard este o funcţie logică, care ia valoarea logică “1” pentru o singură combinaţie de valori ale variabilelor.

În general cu “n” variabile se formează

2

n

PRODUS

REPREZENTATIE

NOTATIE

STANDARD

BINARA

a.b.c

0

0 0

P

0

a.b.c

0

0 1

P

1

a.b.c

0

1 0

P

2

a.b.c

0

1 1

P

3

a.b.c

1

0 0

P

4

a.b.c

1

0 1

P

5

a.b.c

1

1 0

P

6

a.b.c

1

1 1

P

7

Tabelul 2.7

Ţinând cont de această ultimă afirmaţie, precum şi de faptul că o sumă logică ia valoarea “1” dacă cel puţin un termen al sumei este egal cu “1”, rezultă că orice funcţie logică poate fi exprimată ca o sumă de produse logice standard şi anume, suma acelor produse standard ce corespund combinaţiilor de valori ale variabilelor pentru care funcţia ia valoarea logică “1”.

18

Fundamentele calculatoarelor

De exemplu forma canonică disjunctiva a funcţiei “MAJORITATE DE TREI VARIABILE”, funcţie definită în tabelul 2.4, este:

f M

a.b.c

a.b.c

a.b.c

a.b.c

P

3

P

5

P

6

P

7

(2.9)

Forma canonică conjunctivă. Este aceea la care funcţia

se exprimă ca un produs logic de sume logice standard. O sumă logică standard este o sumă în care fiecare variabilă apare o dată şi numai o dată în formă negată sau nenegată.

sume

standard. În tabelul 2.8 sunt date sumele standard de trei variabile, reprezentarea lor binară şi notaţia folosită. De reţinut că o sumă standard este o sumă logică care ia valoarea

logică “0” pentru o singură combinaţie de valori ale variabilelor.

În

general

cu

“n”

variabile

se

formează

2

n

SUME

REPREZENTARE

NOTATIE

STANDARD

BINARA

a b c

0

0 0

S

0

a b c

0

0 1

S

1

a b c

0

1 0

S

2

a a   b b   c c

0

1 1

S

3

1

0 0

S

4

a b c

1

0 1

S

5

a b c

1

1 0

S

6

a b c

1

1 1

S

7

Tabelul 2.8

Ţinând cont de această ultimă afirmaţie, precum şi de faptul că un produs logic ia valoarea logică “0” dacă cel puţin un termen al produsului este egal cu “0”, rezultă că orice funcţie logică poate fi exprimată ca un produs de sume logice standard şi anume, produsul acelor sume standard ce corespund combinaţiilor de valori ale variabilelor pentru care funcţia ia valoarea logică “0”. De exemplu forma canonică conjunctivă a funcţiei “MAJORITATE DE TREI VARIABILE” este:

f M

(a

b

 

c).(a

b

 

c).(a

b

 

c).(a

b

 

c)

S

0

.S .S

1

2

.S

4

19

(2.10)

Fundamentele calculatoarelor

2.2.2.2 Formele normale ale funcţiilor logice

Formele normale ale funcţiilor logice au în expresia lor termeni elementari. Un termen este elementar dacă nu conţine

toate variabilele independente ale funcţiei de “n” variabile. Formele normale ale funcţiilor logice se obţin în urma operaţiilor de minimizare. Există două forme normale şi anume:

forma normală disjunctivă în care funcţia se exprimă ca o sumă logică de produse logice.

-

-

Ex.

forma normală conjunctivă în care funcţia se exprimă ca un produs logic de sume logice.

Ex.

a.b.c b.c c

f f 2

1

(a

 

b

c).(a

c).b

2.2.2.3

Reprezentarea funcţiilor logice prin tabel de adevăr

Studiată în 2.2.

2.2.2.4

Veitch-Karnaugh

Reprezentarea

funcţiilor

logice

prin

diagrame

Diagrama Veitch-Karnaugh este tot o reprezentare tabelară, dar în raport cu tabelul de adevăr este mai compactă datorită dispunerii bidirecţionale a valorilor variabilelor. În cazul general al unei funcţii logice de “n” variabile,

diagrama Veitch-Karnaugh conţine

astfel ca p+q=n. Dacă n este par, în mod obişnuit p=q, iar dacă n este impar, q=p+1 (sau p=q+1). Rezultă o diagramă cu

celule, câte o celulă pentru fiecare combinaţie de valori ale variabilelor. Celulele sunt plasate folosind regula adiacenţei. Două celule se numesc adiacente dacă combinaţiile de valori ale variabilelor care le corespund diferă pentru o singură variabilă. Celulele de la extremităţile unei linii sunt adiacente între ele, afirmaţie valabilă şi pentru celulele de la

extremităţile unei coloane. Valorile pe care le iau variabilele se scriu în dreptul liniilor şi al coloanelor sau, se trasează o bară în dreptul liniilor sau coloanelor în care o variabilă ia valoarea “1”. În figura 2.2. sunt reprezentate diagramele Veitch- Karnaugh de 2, 3, 4 şi 5 variabile, în interiorul celulelor trecându-se produsele logice standard care le corespund.

coloane,

2

p

linii şi

2

q

2

n

20

Fundamentele calculatoarelor

La reprezentarea funcţiilor logice prin diagrame Veitch- Karnaugh se introduce valoarea logică “1” în celulele diagramei corespunzătoare combinaţiilor de valori ale variabilelor funcţiei pentru care aceasta ia valoarea logică “1”. Observaţie: Datorită creşterii complexităţii diagramelor odată cu creşterea numărului variabilelor funcţiei această metodă nu este utilizată pentru funcţii la care n>6.

nu este utilizată pentru funcţii la care n >6. Figura 2.2 2.2.2.5 Reprezentarea funcţiilor logice de

Figura 2.2

2.2.2.5 Reprezentarea funcţiilor logice de timp

Metoda constă în reprezentarea, cu ajutorul diagramelor temporale, a variaţiei valorilor variabilelor funcţiei şi a valorilor funcţiei, atasându-se pentru aceasta valorii logice “0” un semnal de nivel coborât, iar valorii logice “1” un semnal de nivel ridicat, astfel ca între cele doua nivele să existe o diferenţiere netă. Reprezentarea folosind aceasta metoda este utilă în studiul sistemelor secvenţiale în a căror evoluţie intervine şi timpul. De asemenea folosind această reprezentare se pot studia fenomenele tranzitorii de comutare şi fenomenele de hazard datorate funcţionării neideale a circuitelor de comutaţie care implementează variabilele şi funcţiile logice. În fig.2.2. este reprezentată prin diagramă de timp

funcţia logică f a.b .

1 a 1 0 0 0 t b 1 0 0 t 1 1 1
1
a 1
0 0
0
t
b
1
0
0 t
1
1 1
f
0
0 t

Figura 2.3

21

Fundamentele calculatoarelor

2.2.3 Funcţii incomplet definite

Uneori funcţiile logice pe care trebuie să le realizeze un circuit logic nu sunt definite pentru toate combinaţiile posibile de valori ale variabilelor de intrare deoarece anumite combinaţii nu pot să apară efectiv în timpul funcţionării sau valorile funcţiei pentru anumite combinaţii de valori ale variabilelor sunt indiferente. O funcţie logica ale cărei valori nu sunt precizate pentru toate combinaţiile posibile de valori ale variabilelor de intrare se numeşte funcţie logică incomplet definită. În tabelul de adevăr al funcţiei logice incomplet definite, în dreptul combinaţiilor de valori ale variabilelor pentru care funcţia nu este definită se trece “*”. Exemplu: Se consideră un vehicul V ce se poate deplasa pe o cale de rulare a-d cu două viteze :

- viteza normală, VN, pe intervalul b-c;

- viteza redusă, VR, la extremităţile căii în vederea opririi. Se pune problema exprimării funcţiilor VN şi VR ce

trebuiesc implementate de către un sistem de comandă ce

3 referitoare la

poziţia vehicolului pe calea de rulare. Tabelul de adevăr al celor două funcţii se completează uşor ţinând cont că în timpul unei funcţionări normale combinaţiile 101 şi 111 nu pot să apară.

primeşte la intrare informaţiile

X

1

, X

2

şi

X

X

1

X

2

X

3

VN

VR

0

0

0

0

0

0

0

1

0

1

0

1

0

1

0

0

1

1

0

1

1

0

0

0

1

1

0

1

*

*

1

1

0

0

1

1

1

1

*

*

Tabelul 2.10

a

v
v

b c

d

0 0 1 1 1 1 * * Tabelul 2.10 a v b c d X
0 0 1 1 1 1 * * Tabelul 2.10 a v b c d X
0 0 1 1 1 1 * * Tabelul 2.10 a v b c d X

X

1

X

2

X

3

Figura 2.4

definite

exprimate algebric, combinaţiile pentru care ele sunt nedefinite se menţionează explicit.

Observaţie:

În

cazul

funcţiilor

incomplet

22

Fundamentele calculatoarelor

2.3 Minimizarea funcţiilor logice

Reprezentarea funcţiilor logice nu este unică, aceeaşi funcţie logică putând avea mai multe reprezentări. Prin urmare aceeaşi funcţie logică poate fi implementată cu diverse scheme şi diverse circuite de comutare. Din mulţimea variantelor de implementare a unei funcţii logice unele pot fi preferate în raport cu altele din diverse motive: simplitate, economicitate, fiabilitate, etc. Pentru a alege expresia minimă a unei funcţii logice trebuie folosit un criteriu de performanţă. Dintre criteriile de performanţă existente mai frecvent utilizate sunt următoarele:

- număr minim de litere în expresia funcţiei logice;

- număr minim de termeni în forma normală a funcţiei;

- număr minim de capsule integrate necesare la implementarea funcţiei. Criteriul numărului minim de litere în expresia funcţiei logice este utilizat mai des în schemele cu relee unde numărul de litere este egal cu numărul de contacte folosite. Forma normală disjunctiva sau conjunctivă se foloseşte atunci când se cere viteză mare de lucru. Formele normale se implementează cu circuite de comutare plasate pe doua nivele obtinându-se intârzieri minime în propagarea semnalelor. În schemele cu circuite integrate costul global al instalaţiei este, în general, proporţional cu numărul capsulelor integrate, de unde rezultă cerinţa de a minimiza numărul capsulelor folosite. În cele ce urmează se va considera minimizarea funcţiilor logice în formă normală. O expresie normală a unei funcţii este minimă daca conţine un număr minim de termeni, cu condiţia să nu existe o altă expresie normală cu acelaşi număr de termeni, dar cu un număr mai mic de litere.

2.3.1 Minimizarea funcţiilor logice folosind diagrame Veitch-Karnaugh 2.3.1.1 Minimizarea funcţiilor logice în formă normală disjunctivă

Cunoscând că la reprezentarea funcţiilor logice prin diagrame Veitch-Karnaugh se introduce valoarea logică “1” în celulele diagramei corespunzătoare combinaţiilor de valori ale variabilelor funcţiei pentru care aceasta ia valoarea “1”, metoda minimizării cu diagrame Veitch-Karnaugh urmăreşte

23

Fundamentele calculatoarelor

gruparea acestor celule într-un număr minim de configuraţii rectangulare de dimensiuni cât mai mari şi exprimarea acestor grupări sub forma unor produse logice al acelor variabile care în cadrul grupării nu-şi schimbă valoarea. Pentru prezentarea metodei se vor defini în prealabil

noţiunile de implicaţie, implicant, implicant prim şi implicant

prim esenţial, folosindu-ne pentru aceasta de funcţiile definite în fig.2.5.

f

1

şi

f

2

f 1
f
1
 

c

0

0

1 0

 

0

0

1 0

1

1

1 0

a

1

0

1 0

d

f 2
f
2

b

a

 

d

c

1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

e

e

Figura 2.5

b

Implicaţia: se zice că o funcţie f „ implică o altă funcţie f “ dacă pentru orice combinaţie a variabilelor pentru care f „ ia valoarea logică 1, f “ ia deasemenea valoarea logică 1.

f 1

De

a.c.d

exemplu

a.b.c

c.d

.

funcţia

f 3

a.b.c.d

c.d

implică

funcţia

Implicant: un produs în care apar una sau mai multe variabile este un implicant al unei funcţii dacă implică funcţia.

De exemplu produsele: c.d,a.b.c,c.d.a,a.b.c.d, sunt implicanţi

ai funcţiei

ai funcţiei

Implicant prim: un implicant care nu este conţinut într- un implicant format din mai puţine variabile se numeşte implicant prim. De exemplu a.e este implicant prim al funcţiei

nu este implicant prim deoarece el îl

, iar produsele a.b.c.d.e,a.c.e,a.e, sunt implicanţi

f

1

f

2

.

f

2

în

timp ce

a.c.e

implică pe a.e care are mai puţine variabile. Implicant prim esenţial: este un implicant prim care acoperă un produs standard neacoperit de alţi implicanţi primi.

De exemplu a.c.d este implicant prim esenţial al funcţiei f 1 deoarece este singurul implicant prim care acoperă produsul

standard a.b.c.d , în timp ce a.b.c nu este implicant prim esenţial

al

acoperite atât de implicantul prim a.b.c cât şi de implicantul

prim a.b.d .

Observaţii ce stau la baza minimizării cu diagrame Veitch-Karnaugh:

sunt

lui

f

1

întrucât produsele standard

a.b.c.d

şi

a.b.c.d

24

Fundamentele calculatoarelor

a) Expresia minimală a unei funcţii logice este o sumă

de implicanţi primi. Dacă expresia unei funcţii logice conţine un implicant care nu este implicant prim atunci acesta poate fi înlocuit cu implicantul prim care îl conţine şi care are mai puţine variabile.

b) Orice funcţie logică poate fi exprimată ca o sumă de produse astfel încât fiecare produs corespunde unei

n celule în diagrama Veitch-Karnaugh şi

fiecare celulă, care corespunde unei combinaţii de valori ale variabilelor pentru care funcţia ia valoarea logică 1, este conţinută în cel puţin o grupare.

c) Implicanţii primi esenţiali intră toţi în expresia minimală a funcţiei.

Ţinând cont de aceste observaţii minimizarea se realizează în două etape:

grupări de

2

1)

Se determină implicanţii primi esenţiali.

2)

Celulele în care este înscris 1 logic şi care nu sunt acoperite de implicanţi primi esenţiali se includ în grupări cât mai mari astfel încât numărul de implicanţi primi care se adaugă să fie cât mai mic.

Exemplu: minimizarea funcţiilor

fig.2.5.

f

1

şi

f

2

definite în

i p e

i p n

.

.

.

.

:

:

a c d . . , c d . a b c a b d
a c d
.
.
,
c d
.
a b c a b d
.
.
,
.

i p e

.

.

:

:

.

i p n

.

.

a b c d e a b d

.

.

.

.

.

,

.

.

b d e

.

,

.

a e

(2.11)

f

1

a c d

.

.

c d

.

a b c

.

.

f

2

a b c d e

.

.

.

.

a b d

.

.

a e

.

2.3.1.2 Minimizarea funcţiilor logice în formă normală conjunctivă

Minimizarea funcţiilor logice în formă normală conjunctivă urmează aceleaşi reguli ca şi pentru forma normală disjunctivă. În continuare se vor redefini noţiunile de implicaţie, implicată, implicată primă şi implicată primă

f f 3 4 esenţială pe baza funcţiilor şi definite în fig.2.6. f f 1
f
f
3
4
esenţială pe baza funcţiilor
şi
definite în fig.2.6.
f
f
1
2
b
c
0
1
1
0
1
1
0
0
a
1
1
1
1
0
0
1
0
c
0
0
1
1
a
1
1
1
1

Figura 2.6

25

d

b

Fundamentele calculatoarelor

Implicaţia: se consideră ca o funcţie f „ implică o altă funcţie f “ dacă pentru orice combinaţie a variabilelor pentru care f “ ia valoarea “0” f „ ia deasemenea valoarea “0”. De

exemplu

funcţia

funcţia

f

1

(

a b c

)(

a b c

)

implică

f

3

(

a b c

)

.

care apar una sau mai multe

variabile este o implicată a unei funcţii dacă funcţia o implică.

Implicată: o sumă în

De exemplu: b c d,b c ,a b c,a c d sunt implicate ale

funcţiei

Implicată primă: o implicată a unei funcţii care nu este conţinută într-o altă implicată formată din mai puţine variabile

f

2

.

este implicată primă. De exemplu b c este o implicată primă

a funcţiei

deoarece este implicată de b c . Implicată primă esenţială: este o implicată primă care acoperă o sumă logică standard neacoperită de alte implicate

nu este implicată primă

f

2

în

timp ce

b c d

prime. De exemplu b c este implicată primă esenţială în timp

ce a c d nu este implicată primă esenţială întrucât sumele

logice standard a b c d si a b c d sunt acoperite şi de

implicatele prime a b d şi respectiv a b c . Minimizarea se realizează în două etape:

1) Se determină implicatele prime esenţiale; 2) Dacă rămân celule în care este inscris “0”

neacoperite de implicatele prime esenţiale, acestea se includ în grupări cât mai mari astfel că numărul de implicate prime care se adaugă să fie cât mai mic.

definite în

Exemplu: minimizarea funcţiilor

f

1

şi

f

2

fig.2.6.

.

.

f

i

i

p e

p n

.

.

:

:

a

1

 

a

c

c

.

.

f

i

i

p e

p n

.

.

2

:

:

b

a

b

(

c a

,

c

c

).(

d

a

 

b c , a   b d   b c ).( a
b
c
,
a
 
b
d
 
b
c
).(
a

 

 

c

d )

(2.12)

2.3.1.3 Minimizarea funcţiilor incomplet definite

Minimizarea funcţiilor incomplet definite este importantă întrucât, de cele mai multe ori, în cazul comenzilor secvenţiale, se întâlnesc situaţii de nedefinire. Luarea în considerare a combinaţiilor de valori ale variabilelor pentru

26

Fundamentele calculatoarelor

care funcţia nu este definită conduce la obţinerea unor forme normale minime. Pentru exemplificare se consideră cele trei funcţii definite prin diagramele Veitch din fig.2.7 si 2.8.

X 2 VN X 1 0 0 0 0 1 * X * 0 3
X
2
VN
X 1 0
0
0
0
1
*
X
*
0
3
X
2
VR
X 1 1
0
1
1 0
*
X
* 1
3

Figura 2.7

c 1 0 1 * 1 1 0 0 b * 0 * 0 a
c
1
0
1
*
1
1
0
0
b
*
0
*
0
a
1
0
0
1
d

Figura 2.8

În urma analizării celor trei funcţii se observă că pentru prima funcţie este avantajos să se considere că funcţia ia valoarea logică “0” pentru combinaţiile indiferente, pentru cea de a doua că ia valoarea logica “1”, iar pentru cea de a treia pentru unele combinaţii se va considera f=1, iar pentru altele

f=0.

VN

VR

f

X

X

X

1

.

a b c

2

.

X

b d

.

1

X

.

3

.

3

a b c

.

.

(2.13)

Pentru minimizarea funcţiilor incomplet definite se parcurg aceleaşi etape ca şi la funcţiile complet definite, dar cu următoarele precizări:

1) Pentru determinarea mulţimii implicanţilor primi se consideră că funcţia ia valoarea logică “1” pentru combinaţiile indiferente. 2) Pentru determinarea unei acoperiri minime a funcţiei în tabelul implicanţilor primi nu se introduc produsele (respectiv sumele) standard corespunzătoare combinaţiilor indiferente.

Rezumat

După o definire a algebrei booleene sunt prezentate principalele axiome, proprietăţi şi teoreme ale acesteia. Sunt prezentate asociativitatea operaţiilor SAU respectiv SI

27

Fundamentele calculatoarelor

precum şi comutativitatea lor, existenţa elementelor nule 0 şi 1, distributivitatea celor două operaţii una faţă de alta, proprietăţile complementului, teorema de idempotenţă, legile absorţiei, legea dublei complementări, legile lui De Morgan. În continuare sunt prezentate funcţiile logice, o definire a acestora, funcţiile logice de una şi respectiv două variabile, moduri de definire ale funcţiilor logice. Modurile de definire prezentate în cadrul capitolului sunt: cele în formă canonică, în formă normală, cu ajutorul diagramelor de timp, pe baza tabelelor de adevăr, cu ajutorul diagramelor Veitch- Karnaugh. Dintre modurile de definire în formă canonică este prezentat şi cel în formă canonică disjunctivă în care funcţia este exprimată ca o sumă de produse logice standard cât şi cel în formă canonică conjunctivă în care funcţia este exprimată ca un produs de sume canonice standard. Bineînţeles că şi modurile de reprezentare în formă normală sunt prezentate ambele tipuri de reprezentări. Nu s-a insistat asupra reprezentării pe bază de tabel întrucât a fost folosită deja la reprezentarea fu