Documente Academic
Documente Profesional
Documente Cultură
Figura 1.1 Jucătorul mecanic de şah “Turcul” şi autorul său, baronul von Kempelen
Automatul a avut ulterior mai mulţi proprietari care au organizat timp de 84 de ani
turnee demonstrative în Europa şi America. Printre personalităţile care au jucat partide de
şah şi au fost înfrânte de acest misterios automat au fost Napoleon Bonaparte şi Benjamin
Franklin. Deşi contestat de mulţi contemporani şi considerat o şarlatanie, în sensul că se
presupunea că totul este un abil truc de iluzionism prin care se permite unei persoane să
2
La începutul sec. XVII, în Anglia au loc mai multe descoperiri pe linia calculului
matematic automat. Mai întâi, excentricul matematicianul scoţian John Napier inventează
logaritmul prin care operaţiile de înmulţire se puteau efectua mult mai rapid, ca operaţii
de adunare. Putem spune că atunci s-a realizat primul algoritm numeric care era capabil
să accelereze viteza de calcul. Pentru implementarea calculului cu logaritmi, Napier
inventează o tablă marcată şi ulterior, ca o alternativă mai rapidă, piese marcate, care s-au
numit “oasele lui Napier”, deorece materialul folosit era fildeşul (Fig.1.4).
Descoperirile lui John Naplier au stat la baza apariţiei riglei de calcul (Fig.1.5). Ea
a fost inventată în Anglia, în anul 1632. Dacă ne amintim că inginerii şi proiectanţii care
au lucrat la programele NASA din anii 60, (Mercury, Gemini, Apollo) au avut rigla drept
aparat de calcul matematic, putem avea o imagine a importanţei acestui echipament în
inginerie, vreme de mai bine de 300 de ani.
4
Figura 1.8 Două imagini ale maşinii mecanice de calcul inventată de Blaise Pascal, în
versiunea constructivă de 6 digiţi.
care existau., fiind transformate în noi rezultate. Procesul secvenţial de calcul se derula
conform “programului” înscris în cartelele perforate. În esenţă, maşina automată de
calcul propusă de Babbege conţine elementele principale ale oricărui calculator modern,
respectiv unitatea de memorie şi unitatea centrală de operare. De asemenea maşina
analitică mai folosea funcţia de instrucţiune condiţionată, element esenţial pentru
funcţionarea calculatoarelor numerice. Un aspect pitoresc al vieţii lui Babbage a fost
prietenia lui cu Ada Byron, fiica poetului Lord Byron. Fascinată de ideile lui Babbege,
chiar atunci când el a refuzat să le mai facă publice, dezamăgit de incapacitatea de
înţelegere a epocii, Ada a continuat să-i studieze şi comenteze cercetările, ba chiar să
lucreze programe pentru maşina care nu a mai fost contruită niciodată. Din acest motiv,
Ada Byron este considerată prima programatoare din lume.
astfel de echipament încă din anul 1938. Mai mult decât atât, el a obţinul această
performanţă fără condiţii deosebite, prima versiune fiind realizată între 1936-1938, în
locuinţa părinţilor săi. Echipamentul, numit Z1. A treia variantă, Z3, finalizată în anul
1941 a fost primul calculator digital, programabil, de uz general. Fără a avea alte
cunoştiinţe asupra maşinilor de calcul cu excepţia lucrărilor lui Leibnitz, Konrad Zuse a
decis să folosească reprezentarea binară a numerelor. Primele trei variante au fost distruse
în bombardamentele aliaţilor. Doar Z4 a fost salvat fiind încărcat într-un vagon şi ascuns
în munţi. În condiţiile celui de-al doilea război mondial este evident că cercetătorii
implicaţi în proiecte legate de calculatorul numeric nu aveau cum să ştie de ideile lor. Cu
toate acestea, Z4 avea aceleaşi blocuri funcţionale ca variantele americane, de fapt
blocurile funcţionale care caracterizează astazi colculatoarele numerice: unitate aritmetică
(pentru efectuarea calculelor), memorie(pentru stocarea datelor şi rezultatelor), sistem de
control (pentru supervizarea operaţiilor), periferice de intrare şi de ieşire. Ca şi în cazul
calculatorului MARK I, Konrad Zuse a dezvoltat de asemenea un limbaj de nivel înalt, pe
care l-a numit "Plankalkul", dar care nu a avut din cauza războiului o răspândire similara
limbajului COBOL. O imagine a primei versiuni Z1, aşa cum a fost construită în casa
părinţilor săi, este prezentată în Fig. 1.16.
Figura 1.16. Calculatorul Z1, realizat în condiţiile unei case private de către Konrad Zuse.
Procesul tehnologic ulterior cuprinde mai multi paşi, prezentaţi în Fig. 1.21.
Tehnologia fotografică este capabilă să ofere o foarte bună rezoluţie. Din acest motiv este
utilizată la tehnologia circuitelor integrate. Mai întâi placa de silicon este acoperită cu un
start de substanţă fotosensibilă, stratul fotorezistent. Ca şi în tehnicile fotografice,
negativul, aici numit mască, nu trebuie să aibe aceeaşi dimensiune cu imaginea de pe
placa de siliciu. Stratul fotosensibil este expus la lumină prin masca 1. În funcţie de
natura stratului fotosensibil, suprafaţa expusă la lumină va putea fi eliminată printr-un
proces de spălare sau dimpotrivă, va fi cea care va rămâne după spălare. Placa de siliciu
este supusă la băi chimice, vapori de metal de înaltă temperatură ori este bombardată cu
fascicule de ioni. În urma acestor tratamentele doar zonele care au fost eliminate prin
procesul de spălare vor fi afectate. Acest set de operaţii se repetă de mai multe ori. Adică
se plasează un nou strat fotosensibil, se foloseşte o nouă mască în procesul fotolitografic,
se spală chimic pentru a elimina zonele expuse ori ne-expuse, în funcţie de natura
stratului fotosensibil şi se completează zonele rămase libere prin procedeele enumerate.
începutul tehnologiei circuitelor integrate s-a folosit pentru procesul foto lumina din
spectrul vizibil, adică din domeniul de lungimi de undă 700nm (roşu) la 400nm (violet).
Este evident că utilizarea radiaţiei electromagnetive cu lungimi de undă mai mici de
400nm, din afara spectrului vizibil, este mai adecvata pentru operaţia de litografie,
respectiv se pot expune arii mai mici şi astfep creşte densitatea de integrare. Din acest
motiv, la tehnologia actuală, radiaţia folosită pentru a copia măştile este din zona
ultraviolet (<400nm) şi se experimentează tehnologii pentru lungimi de undă de 200nm.
Când placa de siliciu, wafer-ul, este procesată complet, ea este testată iar după
aceea sunt separate ariile individuale. Cele care au fost depistate defecte sunt eliminate
iar cele care funcţionează corect sunt duse la operaţiunea de incapsulare. Strucurile de tip
packing sunt structuri standardizate şi în acest mod este astfel optimizată utilizarea
circuitelor integrate. În mod obişnuit circuitele din familiile Ssi şi MSI sunt de tip DIP
(dual in-line package) cu variante de 14 sau 16 pini. Varianta clasică de 16 pini este
prezentată în Fig. 1.22. Circuitele integrate de memorie şi anumite circuite din familia
VLSI sunt oferite în capsule cu 16, 18, 24 şi 28 de pini.
(1.1)
c) cn 0
Din punct de vedere practic trebuie să observăm ca dacă avem o bază oarecare b,
ea va utiliza b simboluri. De exemplu, baza cinci foloseşte cinci cifre 0,1,2,3,4, baza
şapte foloseşte şapte cifre 0,1,2,3,4,5,6. Este interzis să folosim într-o bază dată cifre
egale sau mai mari decât valoarea bazei. Astfel, în baza trei pot exista numerele 1102,
220011, 1201001, în schimb nu pot exista numere de tipul 32154, 221003, 63534...
Definiţia (1) se poate extinde de la numerele naturale la numerele reale. În acest
caz, un număr real pozitiv k se scrie în baza b sub forma cn , cn1, cn2, c1c0 , c1c2 dacă:
(1.2)
c) cn 0
Comparând cele două definţii, pentru numere naturale şi pentru numere reale, observăm
că în cazul numerelor reale apare o condiţie suplimentară. Ea este necesară pentru a
asigura unicitatea reprezentării numerelor. Se impune să nu existe un rang la
partea fracţionară a numărului după care, toate cifrelele reprezentării să fie egale
cu b-1. În cazul în care nu s-ar impune această condiţie, ar avea loc egalităţi de
forma:
(1.3)
Pentru a extinde definiţia anterioară la toate numerele reale, se dezvoltă
următoarele condiţii
a) Dacă k > 0, atunci numărul se reprezintă conform setului de relaţii (1.2)
b) Dacă k = 0, atunci numărul se reprezintă 0.
c) Dacă k < 0, atunci se fixează semnul -, după care urmează reprezentarea
numărului conform setului de relaţii (1.2).
Prima observaţie ce apare este că bazele de valoare mai mică folosesc un numar
mai mic de cifre, simboluri dar pentru scrierea numerelor este nevoie de mai multi digiţi.
Numărul zecimal 30 se scrie în binar folosind cinci simboluri, în baza 3 folosind patru
21
simboluri, în baza 4 cu trei simboluri iar în bazele 10, 8 sau 16 se folosesc doar două
sinboluri, cifre.
Se vedem acum algoritmii de trecere din diverse baze în baza 10 şi invers, din
baza 10 în alte baze. Pentru trecerea în baza 10 pornind de la un număr natural scris într-o
baza oarecare b, se foloseşte relaţia:
(1.4)
Conversia inversă a numerelor naturale, dintr-o bază oarecare în baza 10 se face prin
algoritmul împărţirilor succesive (algoritmul resturilor): se împarte numarul scris în baza
10 la noua bază. Se păstrează câtul şi se notează restul. Cătul se împarte din nou la noua
bază, păstrând câtul şi restul. Seria de împărţiri continuă până când ultimul cât este mai
mic decât baza la care se împartea. Numărul transpun în noua bază se obţine din sirul
resturilor citit de la ultimul către primul.
Să alegem pentru exemplificare numărul 985435 din baza 10, care trebuie trecut
în baza 6. Şirul împărţirul succesive, cu resturile corespunzătoare se dă în tabelul 1.2.
Tabel 1.2.
Deîmpăr- Impărţi-tor (q) Cât Rest Simbol
n ţit (baza 10) (cn) cifră (Cn)
(baza 10) (baza 10) (baza 10) (baza 6)
0 985437 6 164239 3 3
1 164239 6 27373 1 1
2 27373 6 4562 1 1
3 4562 6 760 2 2
4 760 6 126 4 4
5 126 6 21 0 0
6 21 6 3 3 3
7 3 6 0 3 3
anterior, care foloseşte ca etapă intermediară conversia în baza 10. În acest caz,
aritmetica este redusă la cea clasică, specifică bazei zecimale.
Tabel 1.3.
Deîmpărţit Impărţitor Cât Rest Simbol
(baza 6) (baza 6) (baza 6) (baza 6) (baza 16)
33042113 24 1153045 21 D
1153045 24 25453 5 5
25453 24 1040 13 9
1040 24 23 0 0
23 24 0 23 F
Pentru numerele reale exista mai multe variante de conversie: conversia parţilor întregi,
conform algoritmilor prezentaţi şi conversia separată a părţilor zecimale pe baza
algoritmului înmulţirilor succesive. De asemenea există şi algoritmul substituţiei
(algoritmul lui Homer) ce permite conversia întregului număr real, cu parte întreagă şi
parte zecimală. Deoarece algoritmul substituţiei operează cu întregul număr real, vom
prefera aceasta metodă de conversie.
Algoritmul substituţiei realizează conversia unui număr real dintr-o bază veche p
într-o bază nouă q. Toate calculele se fac în noua baza q. Se presupune că pentru
reprezentarea numărului real se reţine un număr finit de cifre pe partea fracţionară. Fie
numărul real scris în baza p: x = (cncn-1...c1c0,c-1c-2c-3...c-k)p. Paşii algoritmului de
conversie de tip substituţie sunt:
-se reprezintă în noua bază q toate cifrele numărului x:
cn, cn-1, ..., c1, c0, c-1, c-2, c-3, ..., c-k → Cn, Cn-1,..., C1, C0, C-1, C-2, C-3, ..., C-k
(pentru acest pas este utilă reprezentarea tabelară a cifrelor celor două baze, care
permite conversia rapidă).
-se reprezintă şi numărul p în baza q
-pe baza acestor conversii, se calculează în noua baza q expresia:
CnPn+Cn-1Pn-1+...+C1P+C0+C-1P-1+C-2P-2+C-3P-3+...+C-kP-k
-rezultatul calculat în noua bază q reprezintă valoarea cerută a numărului
Atunci când numărul are şi parte fracţionară, este foarte probabil ca rezultatul
conversiei să aibă o infinitate de cifre la partea fracţionară. De exemplu, calculând
în baza 7, avem:
În cadrul echipamentelor numerice baza utilizată este baza 2, baza binară. Această
realitate vine din considerente tehnologice. La actualul stadiu de evoluţie tehnologică,
elementele care pot fi realizate la costuri accetabile economic sunt cele care au două stări
distincte şi care se preteză astfel pentru implementarea funcţiilor aritmetice şi logice de
tip binar. Baza binară foloseşte simbolurile 0 şi 1. In tabelul 1.1 a fost prezentată scrierea
în binar a numerelor din baza 10, de la 0 la 33. Se observă asfel că dacă principalul
avantaj il constituie numarul redus de simboluri folosite, 2, principalul dezavantaj este dat
de lungimea mare, numărul mare de cifre necesar scrierii numerelor.
Fiind un sistem de numeraţie de tip poziţional, el foloseşte, conform definiţiei generale a
bazelor de numeraţie, ponderea dată de puterile lui doi. Asfel, numărul 101101 în baza 2
are valoarea în baza 10: .
Trecerea din binar în zecimal a numerelor naturale se face pe baza algoritmului descris
anterior, al împartirilor succesive (al resturilor):
O noţiune importantă este cea legată de cel mai puţin semnificativ bit (MPSB), respectiv
de cel mai semnificativ bit MSB (sau Most Significant Bit-MSB ). Bitul MPSB (sau Last
Significan Bit- LSB) este cel corespunzător ponderii (primul bit din partea dreaptă) iar
MSB este bitul cu cea mai mare pondere, respectiv ultimul bit din partea stângă a
numărului binar.
Dacă trebuie convertit un număr real din zecimal în binar, se aplică următoarea
regulă:
-partea întreagă a numărului real este trecută în binar cu algoritmul resturilor
-pentru partea zecimală conversia se realizează printr-un alt algoritm, bazat pe
înmulţiri succesive.
Algoritmul specific conversiei părţii zecimale este prezentată prin următoarele exemple:
a) Să se realizeze conversia:
0,39654×2 = 0,79308 = 0 (MSB al numărului din binar) + 0,79308
0,79308×2 = 1,58616 = 1 (următorul bit al numărului) + 0,58616
Aşa cum s-a aratat anterior, baza binară are dezavantajul folosirii unui mare
număr de cifre pentru reprezentările numerice. Din acest motiv, sistemele numerice mai
folosesc două baze, cea octală şi cea hexazecimală. În plus, baza octală are două
importante proprietăţi care o fac atractivă: utilizarea completă a tripletei de biţi şi
facilitarea tehnicilor de minimizare a funcţiilor binare prin simbolul de marcare D.
Simbolurile, cifrele folosite de baza octală sunt: 0,1,2,3,4,5,6,7. În tabelul 1.4. sunt
prezentate numerele din octal împreună cu transcrierea lor binară. Se observă rapid prima
proprietate a bazei octale, respectiv folosirea completă a tripletei de biţi. Pentru cele 8
cifre ale sistemului octal se utilizează toate combinaţiile posibile ale tripletei de biţi,
pornind de la 000 pentru cifra 0, la tripleta 111 corespunzătoare cifrei 7. Altfel spus
fiecărei triplete de biţi îi corepunde una şi numai una din cifrele bazei octale şi reciproc,
fiecărei cifre din baza octala îi corespunde una şi numai una din combinaţiile tripletelor
de biţi. Această proprietate permite elaborarea algoritmulor rapizi de conversie din
binar în octal şi reciproc.
Tabel 1.4.
Zecimal Binar Octal
0 000 0
1 001 1
2 010 2
3 011 3
4 100 4
5 101 5
6 110 6
7 111 7
Algoritmul rapid de conversie din binar în octal are următorii paşi:
25
5 3 2 5 1 2 1
-1 0
-------------------
4 3 2 5 1 2 1
- 8 6
-------------------
3 4 6 5 1 2 1
- 6 9 2
26
_________________
2 7 7 3 1 2 1
- 5 5 4 6
__________________
2 2 1 8 5 2 1
- 4 4 3 7 0
___________________
1 7 7 4 8 2 1
- 3 5 4 9 6 4
___________________
(1 4 1 9 8 5 7)10
Un alt algoritm de conversie rapidă important este cel din baza octală în baza
hexazecimală, care va fi prezentat în paragraful dedicat sistemului numeric hexazecimal.
Alături de baza binară, sistemul hexazecimal (prescurtat hexa) este cea mai
folosită în cadrul tehnicilor numerice. Ea reuşeşte să realizeze un optim privind nivelul de
compresie al scrierii corelat cu numărul de simboluri utilizate. Cele 16 cifre ale bazei
hexazecimale sunt: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. În Tabelul 1.5. sunt prezentate
corespondentele zecimale, binare şi octale ale cifrelor bazei hexazecimale. Informaţia de
aici permite citeva concluzii:
-baza hexazecimală foloseşte ca cifre atât simboluri numerice cât şi primele 6
litere ale alfabetului
-este un sistem de numeraţie mai compact decât sistemul zecimal, astfel
simbolurilor A,B,C,D,E,F le corespund în zecimal şi octal câte 2 cifre iar în binar 4 cifre
-compactizarea scrierii numerelor se realizează prin 16 simboluri, cele 10 ale
sistemului binar plus cele 6 litere. În acest fel nu este greu să poată fi reţinute
corespondenţele binare şi zecimale ale tuturor simbolurilor din hexazecimal.
-proprietatea cea mai importantă a bazei hexazecimale este faptul că ea utilizează
complet tetrada (cvartetul sau nibble, în notaţia engleză) de biţi (gruparea de 4 biţi).
Este o proprietate similară cu cea a bazei octale referitoare la triade. Aceasta înseamnă că
există o corespondenţă biunivocă între cifrele bazei hexazecimale şi mulţimea
combinaţiilor posibile ale tetradei de biţi. Pe baza acestei observaţii se construiesc
algoritmii rapizi de conversie hexazecimal↔binar şi hexazecimal↔octal.
Tabelul 1.5.
Zecimal Binar Octal Hexazecimal
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
Codul BCD realizează conversia digiţilor zecimali în binar. Astfel, fiecare cifră
zecimală (1,2,3,4,5,6,7,8,9) este codificată binar prin 4 biti, după cum este redat în
Tabelul 1.6.
Ponderile codului BCD sunt 1, 2, 4, 8, 10, 20, 40, 80, 100, 200,..........Se poate vedea că
ponderile sunt diferite de cazul codului binar pur (1,2,4,8,16,32....) unde ele sunt date de
puterile lui 2. Din acest motiv nu trebuie confundat binarul cu BCD. Conversia zecimal –
binar pur se face considerând numărul în ansamblul său, spre deosebire de situaţia codării
zecimal-BCD când operaţia de codare se face la nivelul fiecărei cifre zecimale.
Tabelul 1.6.
Zecimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
code
Codul binar Aiken (codul 2421) este un cod autocomplementar. Un cod se numeşte
autocomplementar dacă cuvântul de cod al complemetului cifrei N faţă de 9 (9-N) se
poate obţine din codul cifrei N prin complementarea fiecăruia din cei 4 biţi. Codul BCD
nu este un cod autocomplementar. Codul 2421 care se mai numeşte şi Aiken după numele
profesorului Howard Aiken, realizator al computerului MARK 1, are primele 5 cifre
(0,1,2,3,4) cu aceeaşi exprimare din codul BCD. Cifra 5 poate fi exprimată fie prin
combinaţia 0101 fie prin 1011. Pentru codificare s-a ales 1011, deoarece în acest caz
codul pentru cifra 5 se obţine prin complementarea codului pentru cifra 4. Această regulă
se aplica pentru obţinerea cifrei 6 din complementarea setului de biţi corespunzători
cifrei 3, codul cifrei 7 din complementarea biţilor cifrei 2 samd. Codurile Aiken
corespunzătoare cifrelor zecimale sunt date în Tabelul 1.8. O observaţie interesantă
privind toate codurile binar-zecimale ponderate este că prima şi ultima cifră, 0 respectiv 9
sunt codate identic prin seturile de biti 0000, respectiv 1111. În plus, condiţia necesară
pentru un cod ponderat să fie autocomplementar este ca suma ponderilor să fie egală cu
9.Aşa cum s-a spus la început, codurile autocomplementare prezintă o serie de avantaje în
cadrul aritmeticilor dezvoltate în codurile respective.
Tabelul 1.8.
Zecimal 0 1 2 3 4 5 6 7 8 9
Aiken 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111
(2421)
Ansamblul codărilor în cadrul codurilor binar-zecimale ponderate de 4 biţi este redat
cumulat în Tabelul 1.9
Tabelul 1.9.
31
Codurile zecimal-binare sunt coduri formate de grupuri de n biţi, în caz general 5, din
care doar unul progresează şi de un grup de m biţi, de obicei 1 sau 2, care asigură
diferenţa dintre numerele mai mari decât 5 şi cele mai mici decât 5. Un astfel de cod este
prezentat în Tabelul 1.10.
Tabelul 1.10.
Cifră S O 4 3 2 1 0
zecimală
0 0 1 0 0 0 0 1
1 0 1 0 0 0 1 0
2 0 1 0 0 1 0 0
3 0 1 0 1 0 0 0
4 0 1 1 0 0 0 0
5 1 0 0 0 0 0 1
6 1 0 0 0 0 1 0
7 1 0 0 0 1 0 0
8 1 0 0 1 0 0 0
9 1 0 1 0 0 0 0
Fiecare combinaţie a unui astfel de cod are un număr ăpar de biţi de 1, fapt ce
asigură condiţii de securitate a transmisiei de date.
-2 din 5
-Gray
Codul Exces 3 este un cod de tip autocomplementar ce derică din codul BCD. El se
obţine adăgând la fiacre cifră a codului BCD cifra 3. Chiar denumirea codului de Exces
vine din faptul că formarea sa se face adunând 3 la fiecare cifră.
Exemplu: se consideră numărul zecimal 48. Deorece Exces 3 derivă din BCD,
conversia se face la nivel de digit:
48→ 4 8
+3 +3
_____ _____
7 11
↓ ↓
0111 1010
Folosirea codului Exces-3 permite să se facă distincţia între situaţia când nu există
informaţie scrisă într-un registru ori locaţie de memorie şi situaţia când este scrisă
valoarea zero în locaţiile resăective. Folosind codul Exces, scrierea valorii 0 se face prin
gruparea de biţi 0011 iar lipsa unei informaţii de la o locaţie anume va fi reprezentată prin
cvartetul 0000. În Tabelul 1.11 este scris codul Exces-3:
Tabelul 1.11.
Zecimal 0 1 2 3 4 5 6 7 8 9
Exces-3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
Din acest tabel se poate observă uşor că Exces-3 este un cod de tip autocomplementar.
Asfel, în Exces-3, 1 se codifică 0100 şi 8 se codifică 1011. Codificarea lui 8 se obţine
prin negarea bit cu bit, prin complementarea, a cvartetului corespunzator lui 1. Relaţia
este valabilă şi pentru perechile de cifre 0-9, 2-7, 3-6 şi 4-5.
Codul 2 din 5 este un cod ce foloseşte 5 biţi pentru reprezentarea cifrelor zecimale. Ăn
Tabelul 1.12 sunt date codările 2 din 5 pentru cifrele zecimale. Din tabel se observă
faptul că elementul caracteristic al acestei codări, lucru ce i-a şi dat numele, este faptul ca
pentru oricare cifră zecimală, doar 2 din cei cinci biţi ai reprezentării au valoarea 1, restul
fiind egali cu 0.
Tabelul 1.11.
Zecimal 0 1 2 3 4 5 6 7 8 9
Codul 2 00011 00101 00110 01001 01010 01100 10001 10010 10100 11000
din 5
Modul în care este construit codul 2 din 5 permite o foarte simplă metodă de verificare a
corectitudinii transmiterii datelor numerice, prin simpla verificare a caracterului par al
biţilor de 1 din orice şir numeric codificat astfel.
Codul Gray (binar reflectat) a fost introdus de Emile Baudot (1845-1903) şi s-a numit
iniţial cod ciclic permutat. A fost folosit la sistemul de telegrafie iar prezentarea sa
33
oficială s-a produs cu ocazia Expozişiei Universale din Paris, în anul 1878. Cu toate că a
fost utilizat încă din secolul 19, el a rămas în actualitate fiind extrem de utilizat în
tehnicile numerice. Denumirea Gray a fost primită de la inginerul Frank Gray care a
inventat în anul 1953 un circuit electronic ce realiza conversia semnalelor analogice în
semnale numerice de tip binar reflectat. Invenţia sa era aplicată la sistemele de
televiziune color iar de atunci, codul binar reflectat a început să fie numit codul Gray.
Aplicaţiile sale acoperă atât zona teoretică (modul de organizare al diagramelor
Karnaugh, codarea din cadrul algoritmilor genetici, definirea conceptului de distanţă
pentru şiruri de biţi, în sensul distanţelor Hamming, soluţii la problema turnurilor din
Hanoi) cât şi din zona practică (encodere liniare şi rotative, circuite digitale de tip
numărător, corecţia erorilor în cadrul comunicaţiilor digitale, mărirea gradului de
siguramţă la transmiterea de date în condiţii de zgomot). Un traductor rotativ de poziţie
(encoder rotativ) având codificare Gray este prezentat în Fig. 1.26. Encoderul este
structurat pentru patru piste, patru senzori optici, obţinând astfel 16 cuvinte binare,
respectiv divizarea unei rotaţii în 16 paşi egali.
Figura 1.26 Encoder rotativ cu patru piste care foloseşte codul Gray.
Avantajul introdus de codul Gray este determinat de modul în care a fost gândit
iniţial, respectiv faptul că pentru oricare două numere consecutive se modifică doar
conţinutul unui singur bit (proprietatea de adiacenţă). Acesta este elementul care il face
rezistent la erori şi în acelaşi timp asigură performanţe economice în consumul de energie
electrică al circuitelor numerice ce îl utimizează. De exemplu, un numărător CMOS care
foloseşte codul Gray consumă doar 57% din energia electrică necesară unui numărător
binar clasic, deoarece numărul de comutaţii din cadrul numărătorului Gray este
semnificativ mai mic, mai ales pentru mărimi care cresc sau descresc succesiv. Pentru
primele 16 numere naturale, codificarea Gray pentru 4 biţi este dată in Tabelul 1.12:
Tabelul 1.12
Nr 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
Binar 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
34
Tabelul 1.12 prezintă şi codificarea binară, pentru a putea urmări mai clar proprietatea de
adiacenţă a codului Gray. Dacă se urmăreşte tranziţia 3→4, se observă că în binar se
schimbă valoarea a 3 biţi (doi comutând de la 1 la 0 şi unul de la 0 la 1) pe când în cazul
Gray are loc comutarea unui singur bit. De fapt, pentru toate numerele succesive, în codul
Gray se modifică un singur bit. Dacă se consideră conceptul de distanţă Hamming între
şiruri de biţi sau de caractere, prin numărul de biţi (caractere) diferite, atunci este
evidentă proprietatea codării Gray care asigură distanţa unitară între numere consecutive.
Elementul prin care se normează spaţiul lungimii şirurilor de biţi cu distanţa Hamming se
numeşte cubul Hamming.În cazul particular al şirurilor de biţi cu lungimea de 3,
reprezentarea sa este de tip 3D, mai intuitivă, în raport cu termenul de cub. Cubul
Hamming pentru acest caz este prezentat în Fig. 1.27. Considerând fiecare latură a
cubului drept o tranziţie între valori succesive, se observă ca distanţa în sensul Hamming
a punctelor descrise prin triplete de biţi şi situate pe aceeaşi latură, este unitară
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 1
3 0 0 1 1 0 0 1 0
4 0 1 0 0 0 1 1 0
5 0 1 0 1 0 1 1 1
6 0 1 1 0 0 1 0 1
7 0 1 1 1 0 1 0 0
8 1 0 0 0 1 1 0 0
9 1 0 0 1 1 1 0 1
10 1 0 1 0 1 1 1 1
11 1 1 0 0 1 1 1 0
12 1 1 0 1 1 0 1 0
13 1 1 1 0 1 0 1 1
14 1 1 1 1 1 0 0 1
15 1 1 1 1 1 0 0 0
(1.5)
Expresia generală pentru oricare alt bit cu excepţia celui mai puţin semnificativ
este dată de relaţia:
(1.6)
Conform setului de relaţii (5), algoritmul de conversie binar→Gray este:
-cel mai semnificativ bit se copiază pentru din cuvântul binar în cel Gray
-următorul rang al cuvântului Gray se obţine efectuând un SAU
EXCLUSIV între cel mai semnificativ bit şi următorul, din expresia binară
-numărul de biţi fiind identic în ambele forme de codare, algoritmul se
încheie cu obţinerea celui mai puţin semnificativ bit din codarea Gray, dat de
aceeaşi funcţie logică SAU EXCLUSIV
Pentru exemplificarea algoritmului să considerăm conversia:
(101110101101011)B→()G
Cel mai semnificativ bit se copiază: 1
Gruparea biţilor din cadrul expresiei binare clasice se face astfel, pentru toate cele
14 ranguri următoare:
Următorul ca rang, se obţine din operaţia de SAU EXCLUSIV aplicată celor mai
semnificativi biţi ai expresiei binare, primii doi din stânga:
Toţi cei 14 biţi care urmează după cel mai semnificativ, se obţin în acelaşi mod:
11 0
1 0 1 1 0 1
1 0 1
Codificarea în Gray este: 111001111011110
Tot din Tabelul 1.13 se obtine şi setul de relaţii logice prin care se
realizează conversia din Gray în binar.
(1.7)
Coduri de tip ”p din n” sunt coduri în cadrul cărora din cei n biţi cât formează cuvântul,
p au mereu valoarea 1. În acest mod este posibil să recunoaştem mereu dacă un cuvânt
scris în acest cod a fost sau nu transmis corect.
Pentru valori fixate de n şi p biţi, numărul total de combinaţii posibile, de cuvinte diferite
posibil de obţinut, este dat de relaţia combinaţională:
(1.9)
Unul dintre cele mai uzitate coduri de acest tip este codul :”2 din 5”, care se mai
numeşte si codul 74210. El este folosit pentru reprezentarea cifrelor zecimale. Conform
relaţiei (9), numărul total de combinaţii posibile, respectiv numărul total de cuvinte
distincte ce se pot obţine, este . Combinaţiile codului ”2 din 5”au
fost redate în Tabelul 1.14.
Cea mai importantă aplicaţie practică a codului :”2 din 5” este transmiterea
informaţiei numerice în centralele telefonice. Deoarece cea mai mare informaţie
procesată prin centralele telefonice este reprezentată de cifrele zecimale, se impunea
determinarea unui cod numeric prin care să se poată detecta posibilele erori de transmisie
a numerelor de telefon formate.
Tabelul 1.14
Cifra Codul ”2 din 5”
zecimală 7 4 2 1 0
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 0
4 0 1 0 0 1
5 0 1 0 1 0
39
6 0 1 1 0 0
7 1 0 0 0 1
8 1 0 0 1 0
9 1 0 1 0 0
0 1 1 0 0 0
Să considerăm un cuvânt binar având m biţi de date şi r biţi de verificare. Cu m biţi se pot
forma cuvinte corecte. Pentru fiecare din aceste cuvinte pot exista n cuvinte
ilegale, cu erori de distanţă 1. O eroare de distanţă 1 este dată prin modificarea valorii
unui bit. Cuvintele binare cu eroare de distanţă 1 se formează prin inversarea sistematică
a fiecăruia din biţii componenţi. Pentru fiecare din cele cuvinte corecte există (n+1)
combinaţii de biţi dedicate fiecărui cuvânt. Cu cei n biţi se obţin combinaţii. Rezultă
astfel:
(1.14)
Deoarece , se obţine:
(1.15)
Cum m este un număr dat, va rezulta din (15) limita inferioară a numărului biţilor de
verificare, r, necesar corectării erorilor de un bit. Astfel, pentru cuvinte de 4 biţi, m=4,
numărul minim de biţi de verificare este r=3, iar pentru cuvinte cu m=8, se obţine r=4.
Limitele teoretice ale codurilor corectoare de erori pot fi atinse aplicând metoda
elaborată de Hamming. Metoda Hamming poate fi folosită pentru elaborarea codurilor
corectoare de erori, indiferent de lungimea cuvintelor. Astfel, într-un cod Hamming se
adaugă la cei m biţi ai cuvântului câte r biţi de paritate, obţinându-se cuvite de lungime
m+r. Spre deosebire de codurile binare clasice, numerotarea biţilor începe de la 1, nu de
la 0. Bitul 1 este bitul cel mai semnificativ. Toţi biţii ai căror număr este o putere a lui 2
sunt biţi de paritate, restul fiind biţi de informaţie, de date.
Dacă considerăm un cuvând de 4 biţi, rezultă că biţii 1,2 şi 4 sunt biţi de paritate. Astfel,
cuvântul va conţine acum 7 biţi, 3 de paritate şi 4 biţi de date. Fiecare bit de paritate
verifică anumite poziţii de biţi. Să considerăm exemplul din Figura 28 unde cercurile
semnifică biţii de informaţie iar pătratele semnifică biţii de paritate. Biţii de paritate
verifică următoarele poziţii:
-bitul 1 de paritate verifică biţii 1,3,5,7
-bitul 2 de paritate verifică biţii 2,3,6,7
-bitul 4 de paritate verifică biţii 4,5,6,7
În general bitul b este verificat de acei biţi astfel încât să fie verificată relaţia
(16):
(1.16)
Astfel bitul 5 se verifică prin biţii 1 şi 4 (conform relaţiei (16), 1+4=5) iar bitul 6 este
verificat de biţii 2 şi 4.
Considerând numărul binar 0101 exprimat în cod 8421 (el reprezintă valoarea
cifrei zecimale 5). Bitul 1 de paritate va determina un număr par de cifre de 1 pentru
41
poziţiile 1,3,5 şi 7. Va avea astfel valoarea 0. Similar, bitul 2 de paritate va avea valoarea
1 iar bitul 4 de paritate va avea valoarea 0. Dacă transmiterea datelor s-a realizat corect,
biţii de paritate verifică toţi condiţia de paritate. Dacă apare o eroare, fie la biţii de date
fie la cei de corecţie, codul prezentat poate corecta o singură eroare. Dacă de exemplu, pe
poziţia 6 a aparut o eroare de transmisie şi codul recepţionat este 0100111 în locul
variantei corecte 0100101 se va face următoarea verificare:
-bitul 1 de paritate este corect deoarece biţii 1,3,5,7 conţin 2 biţi de 1
-bitul 2 de paritate este incorect, deoarece biţii 2,3,6,7 conţin 3 biţi de 1
-bitul 4 de paritate este incorect deoarece biţii 4,5,6,7 conţin 3 biţi de 1
Prin analiza informaţiei conţinute în biţii de paritate rezultă ca bitul 6 este incorect şi
astfel eroarea poate fi corectată.
O metodă simplă de determinare a bitului incorect este următoarea: se adună ponderile
biţilor de paritate determinaţi ca incorecţi iar rezultatul obţinut va determina bitul incorect
transmis. În exemplul anterior, cum biţii de paritate incorecţi au fost 2 şi 4, rezultă ca
bitul incorect este 2+4=6, aşa cum a rezultat anterior din analiza seriilor de biţi verificaţi
de fiecare bit de paritate.
Se pot determina şi următoarele relaţii logice ce există între biţii iniţiali, de date,
şi forma finală a codului Hamming.
Considerăm numărul binar de date efective (având 4 biţi):
(1.17)
Emiţătorul efectuază calculele înaintea transmisiei datelor iar rezultatul este trimis către
receptor. Receptorul repetă aceeaşi secvenţa de calcul după ce s-a terminat secvenţa de
transfer de date. Dacă atât la nivelul emiţatorului cât şi al receptorului se obţin aceleaşi
rezultate se consideră că a avut loc o transmitere corectă a datelor. Procedura se numeşte
redundantă deoarece în cadrul ei are loc atât transmisia datelor propriu-zise cât şi a
datelor de verificare a transmisie. CRC-ul adaugă o serie de biţi, de obicei peste 25, la
secvenţa de transmisie. Grupul total de date, cele iniţiale plus datele de validare, sunt
considerate ca un polinom binar . Un şir de biţi care reprezintă un cuvând în diverse
coduri de tip CRC este uzual reprezentat ca polinom binar sub forma
unde este cel mai semnificativ bit iar este cel mai puţin semnificatib bit. Termenii
lipsă se reprezintă prin zerouri. Astefel, cuvântul binar 10101 se reprezintă în varianta
polinominală . Se observă că gradul polinomului binar este ca valoare cu o
unitate mai mic decât numărul de biţi ai cuvântului. Pe de altă parte cuvântul binar care
reprezinta doar datele de transmis, fară biţii adiţionali de control, se exprimă polinomial
prin , numit si polinomul mesaj. Acest polinom binar se divide prin polinomul
fix, notat care este cunoscut atât la emiţător cât şi la receptor. Rezultatul împărţirii
descrise este dat prin câtul polinomial şi restul exprimat tot polinomial .
Polinomul rest cunoscut şi drept termen de verificare (checksum), este adăugat
polinomului mesaj şi formează expresia completă polinomială .
La recepţie cuvântul binar exprimat polinomial este împărţit prin . Dacă împărţirea
este exactă, fără rest, se consideră ca transmisia de date a fost corectă, neperturbată. Dacă
restul este diferit de zero înseamnă ca transmisia datelor a fost cu erori şi atunci ori se
reia transmisia cuvântului binar respectiv, a setului de date ori are loc o operaţie de
corecţie de terminată prin valoarea restului obţinut exprimat polinomial ca şi
(polinomul eroare).
Adunările sau scăderile din calculele polinomiale se fac prin operatia de sumă modulo-2
(funcţia logică SAU exclusiv) care este de forma:
(1.18)
Este important de subliniat faptul că adunarea modulo-2 este identică scaderii modulo-2.
Etapele transmisiei de date sunt descrise anterior sunt:
-polinomul mesaj este deplasat cu c biţi la stânga, unde c este cel mai înalt grad al
polinomului . Noul cuvânt binar se exprimă prin .
-noul polinom astfel format, , se împarte la şi restul se adaugă la polinomul
pentru a forma expresia polinomială . Polinomul obţinut prin procedura
descrisă se poate împărţi la polinomul în felul următor:
(1.19)
sau:
(1.21)
Deoarece adunarea modulo-2 este identică scaderii modulo-2, expresia (1.21) se mai
poate scrie sub forma:
(1.22)
sau:
(1.23)
Dacă la receptor nu se produc erori, atunci prin divizarea la restul este nul.
Sunt folosite pentru a coda cifre, litere (în cele două variante grafice minuscule şi
majuscule), semne de punctuaţie, caractere speciale.
Tabelul 1.16A
44
Codul ASCII este cel mai răspândit cod alfanumeric. El a fost propus de American
National Standard Institute şi denumirea sa reprezintă abrevierea de la American
Standard Code for Information Interchange. Pentru fiecare simbol se folosesc 7 biţi de
codare, obţinându-se combinaţii, simboluri (Tab. 1.16A şi Tab. 1.16B).
45
Tabelul 1.16B
Tabelul 1.17
A B C=A+B carry
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Conform regulii din tabelul anterior, vom aplica adunarea binară două grupe de exemple,
primul cu numere binare întregi şi apoi cu numere binare zecimale:
Exemple:
0011 + 10110+
1010 00111
1101 11101
În cazul în care avem mai multe numere binare care se adună, se aplică acealeaşi reguli:
110110+
101001
100111
11010
111101
11011101
Tabelul 1.18
A B C=A-B borrow
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
Exemple:
101101 - 11001011- 101,0-
011010 01101110 011,1
010011 01011101 001,1
Operaţia de scădere binară se mai poate face şi folosind algoritmi bazaţi pe moduri de
scriere de tip complement (complement faţă de 2-complemenet2 şi complement faţă de 1-
complement1).
Complementul faţă de unu al unui număr binar se obţine înlocuind toţi biţii de 0 cu 1 şi
toţi biţii de 1 cu 0 (putem spune că obţinerea complementului faţă de unu se realizează
negând numărul binar iniţial).
Astfel complementul1 al numărului binar: 110100111→001011000.
Pentru numerele cu virgulă zecimală scrise binar, regula enunţată se aplică doar după
virgula zecimală, ca în exemplul următor:
0,101110011→0.010001100
Complementul faţa de 2 al unui număr binar se obţine prin următorul algoritm: şirul de
cei mai puţini semnificativi biţi care conţin măcar un bit de 1 şi unul de 0 iar restul de biţi
ai numărului iniţial se modifică după regula negaţiei, respectiv biţii de 0 devin 1 iar biţii
de 1 devin 0.
Considerând numărul binar 1011101100, complementul să faţa de 2 se obţine:
-se păstrează setul de biţi mai puţin semnificativi 100
-restul de biţi se modifică prin negare
101110100→010001100
Un alt algoritm de scriere a complementului faţa de 2 foloseşte connceptul anterior de
complemet faţa de unu:
-numărul binar iniţial se scrie în complemet faţa de unu
-la numărul obţinut sa adună binar 1
Să reluam exemplul anterior conform ultimului algoritm de scriere:
-numărul binar iniţial este 101110100
-complemetul său faţă de unu este: 010001011
-la acesta se adună binar 1: 010001011+1=010001100
-complementul faţa de doi este astfel: 010001100 (rezultat obţinut şi anterior)
În cazul numerelor cu virgulă zecimală regula de scriere este următoarea:
-se lasă nemodificat bitul de 1 cu cel mai mic rang, cea mai mică pondere (primul
din partea dreaptă a numărului binar, după virgula zecimală)
-restul biţilor se modifică priu negare (1 → 0 iar 0 → 1 )
48
Exemple:
-Cazul când există bitul de carry la sumă:
-să se efectueze scăderea:
1101100–1011011
-descăzutul se scrie neschimbat 1101100
-scăzătorul se scrie în complemet faţă de 2 0100101
-se adună cei doi termeni:
1101100+
0100101
10010001
-se renunţă la bitul de 1 cel mai semnificativ şi se obţine rezultatul scăderii
0010001
-dacă adunarea binară nu produce la cei mai semnificativi biţi un bit de transport,
atunci rezultatul adunării se rescrie ca şi complemet faţa de 1 şi la final se adaugă
semnul minus
Exemple:
-Cazul când există bitul de carry la sumă:
-să se efectueze scăderea:
1101100–1011011
-descăzutul se scrie neschimbat 1101100
-scăzătorul se scrie în complemet faţă de 1 0100100
-se adună cei doi termeni:
1101100+
0100100
10010000
-se renunţă la bitul de 1 cel mai semnificativ, bitul de carry, apoi se adună 1 şi
astfel se obţine rezultatul,scăderii:
0010001+1=0010001
-Cazul când nu există bitul de carry la sumă:
-să se efectueze scăderea:
1011011–1101100
-descăzutul se scrie neschimbat 1011011
-scăzătorul se scrie în complemet faţă de 1 0010011
-se adună cei doi termeni:
1011011+
0010011
1101110
-nu exstă bit de carry, aşa că rezultatul adunării este scris în complement faţa de 1
iar apoi este pus semnul minus:
1101110→ -0010001
Operaţia de înmulţire binară se bazează pe inmulţirea binară la nivel de 1 bit, care este
prezentată în Tab. 1.19.
Tabelul 1.19
A B C=A B
0 0 0
0 1 0
1 0 0
1 1 1
Pentru a înmulţii numere binare de mai mulţi biţi, se respectă regula de la sistemele
ponderate (regula înmulţirii din baza 10) cu observaţia ca atunci când bitul de
multiplicare este 0, tot termenul rezultat este 0. Pentru exemplifivare considerăm
produsele binar: 0 1 0 1 0 0 1 0 şi 1 0 1 1 1 1 0 0 :
50
0101 1011
0010 1100
0000 0000
0101 0000
0000 1011
0000 1011
0001010 10000100
Înmulţirile binare cu puterile lui (cu 2, 4, 16...) se reduc la a decala deînmulţitul prin
introducere la dreapta sa a unui număr de zerouri egal cu exponentul lui 2 prin care se
exprimă înmulţitorul. Astfel, dacă avem înmulţirea binară 1001 1000, deoarece 1000
are valoarea 8 în baza 10, iar 8 se scrie ca putere a lui 2 ca şi , rezultatul se obţine rapid
inserând trei de 0 la dreapta deînmulţitului, adică 1001000.
Varianta clasică de împărţire binară, este asemeni operaţiei de împărţire în bază 10,
bazându-se pe operaţii de înmulţire şi scădere, doar că toate operaţiile se efectuează în
binar. Să considerăm împărţirea 10010000111 1011
10010000111 1011
- 1011 01101001
01110
-1011
001100
-1011
0001111
-1011
rest 0 1 0 1
Similar cu algoritmul rapid privind înmulţirile binare cu puterile lui (cu 2, 4, 16...), în
cazul împărţirii la numere binare ce exprimă puterile lui 2, operaţia se reduce la a decala
deîmpărţitul prin introducere la stânga sa a unui număr de zerouri egal cu exponentul lui
2 prin care se exprimă împărţitorul. Asfel 1000 100 este egal cu 0010.
51
Tabelul 1.21
0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16
Tabelul 1.22
0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 24 31 36 43
6 0 6 14 22 30 36 44 52
7 0 7 16 25 34 43 52 61
şi (2.2)
-comutativitatea:
şi (2.3)
-absorbţia:
şi (2.4)
Fără a dezvolta mai mult la acest moment, este util să subliniem faptul că axioma
absorbţiei este esenţială din puct de vedere practic, pe baza ei fiind construite toate
strategiile şi algoritmii de minimizare a circuitelor numerice de tip combinaţional.
În acelaşi timp trebuie subliniat faptul că expunerea celor trei axiome a folosit un numar
limitat de termeni, pentru a ajuta înţelegerea lor. Ele se pot însă extinde şi la situaţia unui
număr arbitrar dar funit de termeni.
Cele trei axiome permit enunţarea proprietăţii de idempotenţă:
-idempotenţa:
şi (2.5)
,
De asemenea se defineşte drept latice finită acea latice care conţine următoarele două
elemente:
-cea mai mare margine inferioară (element ultim al laticei), notat cu 0. care are
proprietăţile:
şi (2.6)
,
-cea mai mică margine superioară (element prim al laticei), notat cu 1, care are
proprietăţile:
şi (2.7)
,
56
Principiul involuţiei dar mai ales teoremele lui De Morgan au o foarte mare importanţă în
rezolvarea problemelor algebrei booleene şi în teoria şi practica circuitelor binare
(numerice).
Putem acum să definim algebra Boole de două elemente, algebra binară ca fiind o
alogebră Boole, unde mulţimea M are numai două elemente, respectiv 1 şi 0.
57
Deşi din puct de vedere matematic matematic trebuie corect definită algebra Boole de
două elemente, deoarece există elaborate algebre boole de 3 ori de 5 elemente
(matematicianul român Moisil fiind cel ce a dezvoltat teoretic aceste tipuri de algebre),
din puct de vedere al aplicaţiilor practice, cum elementele fizice care au implementat
funcţiile astfel dezvoltate aveau doar două stări fizice posibile, s-a încetăţenit expresia
mai puţin exactă matematic de algebră booleană ca definind algebra Boole de două
elemente.
In Tab. 2.1. sunt prezentate sintetic toate axiomele şi proprietăţile algebrei Boole aplicate
operatorilor SI, SAU, NU aplicate funcţiilor de tip monovariabilă şi funcţiilor de tip
multivariabilă:
Tabelul 2.1.
Denumirea consacrată a axiomei Expresia algebrică
ori proprietăţii
Identitate
Element neutru (element nul)
Element absorbant
Idempotenţa
Complementaritatea
Involuţia (duba negaţie)
Comutativitatea
Asociativitatea
Distributivitatea
Absorţia tip 1
Absorţie tip 2
Consens tip 1
Consens tip 2
Teoremele lui De morgan
Tabelul 2.2.
a b
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
semnalele binare ale variabilelor de intrare obţinând rezultate tehnice foarte importatnte.
Din aceste motive vom analiza pe rând setul funcţiilor binare elementare. Ele sunt
grupate în funcţie de modul în care procesează semnalele de intrare, variabilele de intrare:
a b
0 0 0
0 1 0
1 0 0
1 1 0
a b
0 0 1
0 1 1
1 0 1
1 1 1
a b
0 0 0
0 1 1
1 0 0
1 1 1
a b
0 0 1
0 1 1
1 0 0
1 1 0
a b
0 0 1
0 1 0
1 0 1
1 1 0
a b
0 0 0
0 1 0
1 0 0
1 1 1
61
a b
0 0 0
0 1 1
1 0 1
1 1 1
-funcţia se numeşte funcţia lui Pierce (sau funcţia lui Webb). Ea realizează negarea
sumei logice a celor două variabile: . Notaţia specifică este . Aplicând
formulele lui De Morgan, din negarea sumei rezultă produsul logic al variabilelor negate:
. Din acest motiv se mai numeşte funcţia NICI sau SI-NU (funcţia NOR,
conform notaţiei saxone, din NOT OR). Din reprezentarea tabelară se extrage
semnificaţia ei funcţională, practică, respectiv faptul ca ieşirea, valoarea funcţiei, este 1
doar atunci când măcar una din variabilele de intrare nu este egală cu 1 (sau ambele
variabile de intrare sunt 0)
a b
0 0 1
0 1 0
1 0 0
1 1 0
-funcţia se numeşte funcţia lui Sheffer. Ea realizează negarea produsului logic a celor
două variabile: . Notaţia specifică este . Aplicând formulele lui De
Morgan, din negarea produsului rezultă suma logică a variabilelor negate: .
Din acest motiv se mai numeşte funcţia NUMAI sau SAU-NU (funcţia NAND, conform
notaţiei saxone, din NOT AND). Din reprezentarea tabelară se extrage semnificaţia ei
funcţională, practică, respectiv faptul ca ieşirea, valoarea funcţiei, este 0 doar atunci când
a b ambele variabile de intrare sunt 1.
0 0 1
0 1 1
1 0 1
1 1 0
62
Observaţie: funcţiile lui Sheffer şi a lui Pierce (funcţiile NUMAI, NICI) au o importanţă
specială în teoria circuitelor numerice, deoarece ele permit realizarea circuitelor numerice
modulare.
-funcţia se numeşte funcţia echivalenţă. Ea se notează şi poate fi scrisă
folosind funcţiile SI, SAU, NU în modul următor: . Din
reprezentarea tabelară se observă că sensul practic al ei, respectiv echivalenţa dintre a şi
b, semnalizează prin valoarea 1 situaţiile în care variabilele a şi b sunt egale.
a b
0 0 1
0 1 0
1 0 0
1 1 1
a b
0 0 0
0 1 1
1 0 1
1 1 0
63
(2.16)
a b
0 0 1
0 1 1
1 0 0
1 1 1
a b
0 0 1
0 1 1
1 0 0
1 1 1
a b
0 0 0
0 1 1
1 0 0
1 1 0
a b
0 0 0
0 1 1
1 0 0
1 1 0
Cele 16 funcţii binare elementare prezentate sunt importante din punct de vedere practic
şi datorită proprietăţii de decompoziţie a funcţiilor binare, respectiv de faptul că o funcţie
binară oarecare, un circuit numeric de tip combinaţional, poate fi realizat cu un anumit set
de funcţii binare elemntare sau de circuite numerice de tip funcţie elementară.
De asemenea proprietatea de seperpoziţie a funciilor binare arată că o funcţie binară
poate fi obţinută prin compunerea, superpoziţia mai multor funcţii binare elementare.
Chiar în setul celor 16 funcţii elemntare există situsţii cind o funcţie este obţinută prin
superpoziţia funcţiilor de tip SAU, SI, NU. . Prin această proprietate este posibilă sinteza
circuitelor numerice. De exemplu funcţiile inhibare , funcţia lui Pierce, funcţia lui
Shannon sau funcţia suma modulo2.
Pentru funcţiile binare, sunt valabile următoarele teoreme privind sistemele complete
minime de funcţii:
-Sistemul format din funcţiile conjuncţie SAU şi negaţie NU ( )este un sistem
minim.
-Sistemul format din funcţiile disjuncţie SI şi negaţie NU ( )este un sistem
minim.
-Sistemul format din funcţia Sheffer ( ) este un sistem minim.
-Sistemul format din funcţia Pierce ( ) este un sistem minim.
reală. Iar soluţia finală obţinută nu este soluţia problemei pe care am dorit s-o rezolvăm ci
soluţia unei alte probleme, poate apropiată dar evident diferită de ceea ce ne-am propus..
Dacă se consideră o funcţie binară de 4 variabile a,b,c,d putem să o imaginăm ca o
structură bloc prezentată în Fig. 2.1. S-au prezentat variabilele de intrare a,b,c,d iar blocul
ce urmează este funcţia considerată, ce poate avea diverse conţinuturi, moduri de
prelucrare a semnalelor provenite de la variabilele de intrare. Ieţirea acestui sistem este
chair valoarea funcţiei considerate.
Pentru o funcţie binară de 4 variabile se obţin combinaţii ale acestora.
Tabelul de adevăr o sa aibe astfel 16 linii care conţin toate aceste combinaţii posibile.
Deoarece în acest caz nu analizăm un exeplu concret, completarea tabelului de adevăr se
face arbitrar. Dacă ar fi fost vorba de modelarea unui proces tehnic, a unui circuit
numeric de tip combinaţional, atunci completarea tabelului de adevăt trebuia facută în
conformitate cu funcţia circuitului. În acealşi timp, aşa cum am amintit anterior, dacă
pentru toate combinaţiile variabilelor de intrare funcţia are valori bine definite, este vorba
de o funcţie complet definită, aşa cum este cazul tabelului de adevăr din Fig.2.2. În
Fig.2.3. a fost reprezentat tabelul de adevăr al unei funcţii incomplet definite, unde pentru
anumite combinaţii ale variabilelor de intrare, valoarea funcţiei nu este ferm definită, ea
putând să ia fie valoarea 0, fie valoarea 1. Aceste situaţii sunt reprezentate în tabel prin
semnul grafic *.
b
F(a,b,c,d)
c
a b c d F(abcd) a b c d F(abcd)
0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 1 1
0 0 1 0 1 0 0 1 0 *
0 0 1 1 0 0 0 1 1 *
0 1 0 0 1 0 1 0 0 1
0 1 0 1 1 0 1 0 1 *
0 1 1 0 1 0 1 1 0 1
0 1 1 1 0 0 1 1 1 *
1 0 0 0 1 1 0 0 0 1
1 0 0 1 0 1 0 0 1 0
1 0 1 0 1 1 0 1 0 1
1 0 1 1 0 1 0 1 1 *
1 1 0 0 1 1 1 0 0 *
1 1 0 1 1 1 1 0 1 *
1 1 1 0 0 1 1 1 0 0
1 1 1 1 1 1 1 1 1 *
67
Figura 2.2. Tabel de adevăr pentru o Figura 2.3. Tabel de adevăr pentru o
funcţie complet definită funcţie incomplet definită
Diagramale Veitch sunt forme de reprezentare tabelară a unei funcţii binare. Numărul de
câmpuri ale acestei reprezentări este egal cu numărul maxim posibil al combinaţiilor
variabilelor de intrare: pentru o funcţie de 3 variabile sunt necesare = 8 câmpuri, pentru
o funcţie de 4 variabile sunt necesare = 16 şamd. În cadrul diagramei câmpurile se
grupează sub forma de dreptunghi, dacă numărul lor este diferit de un pătrat perfect
(cazul funcţiei de 3 variabile) sau sub formă grafică de pătrat dacă numărul lor este egal
cu un patrat perfect (cazul funcţiei de 4 variabile).
Aranjarea valorilor funcţiei în cadrul câmpurilor diagramei este foarte simplă deoarece se
foloseşte o ordonare zecimală a câmpurilor, corespunzătoare valorii exprimate zecimal a
combinaţiilor variabilelor de intrare.
Pentru exeplificare să considerăm tabelul de adevăr al funcţei de 3 variabile F(a,b,c) unde
funcţia reprezintă suma modulo2 a celor 3 variabile şi are expresia algebrică:
a b c F Z
0 0 0 0 0
0 0 1 1 1
0 1 0 1 2
0 1 1 0 3
1 0 0 1 4
1 0 1 0 5
1 1 0 0 6
1 1 1 1 7
Diagrama Karnaugh este cea mai folosită formă de scriere tabelară a funcţiilor binare.
Marele său avantaj este fapul ca ea reprezintă esenţa unui algoritm de minimizare a
funcţiilor binare. Acest fapt este posibil prin faptul ca la completarea câmpurilor
diagramei Karnaugh este folosit codul Gray.
În esenţă, diagrama Karnaugh oferă un mod de reprezentare similar diagramei Veitch,
respectiv valorile funcţii binare sunt copiate în câmpurile diagramei. Numărul câmpurilor
este evident egal cu numărul de linii din tabelul de adevăr al funcţiei, respectiv cu
numărul combinaţiilor posibile ale variabilelor de intrare. Există astfel diagrame de 4, 8,
16, 32 ... câmpuri care corespund funcţiilor de 2, 3, 4, 5, ... variabile. Numai că modul de
completare a câmpurilor diagramei se particularizează la diagrama Karnaugh prin
folosirea codului Gray. Codul Gray oferă proprietatea pe baza căreia se dezvoltă apoi
algoritmul de minimizare: câmpurile adiacente, vecine, ale diagramei sunt ocupate de
valori ale funcţiei ce provin din combinaţii ale variabilelor de intrare care diferă printr-o
singură variabilă şi pot fi astfel aduse la forme mai simple. Prin câmpuri vecine înţelegem
două câmpuri care au o latură comună sau câmpuri aflate pe graniţa diagramei, respectiv
pe liniile de sus sau de jos dar pe aceeaşi coloană ori pe coloanele extreme din dreapta şi
stânga dar pe aceeaşi linie.
De exemplu dacă pentru două câmpuri adiacente corespund variabilele de intrare de
forma: şi , atunci se poate scrie:
+ =
Aceasta înseamnă că din 2 termeni de 3 variabile am obţinut o formă mai simplă, un
termen cu 2 variabile iar cele două forme sunt echivalente, adică informaţia binară se
prelucrează identic prin cele două expresii.
Să urmărim acum modul de completare a diagramelor Karnaugh, folosind aceeaşi notaţie
a câmpurilor, respectiv valoarea zecimală a combinaţiei variabilelor de intrare pentru care
a fost considerată valoarea funcţiei.
În Fig. 2.5. este redată diagrama Karnaugh pentru funcţia de 4 variabile a,b,c,d. Ele au
fost grupate astfel:
-pereche de variabile a,b marchează coloanele diagramei
-pereche de variabile c,d marchează liniile diagramei
Corespunzător acestei convenţii de grupare a variabilelor, valorile câmpurilor diagramei
Karnaugh pentru funcţiile de 4 variabile sunt notate în figură. Modul de completare a
diagramei pornind de la tabelul de adevăr este similar cazului anterior.
70
Deoarece modul de grupare a variabilelor pe linii şi coloane este arbitrar, este posibil să
exite situaţii conform celor prezentate în Fig. 2.7. unde diagrama funcţei de 3 variabile
foloseşte perechea c,d pentru notarea liniilor iar variabila a pentru notarea coloanelor,
respectiv la funcţiile de 4 variabile, perechea a,b pentruu linii şi perechea c,d pentru
coloane.
Este simplu de constatat practic (comparând Fig.2.5. 2.6. şi 2.7.) că modificarea
convenţiei de folosirea variabilelor pentru coloane şi linii duce la schimbarea valorilor
numerice ale câmpurilor diagramelor.
a b c d F
ab
0 0 0 0 0 00 01 11 10
0 0 0 1 1 cd 0 1 0 1
0 0 1 0 1 00
0 0 1 1 0 1 1 0 1
0 1 0 0 1 01
0 1 0 1 1 0 0 1 *
0 1 1 0 * 11
0 1 1 1 0 1 * 1 1
1 0 0 0 1 10
1 0 0 1 1
1 0 1 0 1
1 0 1 1 *
1 1 0 0 0
1 1 0 1 0
1 1 1 0 1 Figura 2.8. Completarea diagramelor Karnaugh pornind
1 1 1 1 1 de la tabelul de adevăr.
Metoda de completare descrisă este destul de laborioasă. Din acest motiv propun un
algoritm mai simplu de completare a diagramei Karnaugh pentru funcţii binare de 4
variabile. Algoritmul nu se poate regăsi în monografiile ori cursurile de electronică
numerică, el fiind o contribuţie originală a autorului.
Algoritmul de completare a diagramei se numeşte intuitiv “algoritmul ” are
următorii paşi:
-cele 16 valori ale funcţiei binare se grupează câte 4
-prima grupă astfel formată se trece pe prima coloană a diagramei, cu observaţia
că a treia valoare se trece pe poziţia a patra a coloanei diagramei iar a patra
valoare a grupei se trece pe poziţia a treia a coloanei diagramei (de unde si
denumirea de algoritmul )
-grupa a doua a tabelului de adevăr completează coloana a doua a diagramei în
modul descris anterior
-grupa a treia a tabelului de adevăr completează coloana a patra a diagramei
iar la nivelul elementelor se respectă
-grupa a patra a tabelului de adevăr completează coloana a treia a diagramei
iar la nivelul elementelor se respectă
Se poate vedea că algoritmul propus este mult mai rapid: în loc să lucăm la nivel de câmp
şi de linie, lucrăm cu grupe de 4 câmpuri (la nivel de coloană).
72
(a)
(b)
Figura 2.9. Completarea diagramelor Karnaugh pentru funcţii de 5 respectiv 6 variabile
Logigramele sunt semne grafice care reprezintă cele mai importante funcţii binare. Ele
sunt folosite în cadrul schemelor numerice combinaţionale ori secvenţiale şi permit
eleborarea de structuri numerice complexe pe baza uneu set relativ redus de simboluri.
Prin modul grafic ales este foarte simplu să urmărim traseul informaţiei, semnalelor,de la
intrare către ieşire, în cadrul circuitelor numerice. În plus logigramele mai sunt folosite în
cadrul softurilor dedicate automatelor programabile (PLC). Convenţiile grafice specifice
logigramelor funcţiilor binare au fost adoptate pentru a descrie instrucţiunile de tip logic
ale unor automate programabile, tocmai datorită clarităţii de exprimare.
Cele mai importante logigrame sunt pentru funcţii binare de două variabile (cu două
intrări) sunt următoarele :
-funcţia binară SI: -funcţia binară SI-NU
-funcţia binară NU
Pentru funcţii binare cu mai multe variabile logigramele îşi păstrează semnul grafic doar
că în partea stângă numărul intrărilor este mai mare.
Diagramele de timp sunt reprezentări grafice prin care se urmăreşte evoluţia semnalelor
în cadrul şi la ieşirea circuitelor numerice în funcţie de parametru timp. Ele sunt foarte
utile în înţelegerea funcţionării şi controlul funcţionării corecte a circuitelor numerice.
Prin diagramele de timp se observă funcţionarea reală a circuitelor numerice şi mai ales a
circuitelor numerice secvenţiale unde variabila timp este determinantă în eveoluţia
circuitului. De asemenea ele permit semnalizarea fenomenelor de hazard static ori
dinamic, fenomene datorate timpilor de întârziere, de comutaţie specifici fiecărui tip de
circuit numeric. Cataloagele de circuite numerice conţin pentru fiecare tip de circuit
diagramele de timp care redau mai sugestiv funcţionarea acestora.
Există două tipuri de diagrame de timp:
-ideale: unde nu se consideră timpii de întârziere iar comutaţiile din starea 0 (low)
în starea 1 (high) se realizează instantaneu
-reale: când se consideră timpii de întârziere
În Fig. 2.10. este redată o diagramă reală pentru un circuit de tip negaţie NU. Se poate
vedea cum trecerea de la nivelul jos de tensiune la nivelul ridicat de tensiune nu se face
instantaneu ci necesită un anumit timp.
Pentru urmărirea şi analiza funcţionării circuitelor sunt mai utile diagramele de timp
ideale. Să considerăm circuitul numeric reprezentat de logigrama din Fig. 2.11.(a) unde
s-au notat cu a,b variabilele de intrare iar cu y ieşirea circuitului. În Fig. 2.11 (b) este
redată diagrama de timp unde s-au reprezentat evoluţia asemnalelor atât pentru
variabilele de intrare cât şi pentru ieşirea circuitului:
(a)
75
(b)
Figura 2.11. Logigramă şi diagramă de timp de tip ideal
În Fig. 2.12. (a) este prezentat un caz mai complex, respectiv logigrama circuitului
numeric ce realizează conversia cuvintelor de 4 biţi din BCD în Excess 3. Variabilele de
intrare a,b,c,d reprezintă cuvântul binat pe 4 biţi codificat BCD iar variabilele w,x,y,z sunt
codificarea în Excess 3 a cuvintelor BCD care alimentează intrarea circuitului de
conversie. În Fig. 2.12 (b) este diagrama de timp ideală ce descrie funcţionarea
circuitului de conversie.
(a)
76
(b)
Figura 2.12. Logigrama şi diagrama de timp a circuitului codificator BCD-Excess3
Reprezentările de tip analitic ale funcţiile binare se bazează pe o teoremă din algebra
Boole care afirmă că orice funcţie binară exprimată prin tabel de adevăr poate fi scrisă şi
sub formă analitică.
Imaginea caracteristică a unei funcţii binare F cu n intrări este formată din cele valori
ale funcţiei ordonate după ordinea binară naturală (crescătoare).
Astfel, dacă se consideră funcţia binară F(abc) având două ieşiri X,Y definită prin tabelul
de adevăr:
a b c x Y
În aceste condiţii:
0 0 0 0 0 -imaginea caracteristică a ieşirii X este
0 0 1 1 0 - imaginea caracteristică a ieşirii Y este
0 1 0 1 0
Se constată ca întreaga informaţie din tabelul de adevăr este
0 1 1 0 1
conţinută în imaginea caracteristică a funcţiei respective. Prin
1 0 0 1 0
convenţia de reprezentare, şirul de biţi ai imaginii caracteristice
1 0 1 0 1
reprezintă toate valorile pe care le ia funcţia considerând toate
1 1 0 0 1 combinaţiile posibile ale variabilelor de intrare în ordine
1 1 1 1 1 crescătoare. În cazul descris, combinaţiile se consideră de la 000,
001...până la ultima combinaţie 111.
Pentru definirea formelor canonice este nevoie să se introducă noţiunile de minitemeni şi
de maxitermeni.
Minitermenii se pot defini intuitiv folosind diagramele Venn de reprezentare a
mulţimilor. Considerăm două mulţimi A şi B, prezentate în Fig. 2.13. Cu cele 2 mulţimi
astfel definite se pot construi regiuni folosind funcţia logică SI:
77
a b c minitermen
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
a b c maxitermen
78
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Pentru a fi mai clar am adăugat patru coloane suplimentare, cea a minitermenilor, cea a
maxitermenilor precum şi cele două ale indicilor acestora (Fig.2.16).
a b c X Y minitermen maxitermen
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Simbolul de marcare este un mod analitic de exprimare a funcţiilor bionare. El oferă cea
mai compactă formă de scriere a acestora. Din acest motiv se recomandă atunci când este
vorba de lucrul cu funcţii binare care au mai mult de 4 variabile.
Ca toate formele analitice de exprimare, câştigul obţinut pe partea de compactizare a
scrierii şi manipulării funcţiilor binare este însoţit de reducerea transparenţei funcţiei
binare, din puct de vedere al înţelegerii funcţionării structurii numerice modelate.
Pentru a obţine reprezentarea prin simbol de marcare se porneşte de la tabelul de adevăr
al funcţiei. Fiind o formulare de tip analitic şi la nivelul simbolului de marcare pot exista
cele două tipuri: cel derivat din FCD şi cel derivat din FCC.
Elementul care particularizează acestă reprezentare numărul de ordine scris în octal.
Numărul de ordine în primă variantă este scris în binar şi se obţine prin alipirea codarii
binare a termenilor canonici. Deoarece scrierea binară este dificilă s-a ales codarea în
octal a termenilor canonici. În plus, vom vedea în cadrul tehnicilor te minimizare că
sistemul octal, la fel ca şi codul Graz, are o serie de proprietăţi prin care se faciliteză
gruparea termenilor adiacenţi. Deşi simbolul de marcare se poate aplica pentru FCD şi
FCC, din cauza facilităţilor de lusru ulterioare vom preyenta doar varianta dedusă din
FCD, respectiv simbolul de marcare D.
Algoritmul de obţinere a reprezentării prin simbol de marcare D este următorul:
-se porneşte de la reprezentarea funcţiei binare prin tabel de adevăr
-deşi în literatura de specialitate nu se întineşte această etapă, vom introduce
o mică modificare a tabelului de adevăr, respectiv se introduce o coloană
suplimentara de codificare octală. Această contribuţie originală uşurează foarte
mult determinarea reprezebtării. Coloana octală afaşată este completată simplu,
crescător, de la valoarea 0, de forma: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15,
16, 17, 20, 21, 22, ....
-conform modelului de la FCD, se marchează valorile de 1 ale funcţiei
-simbolul de conţine variabilele funcţiei binare precum şi codificarea octală a
combinaţiilor variabilelor care aplică funcţia în 1. Din acest motiv este nevoie de
colona octală. Se citeşte simplu valoarea octală de pe această coloană din dreptul
valorilor de 1 ale funcţiei.
Să considerăm acum funcţia binară de 4 variabile dată de tabelul de adevăr:
81
a b c d F Octal G
formele cele mai complexe de scriere a funcţiilor binare. De fapt ele sunt punctul de
plecare al etapei de minimizare.
Prin etapa de minimizare expresiile FCD şi FCC se reduc la un număr mai mic de termeni
şi de variabile. Pentru a evalua minimizarea se defineşte numărul de variabile conţinut în
toţi termenii dezvoltării. Se numeşte formă canonică minimă (de tip disjunctiv ori
conjunctiv) forma care are cel mai mic număr de variabile considerat în toţi termenii
dezvoltării (numărul minim de argumente).
Se numeşte implicant prim al unei funcţii binare termenii care implică funcţia respectivă
fară a mai putea elimina o variabilă. Prin expresia “implică funcţia binară” se înţelege
faptul că forma minimizată este identică din puctul de vedere al prelucrării informaţiei cu
funcţia iniţială. Pe scurt, cele două expresii de tip FCD şi de tip minimizat au acelaşi tabel
de adevăr. Aceasta se mai înţelege ca la ieşirile lor să se obţină acealaşi valori pentru
situaţii identice la intrare.
Obţinerea implicanţilor primi pentru funcţiile binare date prin FCD se realizează folosind
următoarea proprietăţi ale algebrei binare:
(2.17)
(2.18)
Expresia (2.17) se mai mumeşte operaţie de alipire parţială şi se poate demonstra simplu
folosind algebra binară:
Toţi algoritmii de minimizare folosesc cele două realţii, fapt redat de teorema lui Quine,
ce poate fi reţinută ca teorema minimizării: dacă într-o expresie de tip FCD a unei
funcţii binare se efectuează toate operaţiile de alipire parţială şi toate operaţiile de
absorţie se obţine disjuncţia (reuniunea) implicanţilor primi, respectiv forma
minimală.
Analiza teoremei lui Quine permite următoarele observaţii:
-teorema este foarte generală, ea nu oferă un algoritm de tip clasic sau o formulă
de obţinere a funcţiei minimizate
-cea mai directă aplicare a teoremei este minimizarea de tip algebric, respctiv
folosirea formulelor şi teoremelor algebrei binare pentru a obţine forme
minimizate
-aplicarea directă a teoremei, respectiv aplicarea teoremelor algebrei binare,
determină ca performanţa minimizării să depindă de experienţa operatorului
Dar cea mai importantă concluzie este faptul că fie aplicarea directă a teoremei fie
aplicarea algoritmilor deduşi pe baza ei, nu garantează atingerea reprezentării absolut
minimale. Prin definiţie o reprezentare a unei funcţii binare se numeşte absolut minimală
dacă nu există o reprezentare mai simplă decât aceasta. Matematicienii Abhyankar şi
Burthart au studiat problema determinării expresiei absolut minimale. Algoritmul oferit
de Abhyankar este excesiv de laborios şi din acest motiv, în practică se preferă obţinerea
de forme minimizate bazate pe algoritmi mai simpli combinaţi cu experienţa operatorilor.
Pornind de la teorema lui Quine, cea mai directă aplicare pentru minimizarea unei funcţii
binare este metoda algebrică, respectiv folosirea setului de formule, teoreme din algebra
binară pentru simplificarea formei funcţiei binare iniţiale.
83
Demonstrarea celor trei formule este un execiţiu util pentru exemplificarea calculului
algebric binar.
dacă :
iar ,
atunci:
cum:
se obţine:
aşadar:
dar
rezultă:
Pentru demonstrarea relaţiei (2.21) sunt necesare mai multe artificii de algebra binară:
Cele trei demonstraţii arată faptul că aplicarea directă a calculului algebric binar nu este
foarte simplă, foarte directă. Există o serie de artificii de tip algebric care folosesc
teoremele algebrei binare şi numai abilitatea operatorului poate să garanteze expresii
favorabile.
Să considerăm acum funcţia binară dată prin expresia FCD:
84
Expresia iniţială a avut patru termeni cu câte patru variabile fiecare iar expresia finală,
minimizată, are trei termeni cu câte trei variabile fiecare.
Algoritmul propus de Quine determină forma disjunctivă minimă a unei funcţii binare
exprimată prin FCD folosind o reprezentare tabelară. Paşii algoritmului sunt:
-termenii canonici ai FCD se trec în capul de tabel
-se grupează termenii canonici pentru a obţine implicanţii primi (grupul se
marchează în tabel)
-se determină reuniunea minimală a implicanţilor primi, care acoperă toate
coloanele tabelului. Ei sunt implicanţii esenţiali.
Tabelul astfel construit oferă în coloana din stânga un şir de implicanţi primi obţinuţi prin
combinarea perechilor de termeni FCD. Din şirul celor 6 implicanţi primi se alege
numărul minim care acoperă toate coloanele (implicanţii primi esenţiali). Conform
tabelului există două soluţii:
, ,
şi , ,
Fiecare din cele două grupe de implicanţi primi esenţiali dau prin disjuncţie (reuniune),
câte o formă minimizată a funcţiei iniţiale:
sau
85
Aşa cum s-a enunţat anterior, pentru o funcţie binară dată nu există o singură formă
minimă. Algoritmul dezvoltat de Quine este simplu dar este destul delaborios ca scriere şi
calcul, deoarece necesită analiza tuturor perechilor de termeni canonici ai funcţiei. În
plus, modul de scriere de tip algebric al termenilor canonici, nu este cea mai clară
modalitate pentru a observa modul de cuplare a perechilor de termeni.
Regula după care se grupează perechile de termeni canonici pentru a obţine implicanţii
primi este: se grupează termenii care diferă între ei printr-o singură variabila.
Această variabilă este într-un termen ca atare/(nu este negată) iar în al doilea termen al
perechii este negată.
Presupunând că toate perechile grupate sunt termeni adiacenţi, care diferă printr-o singură
variabilă, se extrag următoarele reguli de grupare şi concluzii:
-gruparea termenilor se face doar în grupe ce respectă puterile lui 2, adică 2, 4, 8,
16 ...etc.
-în vederea minimizării, nu sunt admise grupari de termeni canonici diferite de
cele definite anterior
-o pereche de termeni canonici adiacenţi elimină o variabilă, în sensul că produce
un singur termen cu (k-1) variabile
-gruparea a patru termeni canonici conform schemei prezentate conduce la
eliminarea a două variabile (se obţine un singur temen cu (k-2) variabile),
gruparea de opt termeni conduce la eliminarea a trei variabile etc
-legătura între numărul de termeni canonici grupaţi şi numărul de variabile
eliminate din termenul final, este dată tot de puterile lui 2, astfel daca se grupeză
termeni canonici, atunci termenul final va avea (n-k) variabile
86
După aceste observaţii să urmărim etapele prin care se aplică algoritmul Quine-Mc
Cluskey.
Etapa I. Termenii canonici se transcriu ca un şir binar, conform regulei următoare: dacă
variabila este ca atare se scrie 1 iar dacă variabila este negată se notează cu 0
Etapa II. Termenii canonici se grupează după numărul de biţi de 1 în mai multe grupe:
grupa zero (toţi termenii din grupă nu conţin nci un bit de 1)
grupa unu (toţi termenii din grupă conţin câte un bit de 1)
grupa doi (toţi termenii din grupa conţin cite doi biţi de 1)
etc
Etapa III. Termenii canonici grupaţi anterior diferă la nivel de grupe vecine printr-un
singur bit. Astfel se pot grupa termenii din grupa vecini si se elimină cite o variabilă.
Variabila eliminată se notează cu _.
Etapa IV. Termenii cu o variabilă eliminată se grupează din nou în funcţie de numărul de
biţi de 1 (se numesc termeni de rangul 1, deoarece au o variabilă eliminată)
Etapa V. Procedând similar se obţin termenii de rangul 2 (cu două variabile eliminate)
EtapaVI. Se repetă procedura pînă când nu se mai pot realiza grupări care să permită
alipiri.
Etapa VII. Acum se trece la completarea tabelului implicanţilor primi. Se trec in tabel,
ca şi coloane, toţi termenii canonici în transcriere binară. Prima coloana din stânga va
conţine implicanţii primi. Pentru fiecare implicant prim se marchează grupul de termenii
canonici (2, 4, etc) prin care a fost obţinut. La final se determină setul de implicanţi
esenţiali, respectiv cei ce implica tot grupul termenilor canonici esenţiali.
Să considerăm o funcţie binară care să fie minimizată prin algoritmul enunţat. Fie aşadar
funcţia binară de patru variabile, dată sub FCD:
Etapa III -IV. Grupare şi obţinere termeni de rongul trei (având trei variabile, una este
eliminată)
-grupa zero: 000_, 00_0, 0_00, _000
-grupa unu: 00_1, _001, 001_, 0_10, 01_0, 100_
-grupa doi: 0_11, _011, 011_, 10_1
-grupa trei: _111, 1_11
Etapa IV-V. Obţinerea termenilor de rangul doi (având două variabile, celelalte două
fiind eliminate)
-grupa zero: 00_ _, _00_, 0_ _0,
-grupa unu: _0_1, 0_1_,
-grupa doi: _ _11,
OBS: în cadrul celor doua etape de grupare şi eliminare a variabilelor, fiecare nou termen
se trece o singură dată, chiar daca el se poate obţine din mai multe grupări
Etapa VI. Deoarece termenii de rangul doi nu mai permit alipiri, se trece la completarea
tabelului.
0000 0001 0010 0011 0100 0110 0111 1000 1001 1011 1111
00_ _ * * * *
_00_ * * * *
0_ _0 * * * *
_0_1 * * * *
0_1_ * * * *
_ _11 * * * *
sau
ab
00 01 11 10
a b c d
cd
00 0 4 12 8
0 0 0 0
01 1 5 13 9 0 0 0 1
0 0 1 0
11 3 7 15 11
0 0 1 1
2 6 14 10 0 1 0 0
10
0 1 0 1
0 1 1 0
Dacă urmărim câmpurile diagramei Karnaugh ale 0 1 1 1
funcţei binare de patru variabile şi alegem 1 0 0 0
o serie de câmpuri adiacente din cadrul diagramei 1 0 0 1
se poate verifica afirmaţia anterioară:
1 0 1 0
-câmpuri adiacente orizontal:
0-4 termenii canonici şi sunt 1 0 1 1
şi ; ei permit aplicarea 1 1 0 0
operaţiei de alipire 1 1 0 1
0-8 şi câmpurile extreme se consideră 1 1 1 0
adiacente şi 1 1 1 1
7-15 şi
-câmpuri adiacente vertical:
5-7 şi
0-2 câmpuri extreme adiacente şi
15-14 şi
0 0 0 0 1
0 0 0 1 1
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 0 Diagrama corespunzătoare tabelului de adevăr
1 1 0 0 0 este construită folosind un set de bare prin care
1 1 0 1 1 se codează, marchează semnul variabilelor a,b,c,d
1 1 1 0 0 din câmpurile diagramei.
1 1 1 1 1
-semnul variabilei în câmpurile care nu sunt cuprinse de bara de marcare este negativ
(variabila se ia negată)
Astfel:
-variabila a este ca atare, pozitivă, în cele două coloane din dreapta
-variabila a este negată, negatică, în cele două coloane din stânga
-variabila b este ca atare, pozitivă, în cele două coloane din mijlocul diagramei
-variabila b este negată, negatică, în cele două coloane extreme, din dreapta şi din
stânga
-variabila c este ca atare, pozitivă, în cele două linii de jos
-variabila c este negată, negatică, în cele două linii de sus
-variabila d este ca atare, pozitivă, în cele două linii de la mijlocul diagramei
-variabila d este negată, negatică, în cele două linii extreme, de sus si de jos
În prima etapa, informaţia din tabelul de adevăr a fost transferată în diagrama Karnaugh.
Apoi sunt grupaţi toţi biţii de 1 din diagrama. Grupările conţin 1, 2 şi 4 biţi, deci vom
obţine la final termeni de 4, 3 şi 2 variabile. Se observă că unele câmpuri de 1 fac parte
din mai multe grupări. În mod evident, gruparea termenilor nu este unică, fiind posibile
mai multe variante. Important este ca să se respecte recomandarea de a avea cât mai
puţine grupări cu cât mai multe câmpuri fiecare. Câmpul din colţul dreapta-jos a
diagramei nu poate fi cuprins în nici o grupare şi din acest motiv este luat ca atare.
Expresia minimizată a funcţiei binare este dată reuniunea implicanţilor primi determinaţi:
= + + + + +
Algoritmul de aplicare al minimizării prin diagrame Karnaugh permite o serie de
concluzii referitoare la performanţele acestuia:
-aşa cum s-a afirmat iniţial algoritmul reprezintă o metodă globală de minimizare,
care nu are o etapă algebrică şi una tabelară
-el se bazează pe folosirea codului Graz în notarea câmpurilor diagramei
-fundamental este o metodă grafică, ce se bazează pe gruparea câmpurilor
adiacente. Din acest motiv este şi simplu de aplicat
-deşi este algoritmul cel mai bine prezentat în literatura de specialitate, pentru
cazul funcţiilor binare de 3 şi 4 variabile, de obicei nu se aminteşte faptul că
uşurinţa de aplicare se reduce doar la aceste situaţii. Dacă funcţiile binare au 5, 6
sau 7 variabile, aplicarea algoritmului este foarte dificilă. Aşa cum dificilă este şi
reprezentarea funcţiilor binare de 5,6 sau 7 varibile prin diagrame Karnaugh.
Din acest motiv putem spune că atât algoritmul de minimizare prin diagrame Karnaugh
cât şi celelalte prezentate anterior devin greoaie în aplicare sau chiar imposibil practic de
folosit pentru funcţiile cu mai multe variabile.
Şi cum foarte multe aplicaţii practice (marea majoritate) sunt aplicaţii care prelucrează
seturi extinse de semnale, respectiv sunt modelate matematic prin funcţii binare cu multe
variabile, se poate concluziona că algoritmii de minimizare prezentaţi până acum au o
aplicabilitate practică redusă. Este important de subliniat acest aspect deoarece el nu se
regăseşte în literatura de specialitate. Mai mult decât atât, deşi se insistă pe importanţa
etapei de minimizare, de obicei sunt prezentate metodele cu importanţă didactică: metoda
algebrică, metodele Quine şi Quine-Mc Cluskey sau cea a diagramelor Karnaugh. Aceşti
algoritmi sunt relativ simplu de înţeles şi de aplicat pe exemple de tip didactic, unde
funcţiile binare au maxim 4 variabile. Din păcate toate aceste metode sunt extrem de
dificil de aplicat în cazul funcţiilor binare cu mai multe variabile şi în acest fel nu dau
rezultate practice mulţumitoare.
Singura metodă care poate rezolva problemele complexe este algoritmul de minimizare
dezvoltat pe baza simbolului de marcare D. Cu toate acestea ea nu se regăseşte în cele
mai multe cărţi dedicate circuitelor numerice.
92
Analiza adiacenţelor cu 2:
este corectă deoarece diferă printr-un singur bit, bitul al doilea
93
Analiza adiacenţelor cu 4
este corectă deoarece diferă printr-un singur bit, bitul al treilea
este corectă deoarece diferă printr-un singur bit, bitul al treilea
este corectă deoarece diferă printr-un singur bit, bitul al treilea
este corectă deoarece diferă printr-un singur bit, bitul al treilea
Toate adiacenţele cu 4 sunt corecte, nu există excepţii.
-după prima adiacenţă din serie, se urmăreşte dacă seria poate fi extinsă, respectiv
dacă putem găsi în simbolul de marcare un set de numere octale care să satisfacă
o nouă adiacenţă. La a doua adiacenţă trebuiesc găsite 2 numere care să satisfacă
adiacenţa, la a treia adiacenţă sunt necesare 4 numere, la a patra sunt necesare 8
numere etc
-fiecare nouă adiacenţă se marchează la fel ca prima
Exemplu: sau
-dacă în simbolul de marcare lipseşte măcar un singur termen necesar unei noi
adiţii, ea nu se poate efectua şi se consideră seria de adiţii incheiată
-după încheiere primei serii de adiţie, se trece la completarea următoarei serii,
după acealeaşi reguli
-etapa seriilor de adiacenţă se consideră încheiată atunci când toţi termenii din
simbolul de marcare D sunt cuprinşi măcar într-o serie de adiacenţă
-la fel ca în algoritmul de minimizare prin diagrame Karnaugh, termenii
simbolului de marcare pot fi conţinuţi în mai multe serii de adiacenţă.
-şi tot similar diagramei Karnaugh, calitatea minimizării impune un număr cât mai
mic de serii de adiacenţă şi un număr cit mai mare de adicenţe în fiecare serie
-fiecare adiacenţă însemnă o variabilă eliminată, respectiv din 2 termeni de k
variabile, se obţine 1 termen de (k-1)variabile iar în cazul seriilor cu mai multe adiacenţe,
dacă am format o serie de două adiacenţe (formată din 4 termeni) însemnă ca din 4
termeni de k variabile am obţinut un singur termen de (k-2) variabile, samd
-dacă un termen nu poate fi cuprins în nici-o serie de adiacenţa, el este luat ca
atare într-o serie ce-l conţine doar pe el. Semnificaţia din punct de vedere al minimizarii
este că termenul respectiv rămâne ca atare, neminimizat.
-după terminarea etapei seriilor de adiacenţă urmează etapa determinării expresiei
formei minimizate, respectiv reuniunea implicanţilor primi. Pentru aceasta se urmează
paşii:
95
-în total s-au obţinut 14 serii de adiacenţă. Înseamnă că forma minimizată a funcţiei va
avea 14 termeni. Dintre aceştia, 2 termeni au 3 variabile, 7 termeni au 4 variabile iar 5
termeni au 5 variabile. Pentru a evalua etapa de minimizare trebuie să obsevăm din
reprezentarea prin simbol D că funcţia binară a avut iniţial 43 de termeni cu cîte 6
variabile fiecare.
-implicanţii primi ai funcţiei se obţin astfel:
0 0 0 0 1
0 0 0 1 1
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 0
1 1 0 0 0 Considerăm cazul funcţiei minimizate prin
1 1 0 1 1 diagramă Karnaugh. Stările nedefinite au fost
1 1 1 0 0 semnalizate şi în cadrul diagramei. În acest caz,
1 1 1 1 1 gruparea termenilor se poate face astfel:
98