Curs Asdn Carte 12.11.2019 [310849]

Dr. Ing. Cristina Floriana Pană

Dr. Ing. Florin Liviu Manta

Dr. Ing. Virginia Rădulescu

Dr. Ing. Daniela Maria Pătrașcu

Drd. Ing. Florina Besnea (Petcu)

[anonimizat] 3

Capitolul 1 13

Capitolul 2 41

Capitolul 3 73

Capitolul 4 137

Capitolul 5 167

Biblografie 203

Cap. 1. BAZELE SISTEMELOR NUMERICE

1.1. Reprezentarea sistemelor numerice

Definiție 1: Sistem de numeratie = un mod de reprezentare a [anonimizat], respectând un anumit algoritm de combinare.

Definiție 2: [anonimizat] o mulțime dată de coeficienți există o [anonimizat].

Fie: – [anonimizat]:

și se numește reprezentare polinomială generalizată a unui număr într-o bază dată. Scrierea formală a acestei reprezentări este:

Cele mai cunoscute sisteme de numerație sunt:

[anonimizat] –

[anonimizat] –

[anonimizat] –

Corespondența între sistemele de numerație este dată în următorul table:

1.2. Conversia între sistemele de numerație

1.2.1. Conversia între sistemul zecimal și sistemul binar

Conversia numerelor zecimale întregi

Aceasta se realizează utilizând așa numita metodă a “împârțirii successive la 2”.

Etapele metodei sunt:

Se împarte numărul zecimal întreg la 2 și se obține un cât și un rest ;

Se împarte câtul la 2 și se obține un cât și un rest ;

Operația continuă până când ultimul cât este 0;

[anonimizat].

Exemplu:

Conversia numerelor zecimale facționare

Aceasta se realizează utilizând așa numita metodă a “înmulțirii successive cu 2”.

Etapele metodei sunt:

Se înmulțește numărul zecimal fracționar cu 2 și se obține o parte întreagă și o parte fracționară ;

Se înmulțește partea fracționară cu 2 și se obține o parte întreagă și o parte fracționară ;

Operația continua până când ultima parte fracționară este 0;

Observație: Există cazuri în care oricâte calcule s-ar efectua nu se va ajunge niciodată la parte fracționară 0. [anonimizat] (cu 2,3,4,… zecimale).

[anonimizat].

Exemplu: 1)

Exemplu: 2)

[anonimizat]:

Partea întreagă a numărului zecimal va fi tratată prin metoda “împărțirii successive la 2”;

Partea fracționară a numărului zecimal va fi tratată prin metoda “înmulțirii successive cu 2”;

Exemplu:

1.2.2. Conversia între sistemul binar și sistemul zecimal

Se realizează utilizând metoda dezvoltării polinomiale:

Exemplu:

1.2.3. Conversia între sistemul octal și sistemul binar și conversia din sistemul binar și cel octal

Conversia dintre sistemul octal și sistemul binar

Se realizează cu ajutorul tabelei de corespondență dintre octal și binar. [anonimizat] tabela care urmează:

Exemplu:

Conversia dintre sistemul binar și sistemul octal

Se realizează astfel:

Pornind de la virgulă spre dreapta și spre stânga se formează grupuri de câte 3 valori binare, fiecare grup format reprezentând o cifră în octal (utilizând corespondența din tabela de mai sus).

Exemplu:

1.2.4. Conversia între sistemul hexazecimal și sistemul binar și conversia din sistemul binar și cel hexazecimal

Conversia dintre sistemul hexazecimal și sistemul binar

Se realizează cu ajutorul tabelei de corespondență dintre hexazecimal și binar. Fiecare cifră hexazecimală care formează numărul, va fi scrisă în binar conform corespondenței din tabela care urmează:

Exemplu:

Conversia dintre sistemul binar și sistemul hexazecimal

Se realizează astfel:

Pornind de la virgulă spre dreapta și spre stânga se formează grupuri de câte 4 valori binare, fiecare grup format reprezentând o cifră în hexazecimal (utilizând corespondența din tabela de mai sus).

Exemplu:

1.3. Operații cu numere binare cu semn și fără semn

1.3.1. Operații cu numere binare fără semn

Reprezentarea unui număr binar fără semn pe ranguri binare este următoarea:

1.3.1.1. Adunarea și scăderea numerelor binare fără semn

a) Adunarea = se aliniază numerele de la dreapta la stânga începând cu cei mai puțini semnificativi biți.

Regula adunării pe fiecare bit este următoare:

0+0=0

0+1=1

1+0=1

1+1=0 și transport 1 (carry, ) la rangul imediat superior

Observație: Transportul generat într-un rang este preluat în rangul imediat superior.

Exemplu:

b) Scăderea = se aliniază numerele de la dreapta la stânga începând cu cei mai puțini semnificativi biți.

Regula scăderii pe fiecare bit este următoare:

0-0=0

0-1=1 și împrumut 1 de la rangul imediat superior

1-0=1

1-1=0

Exemplu:

1.3.2. Operații cu numere binare cu semn

1.3.2.1. Repezentarea numerelor binare cu semn

Există trei modalități de reprezentare:

Reprezentarea numerelor binare în valoare absolută și semn

Fie numărul binar , atunci reprezentarea lui în valoare absolută și semn va fi:

unde:

– este cel mai semnificativ bit al numărului binar și reprezintă bitul de semn

Dacă

– este valoarea absolută a numărului binar, formată din restul biților

Exemplu:

Fie numărul +10 în zecimal, transformat în binar va fi :

Fie numărul -10 în zecimal, transformat în binar va fi :

Reprezentarea numerelor binare în complement față de 1

Fie numărul binar , pentru a obține reprezentarea numărului în complement față de 1, se complementează toți biții începând de la cel mai puțin semnificativ bit, inclusiv bitul de semn:

Dacă și

Exemplu:

Fie numărul +10 în zecimal, reprezentat ca număr binar în valoare absolută și semn va fi 0/1010, iar reprezentat ca și complement față de 1 va fi tot 0/1010

Fie numărul -10 în zecimal, reprezentarea sa pozitivă ca număr binar în valoare absolută și semn va fi 0/1010, iar complementul față de 1 va fi 1/0101

Reprezentarea numerelor binare în complement față de 2

Fie numărul binar , pentru a obține reprezentarea numărului în complement față de 2, se poate realiza în două modalități:

se complementează numărul în complement față de 1 și se adună 1 la cel mai puțin semnificativ bit

Exemplu: Fie numărul în zecimal

Pasul 1: se scrie numărul binar în valoare absolută și semn sub formă pozitivă

Pasul 2: se complementează față de 1

Pasul 3: se adună 1 la cel mai puțin semnificativ bit

se parcurge șirul de biți care alcătuiesc numărul binar, începând de la cel mai puțin semnificativ bit spre cel mai semnificativ bit, iar după primul bit cu valoarea 1 găsit acesta se pastrează, iar restul de biți se complementează

Exemplu: Fie numărul în zecimal

Pasul 1: se scrie numărul binar în valoare absolută și semn sub formă pozitivă

Pasul 2: se parcurge șirul de biți de la dreapta spre stânga și după primul bit 1 găsit acesta se pastrează, iar restul biților se complementează

Observație: Numerele binare positive au aceeași reprezentare în complement față de 2.

Exemplu: Fie numărul în zecimal

1.3.2.2. Adunarea și scăderea numerelor binare cu semn reprezentate în valoare absolută și semn

Fie numerele binare x, y, și rezultatul opeației z.

a) Adunarea numerelor binare reprezentate în valoare absolută și semn

Regulile adunării sunt:

1) dacă cele două numerele au biții de semn identici, , atunci se face adunarea între cele două valori absolute:

Dacă:

nu există transport la cel mai semnificativ bit al operației , atunci bitul de semn al rezultatului, , iar valoarea absolută rămâne rezultatul obținut.

Exemplu:

există transport la cel mai semnificativ bit al operației , atunci trebuie trecut la o reprezentare pe un număr de biți mai mare, iar regulile rămân aceleași.

Exemplu:

2) dacă cele două numerele au biții de semn diferiți, , atunci se face scăderea între cele două valori absolute:

Dacă:

nu există împrumut la cel mai semnificativ bit al operației , atunci bitul de semn al rezultatului, , iar valoarea absolută rămâne rezultatul obținut.

Exemplu:

există împrumut la cel mai semnificativ bit al operației , atunci bitul de semn al rezultatului va fi , iar valoarea absolută va fi reprezentată în complement față de 2.

Exemplu:

b) Scăderea numerelor binare reprezentate în valoare absolută și semn

Regulile scăderii sunt:

1) dacă cele două numerele au biții de semn identici, , atunci se face scăderea între cele două valori absolute:

Dacă:

nu există împrumut la cel mai semnificativ bit al operației , atunci bitul de semn al rezultatului, , iar valoarea absolută rămâne rezultatul obținut.

Exemplu:

există împrumut la cel mai semnificativ bit al operației , atunci bitul de semn al rezultatului va fi , iar valoarea absolută va fi reprezentată în complement față de 2.

Exemplu:

2) dacă cele două numerele au biții de semn diferiți, , atunci se face adunarea între cele două valori absolute:

Dacă:

nu există transport la cel mai semnificativ bit al operației , atunci bitul de semn al rezultatului, , iar valoarea absolută rămâne rezultatul obținut.

Exemplu:

există transport la cel mai semnificativ bit al operației , atunci trebuie trecut la o reprezentare pe un număr de biți mai mare, iar regulile rămân aceleași.

Exemplu:

1.3.2.3. Adunarea și scăderea numerelor binare cu semn reprezentate în complement față de 1

Fie numerele binare x, y, și rezultatul opeației z.

Regulile operației:

numerele binare negative se reprezintă în complement față de 1;

se efectuează operația de adunare sau scădere;

Observație: În calcul se va lua inclusiv bitul de semn.

dacă bitul de semn al rezultatului, , atunci valoarea absolută a rezultatului trebuie reprezentată în complement față de 1, iar, dacă , atunci valoarea absolută a rezultatului este rezultatul obținut.

dacă la cel mai semnificativ bit al operației apare transport sau împrumut, atunci acesta se va aduna sau scădea de la cel mai puțin semnificativ bit, în funcție de operația efectuată.

Exemplu 1):

Exemplu 2):

1.3.2.4. Adunarea și scăderea numerelor binare cu semn reprezentate în complement față de 2

Fie numerele binare x, y, și rezultatul opeației z.

Regulile operației:

numerele binare negative se reprezintă în complement față de 2;

se efectuează operația de adunare sau scădere;

Observație: În calcul se va lua inclusiv bitul de semn.

dacă bitul de semn al rezultatului, , atunci valoarea absolută a rezultatului trebuie reprezentată în complement față de 2, iar, dacă , atunci valoarea absolută a rezultatului este rezultatul obținut.

dacă la cel mai semnificativ bit al operației apare transport sau împrumut, atunci acesta nu se va lua în considerare.

Exemplu 1):

Exemplu 2):

Cap. 2. CODURI BINARE

2.1. Reprezentarea binară a numerelor zecimale

Definiție: Se numește cod binar asociat unui număr zecimal exprimarea prin ponderi binare a coeficienților zecimali care formează numărul respectiv. Pentru codificarea celor zece cifre ale sistemului de numarație zecimal sunt necesari patru biți, deoarece 23<10<24=16, ceea ce înseamnă că 6 valori rămân neutilizate. Prin punerea în corespondență a mulțimii cifrelor zecimale și mulțimea celor 16 cuvinte de patru biți se obțin: combinații posibile.

Observație: O combinație de n biți se numește cuvânt de cod.

Exemplu: Fie numărul

Coduriele binar-zecimale se pot clasifica în:

coduri ponderate, cum ar fi: codul 8421, codul 84-2-1, codul 2421

coduri neponderate, cum ar fi: codul Exces 3, codul 2 din 5, codul Gray, codul „biquinar”

2.1.1. Coduri ponderate

În cazul codurilor ponderate, o cifră zecimală este exprimată printr-o combinație de patru biți, fiecărei cifre i se asociază o anumită pondere. Ponderile pot fi pozitive sau negative. Valoarea cifrei zecimale se obține prin suma biților din cod, fiecare bit fiind multiplicat cu valoarea ponderii asociate.

Considerând un cod format din biții b3, b2, b1, b0, ponderile asociate acestora fiind p3, p2, p1, p0, atunci valoarea cifrei zecimale va fi:

Ponderile fiecărui bit reprezintă valoarea corespunzătoare din denumirea codului, în acest caz codul numindu-se codul p3p2p1p0.

Cele mai utilizate coduri ponderate pe patru biți sunt următoarele:

Codul (8 4 2 1) = Codul binar- zecimal natural = Codul BCD

Codul (8 4 -2 -1)

Este un cod autocomplementar deoarece cuvântul de cod al complementului față de 9 al cifrei N (deci 9-N) se poate obține prin complementarea fiecărui bit dintre cei patru biți.

Exemplu: Codul cifrei 6 este 9-6=3, se complementează codul cifrei (0101) și se obține codul pentru cifra 6 ca fiind (1010).

Codul (2 4 2 1)= Codul Aiken

Codul Aiken, după numele celui care l-a inventat, a fost utilizat pe primele sisteme de calcul automate și încă este utilizat și azi la ceasurile digitale, calculatoare de buzunar și dispozitive similare. Howard Hathaway Aiken împreună cu cei de la firma IBM au realizat între anii 1939 și 1944, calculatorul MARK 1, acesta fiind precursorul primelor calculatoare electronice.

Secvențele de cod au pentru primele cinci cifre zecimale (de la 0 la 4) aceeași exprimare ca și codul BCD. Pentru cifra zecimală 5 se complemntează codul cifrei 4, pentru cifra 6 se complementează codul cifrei 3, ș.a. m. d., pentru cifra zecimală 9 se complementează codul cifrei 0. De asemenea, este un cod autocomplementar.

2.1.2. Coduri neponderate

Codul EXCES-3

Acest cod este tot un cod autocomplementar, obținut din codul BCD prin adunarea codului binar al cifrei 3 la toate combinațiile binare. Avantajul acestui cod este că se poate face distincție între absența informației dintr-un registru sau locație de memorie și codul cifrei 0. Codul Exces-3 a fost folosit pe unele computere mai vechi, precum și în casele de marcat și calculatoarele electronice portabile din anii ’70, printre alte utilizări.

Codul ”2 din 5”

Caracteristica principală a acestui cod constă în faptul că întotdeauna doi biți din cei cinci (prin care sunt reprezentate cifrele zecimale) au valoarea 1. Acest cod este utilizat în detectarea erorilor în timpul transmiterii informației.

Codul Gray

Codul Gray (după numele celui care l-a propus Frank Gray) este codul care posedă proprietatea de adiacență, o cifră zecimală diferă față de următoarea sau de precedenta printr-un singur bit. Acest cod a fost proiectat inițial pentru a preveni ieșirea eronată de la comutatoarele electromecanice. Astăzi, codurile Gray sunt utilizate pe scară largă pentru a facilita corectarea erorilor în comunicațiile digitale, cum ar fi televiziunea digitală terestră și unele sisteme TV prin cablu.

Codul ”biquinar”

Reprezintă o schemă de codificare numerică folosită în multe abacuri și în unele calculatoare timpurii, inclusiv în Colos. Termenul bi-quinary indică faptul că acest cod cuprinde atât o componentă cu două stări (bi) cât și o componentă cu cinci stări (quinary). Este utilizat în mai multe limbi umane, în special khmeră (limba oficială a Cambodgiei) și wolof (limbă vorbită în Senegal, Gambia și Mauritania). De exemplu, în limba kmeră pentru cifra 6 se spune ”pram muoy” și se traduce prin ”cinci plus unul”. Numerele de la 0 la 9 în limba japoneză a semnelor se bazează pe bi-quinary, cu degetul mare acționând ca 5 unități, iar restul degetelor prin ridicare pentru încă o unitate.

2.2. Reprezentarea geometrică a numerelor binare

Reprezentarea poliedrală

a.1)

CUB=1

a.2)

CUB=2

a.3)

CUB=3

Definiții:

1) Două combinații binare sunt adiacente dacă diferă printr-un singur bit.

2) Considerând și două cifre binare, se numește următoarea regulă binară:

3) Fie numărul binar definit printr-un număr de coeficienți . Se numește pondere a lui x, numărul de biți 1 din configurația acestuia.

Exemplu:

4) Într-o reprezentare poliedrală suma modulo 2 a două noduri vecine (adiacente) are întotdeauna ponderea egală cu 1.

Exemple:

a.4)

a.5)

Reprezentarea tabelară

b.1) :

b.2) :

b.3) :

2.3. Coduri detectoare și corectoare de erori

În fluxul prelucrării automate a datelor, operația de transfer a informațiilor prin intermediul unui canal de comunicație este extrem de frecventă. Cu ocazia unui transfer de informație, la nivelul canalului de comunicație pot apare perturbații. Pentru a nu se altera conținutul informațional este necesară protejarea informațiilor împotriva acestor perturbații. Procedura presupune adăugarea unor informații suplimentare, necesare în primul rând detectării erorilor și ulterior corectării acestora.

2.3.1. Coduri pentru controlul parității

Pentru detectarea erorilor, una din modalitățile practice cel mai des utilizate este reprezentată de codurile pentru controlul parității. La transmisia unei secvențe binare de n biți se atașează o cifră binară suplimentară, numită cifră de control, astfel încât:

în cazul parității pare, numărul pozițiilor binare din șir care au valoarea 1 să fie par (inclusiv cifra de control)

în cazul parității impare, numărul pozițiilor binare din șir (inclusiv cifra de control) care au valoarea 1 să fie impar

Exemplu:

Paritatea simplă pară:

1 0 0 1 0 0 1 1 – par

bitul de control

La primirea unui caracter se efectuează suma cifrelor binare care au fost primite. Dacă această sumă respectă convenția de paritate stabilită, mesajul este considerat corect recepționat, în caz contrar se semnalează eroarea, solicitându-se reluarea transmisiei. Acest tip de cod este implementat de regulă hardware la nivelul dispozitivelor fizice ale sistemului de calcul. El are două forme de reprezentare:

VRC – control de paritate vertical

LRC – control de paritate orizontal (longitudinal)

Totuși sunt situații în care simpla detectare a erorilor este ineficientă. Pentru eliminarea (fie și numai parțiale) a acestei probleme, au fost proiectate coduri care oferă posibilitatea, pe lângă detectarea erorilor, și a corectării cifrelor binare eronate. Un astfel de cod este codul de paritate încrucițată.

În cazul codurilor de paritate încrucișată succesiunea de cifre binare care se transmit se divide într-un număr de secvențe binare de aceeași lungime n, astfel încât succesiunea va fi formată dintr-un număr variabil de linii și un număr fix de coloane. La transmiterea fiecărei linii și fiecărei coloane i se va atașa o cifră de control de paritate. Altfel spus, se aplică LRC pentru linii și VRC pentru coloane. La primire, prin controlul parității, pe fiecare linie și coloană se detectează eventualele erori, având posibilitatea de a corecta o singură eroare detectată la intersecția liniei și a coloanei care nu respectă paritatea stabilită.

Exemplu:

Paritatea încrucișată pară:

2.3.2. Coduri Hamming

Codurile Hamming sunt coduri de grup la care fiecare cuvânt de cod de n biți conține m biți informaționali și k = n-m biți de control, eficiența maximă a acestor coduri fiind obținută în situația în care n = 2k-1.

Biții de control sunt determinați în funcție de biții informaționali prin relații de condiție care asigură paritatea prin suma modulo 2.

Codurile Hamming pot fi:

– sistematice, situație în care primii m biți sunt informaționali, iar următorii k=n-m sunt biți de control;

– ponderate, în cazul în care biții de control apar pe poziții care reprezintă puteri ale lui 2: 1,2,4…

Generarea codului se poate face prin două metode:

– direct din relațiile de condiție care furnizează biții de control și apoi îi inserează în pozițiile corespunzătoare din cuvântul de cod;

– prin metode matriceale, mai ales pentru coduri cu cuvinte de cod lungi.

În continuare este prezentat modul de funcționare detaliat al codului Hamming de tip (7, 4) (n=7, m=3).

Se consideră cuvântul de 7 biți b = b1b2b3b4b5b7 și cuvântul recepționat b = b1b2b3b4b5b7 .

Erorile singulare care pot să apară la primire, în care e1, e2, e3 sunt simbolurile pentru cei trei biți de test (corespunzători celor 8 erori posibile), sunt prezentate în tabelul care urmează:

Conform tabelului rezultă condițiile ca e1, e2, e3 să aibă valoarea 1:

e1 = b1 + b3 + b5 + b7

e2 = b2 + b3 + b6 + b7 (1)

e3 = b4 + b5 + b6 + b7

Pentru a determina biții de control b5, b6, b7 în funcție de biții informaționali, este suficient să punem condiția ca eroarea să nu existe, anume:

bi= bi, i = 1…7 (2)

și deci e1 = e2, astfel încât se obțin următoarele relații ;

b1 + b3 + b5 + b7 = 0

b2 + b3 + b6 + b7 = 0 (3)

b4 + b5 + b6 + b7 = 0

care generează condițiile:

b5 = b2 + b3 + b4

b6 = b3 + b6 + b7 (4)

b7 = b1 + b2 + b4

Atunci când codurile Hamming se scriu în formă ponderată, adică în forma în care biții de control ocupă pozițiile corespunzătoare puterilor crescătoare ale lui 2: b1, b2, b4,…, relațiile de control devin:

b1 = b3 + b5 + b7

b2 = b3 + b6 + b7 (5)

b4 = b5 + b6 + b7

Sub formă matriceală, condițiile de control pot fi scrise astfel:

(6)

sau

< T > = < B>m . k (7)

cu < T> : matricea de test

< B > : matricea biților infomaționali.

În general, se generează direct din combinațiile de cod:

(8)

sau

< b > = < B>G4 x 7 = < B >[ I4 x 44 x 3], (8)

cu G4 x 7: matrice generatoare de cod

Cap. 3. ELEMENTE DE ALGEBRĂ BOOLEANĂ

3.1. Introducere

Definiție: Circuitele de comutație sunt circuite care realizează transferul, prelucrarea și păstrarea datelor numerice și alfanumerice în interiorul unui calculator.

Aceste circuite sunt caracterizate de două stări stabile care se diferite calitativ fiind puse în corespondență cu valorile binare “0” și “1” sau cu valorile logice “adevărat” și “fals” (de aici și denumirea de circuite logice).

Algebra propozițională (logică) operează cu propoziții care pot fi adevărate sau false. Astfel, unei propoziții adevărate i se atribuie valoarea “1”, iar unei propoziții false i se atribuie valoarea “0”.

Observații: 1) O propoziție nu poate fi simultan adevărată sau falsă.

2) Două propoziții sunt echivalente dacă simultan ele sunt adevărate sau false.

Propozițiile pot fi simple sau compuse, cele compuse la rândul lor se obțin din cele simple prin legături logice de tipul conjuncției , disjuncției sau negației .

3.2. Definirea axiomatică a algebrei booleene

Algebra booleană este o algebră formată din:

elementele 0,1;

2 operații binare numite SAU și SI, notate simbolic + sau și sau ;

1 operație unară numită NU negație, notată simbolic sau .

Aceste operații se definesc astfel:

SI SAU NU

0 0 = 0 0 + 0 = 0 0 = 1

0 1 = 0 0 + 1 = 1 1 = 0

1 0 = 0 1 + 0 = 1

1 1 = 1 1 + 1 = 1

Axiomele algebrei booleene sunt următoarele:

Fie o mulțime M compusă din elementele x1, x2,…xn, împreună cu operațiile și +. Această mulțime formează o algebră dacă:

Mulțimea M conține cel puțin 2 elemente distincte x1 x2 (x1,x2 M);

Pentru x1 M, x2 M avem:

x1 + x2 M și x1 x2 M

Operațiile și + au următoarele proprietăți:

sunt comutative

x1 x2 = x2 x1

x1 + x2 = x2 + x1

sunt asociative

x1 (x2 x3) = (x1 x2) x3

x1 + (x2 + x3) = (x1 + x2) + x3

sunt distributive una față de cealaltă

x1 (x2 + x3) = x1 x2 + x1 x3

x1 + (x2 x3) = (x1 + x2) (x1 + x3)

Ambele operații admit câte un element neutru cu proprietatea:

x1 + 0 = 0 + x1 = x1

x1 1 = 1 x1 = x1

unde 0 este elementul nul al mulțimii, iar 1 este elementul unitate al mulțimii.

Dacă mulțimea M nu conține decât două elemente, acestea trebuie să fie obligatoriu elementul nul 0 și elementul unitate 1; atunci pentru x M există un element unic notat cu x cu proprietățile:

x x = 0 principiul contradicției

x + x = 1 principiul terțului exclus

x este inversul elementului x.

În tabelul următor se dau denumirile și notațiile specifice folosite pentru diverse domenii:

3.3. Proprietățile algebrei booleene

Plecând de la axiome se deduc o serie de proprietăți care vor forma reguli de calcul în cadrul algebrei booleene. Aceste proprietăți sunt:

Principiul dublei negații

x = x dubla negație duce la o afirmație

Idempotența

x x = x

x + x = x

Absorbția

x1 (x1 + x2) = x1

x1 + (x1 x2) = x1

Proprietățile elementelor neutre

x 0 = 0 x 1 = x

x + 0 = x x + 1 = 1

Formulele lui De Morgan

x1 x2 = x1 + x2

x1 + x2 = x1 x2

Aceste formule sunt foarte utile datorită posibilității de a transforma produsul logic în sumă logică și invers.

Formulele pot fi generalizate la un număr arbitrar de termeni:

x1 x2 … xn = x1 + x2 + … + xn

x1 + x2 + … + xn = x1 x2 … xn

Principiul dualității – dacă în axiomele și proprietățile algebrei booleene se interschimbă 0 cu 1 și + cu , sistemul de axiome rămâne același, în afara unor permutări.

Obsesrvație: Comutativitatea și asociativitatea pot fi extinse la un număr arbitrar, dar finit, de termeni, indiferent de ordinea lor.

3.4. Funcții booleene

Fie o funcție f: Bn B, unde B = 0,1 o funcție booleană. Atunci, y = f(x1, x2,…,xn) este caracterizată de faptul că atât variabilele de intare cât și funcția nu pot lua decât două valori distincte, 0 sau 1.

O astfel de funcție este utilizată pentru caracterizarea funcționării unor dispozitive (circuite) construite cu elemente de circuit care au două stări.

Exemple: un întrerupător închis sau deschis, un tranzistor blocat sau în conducție).

3.4.1. Funcții booleene elementare

Fie o fucție de o variabilă de forma y = f(x). Cele 4 forme posibile ale ei sunt prezentate în următorul tabel în tabelul următor:

Cu ajutorul funcțiilor booleene se pot construi circuite logice. Orice circuit logic de comutație are 2 stări stabile LOW (L) și HIGH (H), asignând lui L valoarea 0 și lui H valoarea . Mai jos este prezentat un tabel al funcțiilor elementare.

3.4.2. Reprezentarea funcțiilor booleene

Există două moduri de reprezentare a funcțiilor booleene: grafică și analitică.

Modalități grafice – se caracterizează printr-o reprezentare intuitivă, ușor de reținut, dar sunt inadecvate pentru funcții booleene cu un număr de variabile mai mare decât 4;

Modalități analitice – sunt mai greoaie, dar permit algoritmi de simplificare a funcției și se folosesc în general pentru funcții booleene cu numărul variabilelor mai mare decât 5.

Modalități de reprezentare grafică

Modalitățile de reprezentare grafică sunt: tabela de adevăr, diagrama Karnaugh, schemă logică, diagrama de timp.

Tabela de adevăr

Se marchează într-un tabel corespondența dintre valorile variabilelor de intrare și valorile funcției. Pentru o funcție cu n variabile de intrare vom avea 2n combinații.

Exemplu: Fie funcția

x,y,z = trei variabile de intrare → 23=8 combinații posibile

Există situații în care, pentru anumite combinații ale variabilelor de intrare, funcția să nu aibe nici o specificată. Aceste funcții se numesc incomplet definite. În acest caz, în tabel pe pozițiile respective la valoarea funcției , se notează cu “X”, ”-”, ”indiferent” (don’t carry).

Diagrama Karnaugh-Veitch (diagrama K-V)

O diagramă K-V este o diagramă desenată sub forma unui pătrat sau dreptunghi. Pentru o funcție booleană de n variabile există 2n celule (căsuțe). Fiecare celulă conține valoarea funcției pentru combinația de intrări corespunzătoare.

Diagrama K-V este organizată astfel încât două celule vecine pe o linie sau pe o coloană să corespundă la două combinații de intrări care diferă numai printr-un singur bit. Adiacența este valabilă pe linie și respectiv pe coloană, nu pe diagonală.

Observație: Adiacente sunt și celule de la capăt de linie sau de coloană.

Exemple:

1) Diagrama K-V pentru funcția de 2 variabile:

f(x1, x2) = x1x2 + x1x2

x1

sau

x1

x2

Obs. Numerotarea liniilor și coloanelor se face în cod Gray (cod binar reflectat)

2) Diagrama K-V pentru funcția de 3 variabile:

y = f(x1,x2,x3)

Domeniul de definiție este format din 23 = 8 puncte și reprezintă vârfurile unui cub cu latura 1:

x1

001 101

011 111

000 100 x3

010 110

x2

Diagramele K-V corespunzătoare pot fi reprezentate astfel:

x3

sau

Fie funcția

x2

3) Diagrama Karnaugh pentru funcția de 4 variabile: y = f(x1,x2,x3,x4)

x3

Prin săgeți am marcat vecinătățile punctului de coordonate 0010.

Fie funcția

x1

4) Diagramele Karnaugh pentru funcții de mai mult de 4 variabile se construiesc din diagrame de 4 variabile considerate ca diagrame elementare.

Schemă logică – reprezentare cu ajutorul simbolurilor circuitelor logice.

Exemplu: Fie funcția

Diagramă de timp – reprezentare utilă pentru studiul unor forme tranzitorii de hazard în circuitele logice. Se reprezintă funcții logice în a căror evoluție intervine timpul.

Exemplu: f = x1x2

Modalități de reprezentare analitică

Formele canonice

Fie o funcție booleană f(x), unde x = (x1,x2,…,xn).

Se definește numărul

i = x120 + x221 + … + xn2n-1 ca număr de combinații.

Exemplu:

i = 022 + 121 + 020 = 2

Fie funcția Pi definită pe Bn B, deci Pi : Bn B

Pi(x1,x2,…,xn) = 1 dacă numărul de combinații este i

0 în caz contrar

Această funcție se numește constituent al unității.

Se poate scrie că:

f(x1, x2,…,xn) = Pi1 + Pi2 + … + Pip = Pij

i,jM1

unde M1 = mulțimea tuturor combinațiilor argumentelor pentru care funcția ia valoarea 1.

Această formă de scriere se numește forma canonică disjunctivă (FCD) sau sumă de produse, iar termenii constituenți se numesc termeni canonici disjunctivi sau mintermi.

Exemplu:

→ pentru combinațiile variabilelor de intrare 0000, 0010, 0100, 1100 funcția ia valoarea 1, iar pentru restul combinațiilor funcția ia valoarea 0.

Funcția booleană se mai poate scrie și sub forma Si : Bn B unde B = {0,1}.

Si(x1,x2,…,xn) = 0 dacă numărul de combinații este i

1 în caz contrar

Se poate demonstra că orice funcție booleană poate fi adusă la forma:

f(x1, x2,…,xn) = Si1 Si2 … Siq = Sij i,jM0

unde M0 = mulțimea tuturor combinațiilor argumentelor pentru care funcția ia valoarea 0.

Această formă de scriere se numește forma canonică conjunctivă (FCC) sau produs de sume, iar factorii constituenți se numesc termeni canonici conjunctivi sau maxtermi.

Se poate demonstra că Si = Pi.

Algoritmi de obținere a formelor canonice pe baza tabelului de adevăr sau a diagramei K-V:

a) FCD – suma de produse

se determină toate combinațiile variabilelor pentru care valoarea funcției este 1;

se scriu mintermii corespunzători (o variabilă apare nenegată dacă are valoarea 1 și negată dacă are valoarea 0);

se însumează mintermii obținuți anterior.

b) FCC – produsul de sume

se determină toate combinațiile variabilelor pentru care valoarea funcției este 0;

se scriu maxtermii corespunzători prin însumarea variabilelor (o variabilă apare nenegată dacă are valoarea 0 și negată dacă are valoarea 1);

se înmulțesc maxtermii obținuți anterior.

Exemple:

1) Fie funcția

2) Fie funcția

3) Fie funcția

Pozițiile marcate cu ”X” se pot considera ca fiind 1 logic și atunci mintermenii pentru combinațiile variabilelor de intrare corespunzătoare se adugă și ele în FCD sau se pot considera ca fiind 0 logic și nu se mai determină mintermenii corespunzători.

Trecerea dintr-o formă canonică în alta se poate face în două moduri:

cu ajutorul tabelului de adevăr;

prin aplicarea dublei negații și a teoremelor lui De Morgan.

Teorema lui Shannon

Complementul unei funcții booleene se obține prin complementarea fiecărei variabile și interschimbarea operatorilor ȘI cu SAU și reciproc.

f(x1,x2,…,xn)+, = f(x1,x2,…,xn),+

Teorema de expansiune

Fie funcția booleană f(x1,x2,…, xi-1, xi, xi+1,…,xn) care se expandează după variabila xi. Avem atunci:

f(x1,x2,…, xi-1, xi, xi+1,…,xn) = xif(x1,x2,…, xi-1, 1, xi+1,…,xn) + xif(x1,x2,…, xi-1, 0, xi+1,…,xn)

Funcția duală este:

f = [xi + f(x1,x2,…, xi-1, 0, xi+1,…,xn)][xi + f(x1,x2,…, xi-1, 1, xi+1,…,xn)]

Forma elementară

Această formă se obține din formele canonice prin minimizare, iar termenii obținuți nu conțin toate variabilele de intrare.

Forma neelementară

Această formă conține variabile sau grupuri de variabile comune mai multor termeni și se obține din celelalte forme prin aplicarea algebrei booleene. Este utilizată la implementarea funcțiilor logice deoarece permite reducerea numărului de intrări în circuitele logice, dar are dezavantajul măririi numărului de nivele logice.

Minimizarea funcțiilor booleene

Algebra booleană se utilizează pentru analiza și sinteza dispozitivelor numerice (circuite de comutație). Există o legătură directă între gradul de complexitate al circuitului și cel al funcției care îl descrie, astfel că, în etapa de sinteză a circuitelor de comutație, după definirea acestora, urmează în mod obligatoriu etapa de minimizare a funcției, având drept scop obținerea unor forme echivalente mai simple (forma minimă). Forma minimă obținută ar trebui să fie cea mai avantajoasă din punct de vedere economic (un număr redus de porți logice, obținerea unei scheme mai fiabile, mai ieftine), însă în realitate nu este întotdeauna așa, din dorința de a obține un sistem ușor depanabil poate duce la obținerea unei soluții neminimale, dar care prezintă proprietăți interesante de simetrie și regularitate.

Criteriile utilizate în vederea minimizării sunt:

reducerea numărului de variabile;

reducerea numărului de termeni;

reducerea pe ansamblu a variabilelor și termenilor, astfel ca suma lor să devină minimă.

Minimizarea constă în principal în transformarea formelor canonice și a formelor elementare parțial simplificate în forme elementare minimale.

Metodele de minimizare pot fi grupate în metode algebrice și metode grafice.

3.4.3.1. Minimizarea grafică

Diagrama K-V

Definiții:

Două celule adiacente de 1 logic (0 logic) formează un inel de rang 1 care va conține 21 celule.

Două inele de rang 1 adiacente formează un inel de rang 2 care va conține 22 celule.

Ș.a.m.d.

Două inele de rang n-1 adiacente formează un inel de rang n vare va conține 2n celule.

Inelul care conține cel mai mare număr de celule se numește inel maximal.

Expresia algebrică asociată fiecărui inel maximal se numește implicant prim (IP).

Inelul cu o singură celulă (20) se numește inel singular.

Metoda de minimizare:

se realizează grupări de celule (inele) care sunt puteri ale lui 2. O celulă poate fi membru al mai multor suprafețe. O suprafață cu 2m celule vecine va elimina 2m variabile de intrare.

se scriu ecuațiile corespunzătoare fiecărei suprafețe, obținându-se astfel termenii elementari.

se realizează forma sumă de produse (FCD) prin însumarea implicanților primi obținuți prin gruparea celulelor cu valoarea 1 sau forma produs de sume (FCC) prin înmulțirea implicanților primi obținuți prin gruparea celulelor cu valoarea 0; funcțiile minimale obținute sunt identice, ele diferind numai prin forma de prezentare.

Observații: a) În cazul FCD implicanții primi sunt obținuți prin înmulțirea variabilelor de intrare astfel:

dacă o variabilă de intrare rămâne constantă cu valoarea 1 logic pe parcursul întregului inel, aceasta se va scrie nenegată

dacă o variabilă de intrare rămâne constantă cu valoarea 0 logic pe parcursul întregului inel, aceasta se va scrie negată

dacă o variabilă de intrare comută din 0 logic în 1 logic (respectiv din 1 logic în 0 logic) pe parcursul inelului respectiv, atunci aceasta nu se va mai scrie (se elimina termenul canonic)

b) În cazul FCC implicanții primi sunt obținuți prin însumarea variabilelor de intrare astfel:

dacă o variabilă de intrare rămâne constantă cu valoarea 0 logic pe parcursul întregului inel, aceasta se va scrie nenegată

dacă o variabilă de intrare rămâne constantă cu valoarea 1 logic pe parcursul întregului inel, aceasta se va scrie negată

dacă o variabilă de intrare comută din 0 logic în 1 logic (respectiv din 1 logic în 0 logic) pe parcursul inelului respectiv, atunci aceasta nu se va mai scrie (se elimina termenul canonic)

c) Cele două funcții obținute FCD și FCC sunt identice, ele diferă numai prin forma de prezentare.

Pentru a se obține forma minimală a unei funcții booleene este util să se minimizeze ambele forme canonice, FCC și FCD. Apoi, în funcție de disponibilitatea componentelor și de numărul de conexiuni care rezultă, se poate alege forma minimală a funcției booleene care va fi implementată.

Exemplu:

f(x1,x2,x3,x4) = (3, 7, 8, 9, 12, 13, 15)

x3

Pentru FCD a funcției se obțin două variante, după cum se aleg suprafețele pentru minimizare:

fFCD1 = x1x3 + x1x3x4 + x1x2x4 sau

fFCD2 = x1x3 + x1x3x4 + x2x3x4

Implementarea cu porți de tip ȘI-NU arată astfel:

fFCD1 = x1x3 + x1x3x4 +x1x2x4 = = x1x3 x1x3x4 x1x2x4

Minimizarea funcției negate va fi:

fFCD = x1x3 + x3x4 + x1x2x3

La fel se procedează și la minimizarea funcției prin folosirea celuleoor de 0:

x3

Forma minimizată conjunctivă a funcției FCC este:

fFCC = (x1+x3)(x3+x4)(x1+x2+x3)

Diagrame K-V pentru funcții incomplet definite

Funcțiile incomplet definite sunt cele care pentru anumite combinații ale variabilelor de intrare pot lua valoarea 0 sau valoarea 1. Există două posibilități:

combinații de intrare pentru care funcția are valori indiferente (nedefinite);

combinații ale variabilelor care nu pot să apară din punct de vedere fizic; în aceste situații trebuie studiat dacă combinațiile sunt susceptibile să se producă în urma unei manevre false sau în urma unui defect de funcționare; pentru a evita funcționarea greșită, în locațiile corespunzătoare se impun valori pentru funcție, astfel încât să nu se perturbe funcționarea normală.

Valorile nespecificate precum și locațiile corespunzătoare din diagrama K-V se numesc “indiferente” sau “arbitrare” sau “redundante”. Ele se notează cu “X” și vor fi considerate în timpul minimizării ca având valoarea 1 sau 0, în funcție de situație, pentru a se obține o minimizare cât mai bună.

Exemplu: f(x1,x2,x3,x4) = (3, 5, 8, 11, 12, 13, 15) + d (1,4,6,9,10)

x3

Ca să minimizăm funcția în FCD considerăm că x au valoarea 1 și grupăm acești x numai cu valorile de 1, nu și între ei (o grupare între ei nu are nici o semnificație).

Se obține: fFDM = x1x2 + x2x3 + x1x4 + x2x4

Observație: În cazul funcțiilor incomplet definite, funcția complementară simplificată prin grupări de 0 nu coincide întotdeauna cu complementul funcției.

Diagrame K-V cu expresii

Superpoziția funcțiilor booleene

Fie o funcție booleană f(X) unde X = (x1,x2,…, xi, xi+1,…,xn). Considerând X1 = (x1,x2,…, xi) și X2 = (xi+1,…,xn) și că funcția f(X) poate fi scrisă ca o funcție f(X) = f3[f1(X1), f2(X2)] atunci spunem că f(X) se obține prin superpoziția funcțiilor f1(X1) și f2(X2).

Dacă X1X2 = atunci avem o superpoziție disjunctă, iar dacă X1X2 avem o superpoziție nedisjunctă.

x1

f

xn

După superpoziție avem:

x1

f1

xi

f3 f

xi+1

f2

xn

Decompoziția funcțiilor booleene

Fie o funcție booleană și un set de funcții se cere să se realizeze o “spargere” a funcției booleene. Decompoziția funcției booleene se poate obține dacă:

f = fm [fm-1(Xm-1), fm-2(Xm-2),…,f1(X1),X0] unde Xi X

Dacă f poate fi scrisă ca f = f2[f1(X1),X0] decompoziția este simplă.

m-1

Decompoziția este nedisjunctă dacă: Xi =

i=jm-1

Decompoziția este disjunctă dacă: Xi

i=j

Exemplu:

f(x1,x2,x3,x4) = (0, 2, 3, 7, 9, 10, 11, 14)

x3

fFDM = x1x2x4+x1x3x4+x1x3x4+x1x2x4 = x2(x1 x4) +x3(x1 + x4) = x2G+x3G

unde G=x1 + x4 și deci f se poate scrie: f = f2[G(x1,x4), x2,x3]

Pornind de la această formă pentru f, facem o minimizare.

f = x2G + x3G = x2G(x3 + x3) + x3G(x2 + x2) =

= x2x3G + x2x3G + x2x3G + x2x3G = x2x3 + x2x3G + x2x3G

Diagrama K-V corespunzătoare este:

În general o diagramă K-V cu “n” expresii (sau variabile) are 2n locații. Prin înglobarea în diagramă a “m” expresii (variabile) dimensiunea diagramei se reduce, numărul de locații devenind 2n-m.

Pentru a minimiza o funcție prin diagrame K-V cu expresii se fac următorii pași:

se consideră toate variabilele din diagramă ca și cum ar fi 0 și se formează suprafețe (inele) cu celule de 1;

se consideră toate locațiile cu 1 indiferente și se formează suprafețe (inele) cu variabilele înglobate;

se consideră intersecția variabilelor înglobate cu grupările obținute în pasul 2;

se face reuniunea termenilor din pașii 1 și 3;

pentru mai mult de o variabilă înglobată se tratează pe rând conform pașilor 1 – 4 numai câte o variabilă, celelalte fiind considerate 0, iar apoi se scrie reuniunea tuturor termenilor obținuți.

Exemplu: Să se minimizeze funcția cu variabile înglobate:

Pasul 1.

Se obține x2x3 + x1x3

Pasul 2 și 3.

Se obține cx2 + (a+b)x1x3

Pasul 4.

f = x2x3 + x1x3 + cx2 + (a+b)x1x3

3.4.3.2. Minimizarea algebrică

Minimizarea algebrică a funcțiilor booleene se face cu ajutorul teoremelor algebrei booleene.

În cazul în care numărul de variabile este mai mare decât 6 se utilizează metoda de minimizare Quine-Mc Cluskey. Această metodă are avantajul că algoritmul este ușor de implementat pe calculator. Pentru prezentarea metodei vom lua ca exemplu funcția:

f = (0, 2, 3, 5, 7, 8, 10, 11, 13, 15)

Etapele de minimizare sunt:

Se grupează termenii canonici astfel încât termenii din fiecare grupă să conțină același număr de 1, respectiv 0.

TC x1 x2 x3 x4

0 0 0 0 0

2 0 0 1 0

8 1 0 0 0

3 0 0 1 1

5 0 1 0 1

10 1 0 1 0

7 0 1 1 1

11 1 0 1 1

13 1 1 0 1

15 1 1 1 1

Se compară fiecare termen dintr-o grupă cu toți cei din grupa următoare, aplicând relația de reducere: x1x2 + x1x2 = x1. Se grupează termenii care diferă printr-o singură variabilă (o singură poziție binară). Termenul obținut prin combinare va conține pe poziția respectivă semnul -.

Comparare Rezultatul comparării

între x1 x2 x3 x4

0, 2 0 0 – 0

0, 8 – 0 0 0

2, 3 0 0 1 –

2, 10 – 0 1 0

8, 10 1 0 – 0

3, 7 0 – 1 1

3, 11 – 0 1 1

5, 7 0 1 – 1

5, 13 – 1 0 1

10, 11 1 0 1 –

7, 15 – 1 1 1

11, 15 1 – 1 1

13, 15 1 1 – 1

În continuare se repetă procedeul de comparare până când nu mai este posibilă nici o reducere.

Comparare Rezultatul comparării

între x1 x2 x3 x4

0, 2, 8, 10 – 0 – 0

2, 3, 10, 11 – 0 1 –

3, 7, 11, 15 – – 1 1

5, 7, 13, 15 – 1 – 1

Termenii rezultanți, (0, 2, 8, 10), (2, 3, 10, 11), (3, 7, 11, 15) și (5, 7, 13, 15) se numesc implicanți primi IP.

Se aleg acei implicanți primi IP care asigură acoperirea minimală a termenilor canonici TC. Pentru aceasta se construiește un tabel de acoperire, în care pe coloane se notează termenii canonici TC, iar pe linii implicanții primi IP. În intersecții se notează acei termeni canonici TC acoperiți de fiecare implicant prim IP.

Unii dintre implicanții primi sunt implicanți primi esențiali pentru că acoperă cel puțin un termen canonic al funcției, care nu este acoperit de alt implicant prim. Implicanții primi esențiali vor face parte în mod obligatoriu din expresia minimizată a funcției. În cazul nostru implicanți primi esențiali sunt (0, 2, 8, 10) și (5, 7, 13, 15). Pentru termenii canonici care au rămas neacoperiți, 3 și 11, se observă că pot fi aleși 2 implicanți primi, (2, 3, 10, 11) și (3, 7, 11, 15), deci există 2 soluții de minimizare.

f = (0, 2, 8, 10) + (5, 7, 13, 15) + (2, 3, 10, 11) = x2x4 + x2x4 + x2x3

și

f = (0, 2, 8, 10) + (5, 7, 13, 15) + (3, 7, 11, 15) = x2x4 + x2x4 + x3x4

3.4.4. Minimizarea sistemelor de funcții booleene

Sistemele de funcții booleene sunt exprimate prin f: Bn Bm unde B =0, 1. Argumentele pot fi de n variabile și sunt mai multe funcții de acest tip: f1, f2,…, fm.

Pentru a minimiza sistemele de funcții se caută implicanți primi pentru f1, f2,…, fm și pentru produsele f1f2, f1f3…, f1fm, … f1f2f3,…, f1f2f3f4,…, … f1f2…fm. Soluția aleasă pentru implementarea sistemului de funcții booleene va fi cea care va fi cea mai avantajoasă din punct de vedere al circuitelor disponibile și al prețului.

Exemplu:

f1(x1,x2,x3) = (1, 5, 6, 7)

f2(x1,x2,x3) = (1, 4, 5, 6)

f3(x1,x2,x3) = (0, 2, 5, 6, 7)

1. Calculăm funcțiile produs:

f1f2 = (1, 5, 6)

f1f3 = (5, 6, 7)

f2f3 = (5, 6)

f1f2f3 = (5, 6), identică cu f2f3

2. Determinăm implicanții primi din funcțiile simple și din produsele determinate la punctul 1. Pentru determinarea implicanților primi se folosesc diagrame Karnaugh în care se iau toate acoperirile posibile.

Pentru f1:

Pentru f2:

Pentru f3:

Pentru f1f2:

Pentru f1f3:

Pentru f2f3 și f1f2f3:

3. Construim un tabel în care capetele de linii vor reprezenta funcțiile, iar coloanele vor fi implicanții primi.

4. Se notează IP pe coloana a patra din tabel începând cu ultimul, iar cei care apar dublați nu se mai notează.

5. Se construiește un tabel al acoperirilor funcțiilor f1, f2, f3.

6. Determinăm acoperirile optime ale funcțiilor f1, f2, f3.

A(f1) = e,c + e,d,a = A1 + A2 cu e implicant prim esențial

A(f2) = e,h + e,i,a = B1 + B2 cu e implicant prim esențial

A(f3) = g,c,b + g,c,d, + g,f,d + g,a,d = C1 + C2 + C3 + C4 cu g implicant prim esențial

7. Se scriu toate acoperirile posibile pentru sistemul de funcții și se alege acea acoperire care realizează condițiile de preț minim și disponibilitate de piese. Se face tabelul pentru acoperiri:

Avem acoperiri minimale cu 5 termeni. Pentru a calcula costul unei acoperiri se face suma costurilor implicanților primi din acoperirea considerată. Costul unui implicant prim de n variabile din care lipsesc r variabile este n-r, pentru că fiecare variabilă prezentă necesită un contact, o legătură.

n-1

C = gr(n-r)

r=0

unde gr este numărul subcuburilor din care lipsesc r variabile.

Pentru acoperirea A1B1C2, care are elementele e,c,h,g,d, avem costul:

2

C = gr(3-r) = g03 + g12 + g21 = 03 + 52 + 01 = 10

r=0

e = x2x3

c = x1x2

h = x1x3

g = x1x3

d = x1x3

Minimizarea sistemului de funcții va fi:

f1 = x2x3 + x1x2

f2 = x2x3 + x1x3

f3 = x1x3 + x1x3 + x1x2 = x1x2 + x1 + x3

Datorită reducerii corelate a sistemului de funcții apar porți comune mai multor funcții.

CAP.4. CIRCUITE INTEGRATE NUMERICE

Circuitele integrate numerice (digitale), CIN (CID), sunt circuite integrate care primesc la intrare semnale digitale și furnizează la ieșirile circuitului semnale numerice. Ieșirea este o funcție de:

valorile intrărilor,

starea în care se află circuitul (la momentul de timp în care se calculează),

algoritmul intern de prelucrare.

Între două secvențe de actualizare, stările ieșirilor se consideră că nu se modifică.

Definiții:

Circuitele numerice sunt sincrone dacă verificarea stări intrărilor și prelucrarea semnalelor are loc ciclic la momente de timp impuse de un semnal de sincronizare (semnal de tact), indiferent de faptul că s-a modificat sau nu s-a modificat vreo intrare.

Circuitele numerice asincrone încep prelucrarea semnalelor, la momente de timp aleatorii, moment de timp impus de modificarea vreunei intrări sau de schimbarea stării interne a circuitului.

Pentru prelucrarea semnalelor, circuitul numeric are nevoie de un timp mai lung sau mai scurt, timp numit timp de răspuns sau timp de întârziere sau tp timp de propagare (a impulsului de la intrare prin sistemul de prelucrare la ieșirea circuitului). Timpul de răspuns al unui circuit numeric depinde de volumul de calcule și de viteza de comutate a dispozitivelor electronice (cu ajutorul cărora a fost implementat respectivul circuit integrat), altfel spus depinde de tehnologia de realizare a CIN.

Din punct de vedere al tehnologiei de realizare există următoarele tipuri:

bipolare, care au în componență tranzistori bipolari;

unipolare, care au în componență tranzistori cu efect de câmp.

Proiectarea unui dispozitiv care să îndeplinească diferite operații logice se realizează astfel:

se începe cu proiectarea logică a dispozitivului,

urmată de etapa de implementare cu circuite integrate numerice

se continuă cu verificarea și testarea funcționalității.

A doua etapă, cea de implementare, constă în adoptarea unor circuite numerice integrate și interconectarea acestora în scopul realizării funcțiilor logice precizate în etapa anterioară. Pentru aceasta ar trebui să studiem foile de catalog ale miilor de producători pentru a identifica circuitele necesare și a stabili dacă pot fi interconectate (dacă au aceleasi reprezentări ale cifrelor binare, dacă au aceeasi sursă de alimentare, dacă au un timp de răspuns corespunzător, ș.a.m.d).

Pentru a micșora efortul de implementare a dispozitivului, în cadrul fiecărei clase de tehnologii, circuitele numerice au fost grupate în serii (familii) de circuite integrate numerice standardizate, diferențiate prin gradul de integrare și caracteristicile electrice.

În raport cu gradul de integrare (numărul de tranzistori implementați pe pastila integratului) circuitele digitale pot fi:

SSI (Small Scale Integration), cu mai puțin de 50 tranzistori;

MSI (Medium Scale Integration), între 50 și 500 tranzistori;

LSI (Large Scale Integration), între 500 și 30.000 tranzistori;

VLSI (Very Large-Scale Integration), peste 30.000 tranzistori.

Observație: De menționat faptul că, datorita complexității circuitelor VLSI și a funcțiilor diferite pe care le implementează, acestea nu au fost standardizate, numai producătorul circuitului asigură interfețe de intrare/ ieșire care să permită comunicarea cu exteriorul, pe baza unui standard acceptat (unul din standardele enumerate în cele ce urmează).

Principalele serii de circuite integrate numerice care au rezistat dea lungul timpului sunt:

în tehnologia bipolară, seriile DTL (Diode Transistor Logic),TTL (Transistor Transistor Logic) și ECL (Emitter Coupled Logic);

în tehnologia unipolară, seriile CMOS (Complementary Metal Oxide Semiconductor), NMOS (N- channel MOS) , PMOS (P-channel MOS);

în tehnologie combinată unipolară și bipolară pe aceeași pastilă de siliciu, seria BiCMOS (Bipolar Complementary MOS).

4.1. Parametrii care definesc o familie de circuite integrate logice

Caracteristcile interfeței electrice a standardului se exprimă luând drept element de bază circuitul logic inversor (ieșirea este valoarea negată a intrării – dacă la intrare se aplică “0” ieșire va fi în “1” și reciproc) al familiei respective, specificând:

Caracteristica statică de transfer;

Marginile de imunitate la perturbațiile statice;

Capacitatea de încărcare a circuitelor logice;

Timpul de propagare;

Consumul de putere.

Caracteristica statică de transfer este familia de curbe care exprimă dependența tensiunii de ieșire a circuitului în funcție de valorile pe care le ia tensiunea de la intrare. Se definesc mărimile:

VILmin – nivelul de tensiune minim pentru ‘0’ logic la intrare,

VILmax – nivelul de tensiune maxim pentru ‘0’ logic la intrare,

VIHmin – nivelul de tensiune minim pentru ‘1’ logic la intrare,

VIHmax – nivelul de tensiune maxim pentru ‘1’ logic la intrare,

VOLmin – nivelul de tensiune minim pentru ‘0’ logic la iesire,

VOLmax – nivelul de tensiune maxim pentru ‘0’ logic la iesire,

VOHmin – nivelul de tensiune minim pentru ‘1’ logic la iesire,

VOHmax – nivelul de tensiune maxim pentru ‘1’ logic la iesire.

Se obține o familie de curbe, deoarece cifrei „1” logic nu îi corespunde un singur nivel de tensiune ci un domeniu de tensiuni (la fel și pentru „0” logic).

Nivelele de tensiune notate cu cifre definesc zona de funcționare normală în absența perturbațiilor (VIL2 – VIL1 și VIH2 – VIH1) iar cu acolade s-au marcat zonele permise. Intervalul (VIHmin – VILmax) reprezintă zona de tranziție.

Marginea de imunitate la perturbațiile statice reprezintă valoarea maximă a tensiunii perturbatoare care însumată cu semnalul util aplicat la intrare, în cazul cel mai defavorabil, nu conduce la schimbarea comportării circuitului (în sensul că dacă la intrarea inversorului se aplica “0” ieșirea devine “1” chiar și în prezența unui semnal perturbator).

Marginea de imunitate la perturbații garantată de producător se definește prin diferența nivelelor logice astfel:

pentru „0” logic ML=VILmax-VOLmax

pentru „1” logic MH=VILmin-VOLmin

Capacitatea de încărcare a circuitelor logice se exprimă prin factorul de încărcare la intrare FI (Fan-In) și respectiv factorul de încărcare la ieșire FO (Fan-Out).

Capacitatea de încărcare a ieșirii circuitului FO (Fan-Out) reprezintă numărul maxim de porți logice ce pot fi conectate la ieșire fără degradarea nivelelor logice (fără ca nivelul de tensiune furnizat de ieșirea porții pentru starea “1” să scadă sub pragul VOHmin). Din punctul de vedere al intrării circuitului situația este similară (pentru Fan-In).

Timpul de propagare

Timpul de propagare exprimă întârzierea cu care se stabilește ieșirea la valoarea corespunzătoare semnalului aplicat la intrare.

Deoarece intrarea nu se modifică instantaneu ci într-un timp finit tr, măsurarea timpului de propagare se face, între momentul când intrarea ajunge la 50% din valoarea finală și momentul când ieșirea ajunge la 50% din valoarea finală. Se obțin două întârzieri tpHL – corespunzătoare căderii ieșirii din H în L și tpLH – corespunzătoare creșterii semnalului de ieșire din L în starea H.

Observație: Uneori se calculează timpul mediu de propagare, ca medie aritmetică a celor doi timpi.

Consumul de putere, este în directă legătură cu valoarea tensiunii sursei de alimentare de curent continuu, așa încât se impune precizarea și a altor elemente:

tensiunea de alimentare (VCC sau VDD );

curenții absorbiți de circuit, când iesirea este în starea ‘1’ logic (ICCH), respectiv în starea ‘0’ logic (ICCL);

curentul cu ieșirea în scurtcircuit (IOSC);

puterea medie consumată (Pmed).

Datorita comutației circuitului logic dintr-o stare în alta se consumă o putere suplimentară, exprimată prin puterea necesară încărcării / descărcării capacităților parazite CP de la ieșire:

PCom=fCP(Vcc)2

putere dependentă de frecvența f a semnalului de comutare. Puterea totală absorbită de la sursa de curent continuu este:

PT Pmed PCom

4.2. Circuite logice elementare cu componente discrete

În funcție de tipul de componente discrete care intră în structura circuitului respectiv, distingem circuite logice elementare cu componente discrete pasive, respectiv active.

4.2.1. Circuite logice elementare cu componente pasive

Acest tip de circuite logice utilizează numai componente pasive, adică componente de circuit care nu posedă capacitatea de a amplifica semnalul aplicat la intrare. Dintre acestea, componentele de circuit cele mai utilizate sunt diodele și rezistențele.

4.2.1.1. Circuitul logic ȘI (AND) pasiv

Circuitul logic ȘI (AND) pasiv are schema din figura care urmează și tabelul de adevăr alăturat.

Circuitul logic ȘI (AND) pasiv Tabelul de adevăr al funcției ȘI (AND)

Funcționare: se consideră că diodele D1 și D2 sunt ideale și că x2 și x1 sunt notate cu A, respectiv B.

Astfel, pentru combinația logică de intrare x2x1=00 (prima linie a tabelului de adevăr), VI1=VI2=0V și, practic, catozii celor două diode sunt ca și legați la masă, așa cum se poate vedea în figura următoare (cazul a):

a) x2x1=00; b) x2x1=01 (10); c) x2x1=11.

Pentru combinația de intrare x2x1=01 (a doua linie a tabelului de adevăr), VI2=0, VI1=+E, deci catodul diodei D2 rămâne conectat la masă, iar cel al diodei D1 se conectează la +E (cazul b). Dioda D2 conduce ca și în cazul precedent, în timp ce D1, având catodul conectat la potențialul cel mai pozitiv al schemei, este blocată. Evident, V0=0 și y=0 logic.

Pentru x2x1=10 este valabilă tot schema echivalentă cazului b în care rolul diodelor D1 și D2 se inversează. Rezultatul este y=0 logic.

Pentru x2x1=11, vom avea: VI1=VI2=+E, și ambele diode vor fi conectate cu catozii la +E, (cazul c), deci vor fi blocate. Potențialul +E se transferă la ieșire prin rezistența R, deci V0=+E și y=1 logic.

De aici rezultă că tabela inițială este tabelul de adevăr al funcției ȘI (AND):

unde: VIL=0, VIH=+E.

4.2.1.2. Circuitul logic SAU (OR) pasiv

Circuitul logic SAU (OR) pasiv are schema din figura de mai jos și tabelul de adevăr alăturat.

Funcționare: se consideră că diodele D1 și D2 sunt ideale și că x2 și x1 sunt notate cu A, respectiv B.

Pentru combinația logică de intrare x2x1=00, deci VI1=VI2=0V, anozii celor două diode sunt practic conectați la potențialul masei (cazul a). Întrucât nu există nici o diferență de potențial în schemă, prin rezistența R nu circulă curent și, prin urmare, V0=0V, deci y=0 logic.

Circuitul logic SAU (OR) pasiv Tabelul de adevăr al funcției SAU (OR)

a) x2x1=00; b) x2x1=01 (10); c) x2x1=11

Pentru x2x1=01, deci VI2=0V și VI1=+E, dioda D2 rămâne conectată cu anodul la masă, în timp ce D1 se conectează cu anodul la +E, (cazul b). Dioda D1 va conduce pe traseul: +E, D1, R, masă și fiind ideală, pe ea nu “cade” nimic. Întreaga cădere de tensiune se regăsește la bornele rezistenței R, blocând dioda D2 și generând la ieșirea schemei tensiunea V0=+E, deci y=1 logic.

Combinația de intrare x2x1=10 produce o situație similară celei anterioare, (cazul b), poziția diodelor inversându-se. Rezultă y=1 logic.

Pentru x2x1=11, vom avea VI1=VI2=+E și ambele diode vor fi conectate cu anozii la +E, (cazul c), deci vor conduce și vor transfera potențialul +E la ieșire. Rezultă V0=+E și y=1 logic.

De aici rezultă că tabela inițială este tabelul de adevăr al funcției SAU (OR):

unde: VIL=0, VIH=+E.

4.2.2. Circuite logice elementare cu componente active

Acest tip de circuite logice conțin și elemente active de circuit (tranzistoare) care, după cum se știe, sunt capabile să amplifice un semnal.

4.2.2.1. Circuitul logic NU (NOT)

Circuitul logic NU (NOT) are schema din figura următoare și tabelul de adevăr alăturat.

Circuitul logic NU (NOT) Tabelul de adevăr al funcției NU (NOT)

Funcționare: Când x=0, VI=0V și borna de intrare a circuitului este conectată la masă, (cazul a).

a) x=0 b) x=1

Baza tranzistorului este conectată la masă printr-o rezistență echivalentă RB=RB1//RB2, deci VBE=0 și tranzistorul T este blocat. Potențialul +VCC se transferă la ieșire prin Rc și V0=+VCC, deci y=1 logic.

Pentru x=1, VI=+VCC (cazul b). Divizorul RB1, RB2 este astfel dimensionat încât VBE≥0,7V, deci tranzistorul T este saturat și VCE=V0≈0,1V. Rezultă y=0 logic.

4.2.2.2. Circuitul logic ȘI-NU (NAND)

Circuitul logic ȘI-NU (NAND) prezintă schema din figura care urmează, obținută prin conectarea în cascadă a unui circuit ȘI (AND) pasiv și a unui circuit NU (NOT).

Tabelul de adevăr se obține din tabelul funcției ȘI (AND), modificat în sensul negării valorilor logice din coloana funcției.

Circuitul logic ȘI-NU (NAND Tabelul de adevăr al funcției ȘI-NU

(NAND)

4.2.2.3. Circuitul logic SAU-NU (NOR)

Circuitul logic SAU-NU (NOR) se obține prin conectarea în cascadă a circuitului SAU (OR) cu circuitul NU (NOT).

Circuitul logic SAU-NU (NOR) Tabelul de adevăr al funcției SAU-

NU (NOR)

Tabelul de adevăr se obține prin negarea valorilor logice din coloana funcției de ieșire Y din tabelul funcției SAU .

4.2.3. Circuite logice elementare integrate realizate în tehnologie bipolară

4.2.3.1.Circuite logice DTL (Familia DTL)

Circuitele logice DTL (Diodă-Tranzistor-Logic) prezintă structura de bază din figura următoare și tabelul de adevăr alăturat.

Circuitul logic ȘI-NU (NAND)

Tabelul de adevăr al funcției ȘI-NU

(NAND)

Schema din figură provine din cea din prezentatăîn paragraful 4.2.2.2, în care rezistența RB1 a fost înlocuită cu diodele D3 și D4, având rolul de a asigura o deplasare cu 2·0,7V=1,4V a nivelului logic superior al intrării porții, nivel care determină trecerea tranzistorului T din starea de blocare în cea de saturație. În rest, funcționarea este identică cu cea a circuitului ȘI-NU (NAND) și este descrisă pe scurt în tabelul următor:

4.2.3.2. Familia TTL standard

Familia TTL standard este una dintre cele mai răspândite categorii de circuite logice integrate pe scară mică și medie.

Reprezentantul de bază al acestei familii, cu ajutorul căruia pot fi generate toate funcțiile logice, este poarta ȘI-NU (NAND).

4.2.3.2.1. Poarta NAND – TTL

Poarta NAND – TTL prezintă schema din figura de mai jos (figura a), simbolul logic din figura b și tabelul de adevăr alăturat.

schema

b) simbol

c) Tabelul de adevăr al funcție NAND

Diodele D1 și D2 protejează tranzistorul multiemiter T1 împotriva eventualelor tensiuni negative ce pot apărea pe intrări în timpul regimurilor tranzitorii. În regim staționar ele nu au nici un fel de importanță, motiv pentru care vor fi ignorate în continuare.

Tranzistorul multiemiter T1 asigură curentul de bază necesar tranzistorului defazor T2 care comandă etajul final de tip totem pole (în contratimp) realizat cu tranzistoarele T3 și T4. Acest tip de etaj final permite obținerea unor timpi de propagare reduși, o creștere a imunității la perturbații a porții și o scădere a rezistenței de ieșire a acesteia (15 în stare "L" și 70 în stare "H").

Funcționare: Înlocuind joncțiunile tranzistorului multiemiter T1 cu diode, schema din figura anterioară a se transformă de maniera din figura de mai jos.

Se observă ușor că circuitul din această figură este format dintr-un ȘI-pasiv (realizat de diodele DBE11, DBE12 și rezistența R1), urmat de un inversor (realizat cu tranzistoarele T2, T3 și T4).

Într-adevăr, exceptând DBC1 care are rol de deplasare de nivel (v. familia DTL) și reamintind faptul că semnalul din colectorul unui tranzistor evoluează în antifază față de cel din bază și emiter, observăm că o creștere a nivelului semnalului din B2 va antrena o scădere a nivelului în B4 și – implicit – în y, simultan cu o creștere a nivelului în B3 și o scădere a acestuia în y. Concluzionând, creșterea nivelului în B2 conduce la o scădere – pe două căi – a nivelului în y, inversarea semnalului fiind evidentă. Funcția ȘI-NU (NAND) a circuitului fiind demonstrată, tabelul de adevăr este verificat.

O schemă mai intuitivă a porții NAND – TTL

4.2.3.2.2. Poarta NOR – TTL

Schema porții NOR -TTL, figura de mai jos și tabelului de adevăr alăturat.

Schema porții NOR – TTL

Tabelul de adevăral funcției NOR

Funcționare: Ca și în cazul porților logice tratate mai sus, verificăm funcționarea porții NOR – TTL cu ajutorul tabelului de adevăr.

Astfel, pentru x1=x2=0 logic, deci VIA=VIB= 0V, în bazele tranzistoarelor și nu vom avea mai mult de 0,7V (v. funcționarea inversorului TTL) ceeace va implica imposibilitatea deschiderii celor două triplete de joncțiuni (BC1, BE2, BE3, respectiv BC1’, BE2’, BE3) către masă. În concluzie, , și vor fi blocate, deci V0 va fi dat de relația V0(1) ≈ VCC – VBE4 – VD = 5 – 0,7 – 0,7 = 3,6V, iar y=1 logic. Dacă SAU x1, SAU x2, SAU ambele sunt 1 logic, tranzistoarele și se vor afla în RAI (regiunea activă inversă) iar , și se vor satura. Ca urmare V0≈0V și y=0 logic.

Tabelul de adevăr al porții NOR –TTL a fost integral verificat.

4.2.3.3. Familia logică ECL

Familia logică ECL (Emitter Coupled Logic = logică cuplată în emiter) utilizează tranzistoare nesaturate și realizează, din acest motiv, viteze de lucru foarte mari.

Se știe deja că o creștere a vitezei de lucru (micșorarea timpilor de propagare) se poate realiza atât prin creșterea puterii disipate pe poartă cât și prin evitarea saturației dispozitivului electronic activ utilizat.

O soluție eficientă de a obliga tranzistorul ca în timpul regimului de comutație să rămână în RAN – regiune activă negativă (să nu intre în saturație), constă în aplicarea unei reacții negative printr-o rezistență ce se montează în emiter ca în figura de mai jos.

Scriind Kirchhoff II pe ochiul de intrare al circuitului din figură, obținem:

VBE≈VI-REIC,

relație din care se observă cu ușurință că orice creștere a lui VI conduce într-o primă fază la o creștere a lui VBE și implicit a lui IB și IC (IC≈βNIB), deci în final la creșterea importanței termenului REIC, urmată de scăderea lui VBE.

Montaj asimetric cu reacție negativă

Funcționarea reacției negative, al cărei mecanism l-am descris mai sus pentru cazul unei scheme asimetrice, presupune, prin urmare, dezavantajul utilizării unor variații mari ale tensiunii de intrare VI pentru a produce mici variații ale lui VBE (zecimi sau chiar sutimi de volt) capabile să asigure comutarea tranzistorului.

Acest dezavantaj poate fi eliminat prin utilizarea unei scheme simetrice, diferențiale, de tipul celei prezentate în cele ce urmează:

Montaj simetric (diferențial) cu reacție negativă

Pe circuitele de intrare ale celor două tranzistoare, T1 și T2, putem scrie relațiile:

VBE1=VI-RE(IE1+IE2)

VBE2=VR-RE(IE1+IE2)

în care VR este o tensiune de referință, iar pe circuitele de ieșire vom avea:

V01=VCC-RCIC1

V02=VCC-RCIC2

Încercăm să explicăm funcționarea circuitului diferențial din figura de mai sus pentru trei cazuri distincte: VI=VR, VI<VR, VI>VR, pe care le prezentăm centralizat în tabelul următor:

Spre exemplu, în cazul 1, pentru VI=VR, observăm din relațiile scrise că VBE1=VBE2 și conform caracteristicilor de intrare din figură (menționate în coloana de “observații” a tabelului de mai sus), IB1=IB2, cu implicațiile IC1=IC2 (IC≈βNIB) și V01=V02.

Rezultă că, pentru o tensiune de intrare egală cu cea de referință, tensiunile de ieșire vor fi egale, iar curenții prin cele două brațe ale diferențialului vor fi egali.

Similar se demonstrează, pe baza acelorași relații sau figuri menționate în coloana a patra a tabelului, că pentru VI<VR se obține V01>V02, respectiv pentru VI>VR se obține V01<V02.

Întregul mecanism al funcționării montajului diferențial constă de fapt în comutarea unui curent constant, de la un tranzistor la altul, însoțită de variația corespunzătoare a lui V01 și V02.

Aplicând principiul logicii pozitive, vom spune că în cazul V01>V02, lui V01 îi corespunde 1 logic iar lui V02 – 0 logic, iar în cazul V01<V02, lui V01 îi corespunde 0 logic iar lui V02 – 1 logic.

Pornind de la ideea utilizării montajului diferențial, expusă mai sus, s-a realizat poarta fundamentală a familiei ECL prezentată în figura de mao jos.

Ea se compune dintr-un montaj diferențial realizat cu tranzistoarele T1i, (i=1, 2, 3) și T2, și repetoarele pe emiter T3 și T4 cu rol de adaptare de impedanță.

Întreaga schemă este alimentată cu –VEE la bara de jos și “masa” la bara de sus, obținându-se astfel o atenuare a zgomotului de 1000 ori mai bună față de alimentarea clasică și o protecție intrinsecă la scurtcircuit pe ieșire. Într-adevăr, conectând la masă oricare dintre cele două borne de ieșire, nu facem altceva decât să scurtcircuităm unul dintre tranzistoarele T3 sau T4, protejându-l astfel împotriva distrugerii.

Poarta fundamentală a familiei EC

Tabelul de adevăr al funcției logice / SAU – ECL

Funcționarea schemei este simplă.

Pentru x1=x2=x3=0, VIi<VR și ne aflăm în cazul 2, tabelul anterior, deci V01>V02 și , y=0 logic.

Este suficient ca numai una dintre intrările xi să fie 1 logic (VIi>VR) pentru ca tranzistorul corespunzător să se deschidă mai mult decât celelalte două și să coboare în acest mod nivelul lui V01. Ca urmare, și y=1.

Tabelul de adevăr obținut, este al funcțiilor și SAU, funcții reproduse la ieșirea circuitului, după cele două repetoare.

Tensiunea de referință VR=-1,175V se obține cu ajutorul schemei din figura următoare și se calculează cu ajutorul următoarelor relații:

VR=VEE-VR3

VR3=VB-VBE5

Rezultă:

din care, cu înlocuirile care se impun, se obține VR=-1,175V.

Sursa de tensiune de referință

Simbolul porții SAU / – ECL este prezentat în figura are urmează (figura a), iar nivelurile logice – în figura b.

Simbolu porții ECL

Nivelurile logic ale familiei ECL

Existența repetoarelor pe ieșirile porții prezintă avantajul unor impedanțe de ieșire mici, care conduc la constante de timp mici în timpul regimului de comutație, deci la viteze mari de lucru. În plus, diferențele mici de tensiune dintre nivelurile “jos” și “sus”, determină timpi mici de încărcare – descărcare a capacității parazite inerente, deci timpi de comutație mici.

Valorile parametrilor familiei ECL sunt: tpd<1ns, Pd=50mW, Q=50 și fmax=1000MHz.

4.2.4. Circuite logice integrate realizate în tehnologie unipolară

Circuitele logice integrate realizate în tehnologie unipolară utilizează fie exclusiv tranzistoare MOS cu canal de tip p (familia PMOS), fie numai tranzistoare MOS cu canal de tip n (familia NMOS), fie tranzistoare MOS complementare, unele cu canal de tip p, altele – de tip n (familia Complementary MOS = CMOS).

Circuitele de tip PMOS au procesul de fabricație cel mai simplu, dar o viteză de comutație mai mică datorită mobilității mai mici a purtătorilor de sarcină utilizați (golurile).

Circuitele de tip NMOS au un proces de fabricație mai complicat, dar o viteză de comutație mai mare datorită mobilității mai mari a electronilor.

Circuitele de tip CMOS prezintă o viteză de comutație medie, dar un consum de energie mult mai redus, concentrat în intervalele de tranziție dintr-o stare logică în alta.

Schemele porților logice ale circuitelor PMOS și NMOS sunt identice, singurele diferențe constând în simbolurile tranzistoarelor și semnul tensiunii de alimentare (+VDD pentru NMOS-uri și –VDD pentru PMOS-uri).

Iată de ce, în cele ce urmează nu vom studia decât unul din cele două tipuri de circuite și anume circuitele NMOS, alese pentru avantajul didactic al operării cu tensiuni pozitive în toate schemele.

Tensiunea de alimentare +VDD poate lua valori cuprinse între 5 … 15V, în cazul utilizării valorii de +5V existând o compatibilitate deplină între nivelurile logice ale familiei NMOS și cele ale familiei TTL.

Circuitele logice NMOS (ca și cele PMOS, de altfel) se construiesc în varianta statică, caz în care funcționarea nu este condiționată de un tact extern, și dinamică, caz în care transferul informației logice prin circuit are loc numai în momentul apariției unui tact extern.

4.2.4.1. Familia logică NMOS statică

În cadrul acestei familii, vom studia inversorul, NAND-ul și NOR-ul NMOS statice.

4.2.4.1.1. Inversorul NMOS static

Inversorul NMOS static prezintă schema din figura a și este format dintr-un TECMOS driver (de comandă) TD cu canal indus de tip n și un tranzistor load (sarcină) TL cu canal inițial de tip n.

După cum se poate ușor observa din caracteristicile de transfer ale celor două tranzistoare, figurile b și c, alegerea unui tranzistor driver TD cu canal indus prezintă avantajul unei blocări facile a acestuia prin simpla anulare a tensiunii , iar utilizarea unui tranzistor sarcină TL cu canal inițial permite obținerea unei rezistențe active în cazul în care .

Inversorul NMOS static:a) schemă; b) caracteristica de transfer a lui TD; c) caracteristica de transfer a lui TL

Observație: Prin rezistență activă înțelegem o rezistență simulată cu ajutorul unui dispozitiv electronic activ, în cazul de față – rezistența care apare între drena și sursa unui tranzistor de tip NMOS la aplicarea unei anumite diferențe de potențial grilă-sursă.

În figura următoare este prezentată o schemă a inversorului NMOS static desenată cu simboluri simplificate. Singurul element din schemă care trădează apartenența acesteia la familia NMOS este semnul + al tensiunii de alimentare (+VDD), în timp ce diferența dintre TD și TL în ceeace privește tipul indus sau inițial al canalului rămâne practic neilustrată prin simbolurile adoptate, dar nu mai puțin importantă pentru înțelegerea funcționării schemei.

Funcționare: În intervalul (0 ÷ t1), și din caracteristica de transfer din fig. 3.50 b observăm că , deci tranzistorul TD este blocat. Ca urmare, și din caracteristica de transfer din figura c, rezultă că TL joacă rolul unei rezistențe active de valoare prin care potențialul +VDD se transferă la ieșire. Rezultă V0=+VDD și capacitatea Cech (care include capacitatea Cp), se încarcă la valoarea +VDD.

În momentul t1, figura de mai sus (figura a), tensiunea de intrare înregistrează un salt pozitiv de la 0 la +VDD, depășind brusc nivelul tensiunii de prag , figura b. Ca urmare crește puternic și punctul de funcționare al tranzistorului TD intră în regiunea ohmică. Capacitatea Cech se descarcă pe rezistența drenă-sursă a lui TD, , cu constanta de timp:, astfel încât, într-un interval de timp:, tensiunea de ieșire devine , figura b. Pe întreaga durată a palierului (t1÷t2) al lui VI, figura b, V0 rămâne 0V.

În momentul t2, figura de mai sus, are loc saltul negativ al tensiunii de intrare de la +VDD la 0, urmat de anularea curentului de drenă (v. caracteristica de transfer din figura b) și blocarea tranzistorului TD. Situația din intervalul (0 ÷ t1) se repetă și capacitatea Cech (care include capacitatea Cp) se încarcă cu constanta de timp: , până la valoarea +VDD, într-un interval de timp: Deoarece canalul lui TD este, prin construcție, mult mai gros și mai scurt decât al lui TL, pentru aceeași tensiune grilă-sursă, , vom avea:, de unde rezultă: tcd<<tci

Schema inversorului NMOS static Regimul de comutație al desenată cu simboluri simplificate inversorului NMOS static

Caracteristica de transfer a inversorului NMOS static este prezentată în figura următoare și ilustrează antagonismul dintre V0 și VI: când VI=0, V0=+VDD și invers.

Caracteristica de transfer a inversorului NMOS static

Deși tranzistorul MOS cu canal n comută rapid (aproximativ 1ns), viteza de comutație scade cu cca. 3 ordine de mărime din cauza capacității Cech.

4.2.4.1.2. NAND-ul NMOS static

Funcționare: Singura situație în care potențialul masei se poate transfera la ieșire, determinând o valoare logică y=0, este aceea în care toate tranzistoarele driver TDi, cu i=1, 2, 3, conduc, deci când VIi=+VDD sau, echivalent, x1=x2=x3=1 logic. În rest, cel puțin unul din tranzistoarele TDi fiind blocat (cel puțin una din intrările xi este zero logic), legătura dintre ieșirea circuitului și masă este întreruptă și la ieșire se transferă potențialul +VDD prin rezistența activă pe care o constituie TL, determinând y=1 logic.

Simbolul porții NAND

Tabelul de adevăr al funcției ȘI-NU (NAND)

Poarta NAND NMOS statică

4.2.4.1.3. NOR-ul NMOS static

NOR-ul NMOS static prezintă schema din figura a, simbolul din figura b și tabelul de adevăr alăturat.

Funcționare: Singura situație în care potențialul masei nu se poate transfera la ieșire este aceea în care toate tranzistoarele TDi sunt blocate, deci atunci când VIi=0 sau, echivalent, x1=x2=x3=0 logic. Evident, potențialul +VDD se va transfera la ieșire prin rezistența activă pe care o constituie TL, deci y=1 logic. În rest, cel puțin unul din tranzistoarele TDi va conduce (cel puțin una din intrările VIi=+VDD sau, echivalent, un xi=1 logic și potențialul masei se va transfera la ieșire determinând y=0 logic.

Poarta NOR NMOS statică

Simbolul porții NOR

Tabelul de adevăr al funcției SAU-NU (NOR)

Recunoaștem tabelul de adevăr al funcției SAU-NU (NOR).

4.2.4.2. Familia logică NMOS dinamică

Familia logică NMOS dinamică este generată printr-o combinație a porții de transfer NMOS cu familia NMOS statică, cu observația că tranzistorul TL va fi de această dată cu canal indus, fiind comandat de același impuls de tact Φ ca și TP.

Ca urmare, consumul de energie din sursa de alimentare va fi limitat numai la intervalele τ2 ale impulsului de tact Φ, singurele în care TL conduce și constituie astfel o rezistență de sarcină activă pentru tranzistorul driver TD.

4.2.4.2.1. Inversorul NMOS dynamic

Inversorul NMOS dinamic prezintă schema din figuraaa și se reprezintă simbolic ca în figura b.

Simbolizarea inversorului NMOS dinamic Inversorul NMOS dinamic

Funcționare: Pentru x=1 logic și Φ=0, tranzistorul TD este practic nepolarizat în circuitul de ieșire întrucât TL (ca și TP) este blocat. Pentru Φ=1, tranzistoarele TP și TL vor conduce, circuitul de drenă al tranzistorului TD se va închide prin rezistența activă oferită de TL și, întrucât x=1 (VI=+VDD), TD va conduce și va permite transferul potențialului masei, prin TP, la ieșire. Capacitatea Cp se va descărca pe și V0=0V, deci y=0.

Pentru x=0 logic, deci VI=0V, tranzistorul TD se va bloca și, dacă Φ=1, potențialul +VDD se va transfera la ieșire prin TL și TP, încărcând capacitatea Cp și generând la ieșire y=1 logic.

Întrucât o modificare a valorii logice a intrării circuitului în intervalul de timp τ1, în care Φ=0, face ca starea ieșirii să nu mai respecte expresia (deoarece TL și TP sunt blocate și legătura intrare-ieșire este întreruptă), “citirea” informației de la ieșirea porții trebuie să aibă loc numai în intervalele τ2, în care Φ=1.

4.2.4.2.2. NAND-ul NMOS dinamic

NAND-ul NMOS dinamic prezintă schema din figura a și se reprezintă simbolic ca în figura b.

Simbolizarea NAND-ului NMOS dinamic NAND-ul NMOS dinamic

Funcționarea sa respectă tabelul porții NAND, dar numai în intervalele de timp în care Φ=1.

4.2.4.2.3. NOR-ul NMOS dynamic

NOR-ul NMOS dinamic prezintă schema din figura a și se simbolizează de maniera din figura b.

Circuitul funcționează conform tabelului porții NOR, dar numai pentru Φ=1.

Simbolizarea NOR-ului NMOS dinamic NOR-ul NMOS dinamic

4.2.4.3. Familia logică CMOS

O familie logică ideală, ar trebui să prezinte un consum zero în regim static, un tpd=0, fronturi controlabile la trecerea dintr-o stare logică în alta, imunitate la zgomot de 50% din diferența corespunzătoare nivelurilor logice, etc.

Familia logică CMOS se apropie cel mai mult de o familie ideală, prin excelentele valori ale parametrilor săi:

– putere disipată foarte mică în regim static (Pds=10nW, din cauza curenților reziduali) și ceva mai mare în regim dinamic (Pdd=10mW, la o frecvență de comutație de 1MHz și o capacitate parazită Cp=50pF);

– timpul de întârziere la propagare mic (tpd=25÷50ns) și dependent de valoarea tensiunii de alimentare și sarcină;

– o margine de zgomot de c.a. reprezentând 45% din diferența de tensiune corespunzătoare nivelurilor logice;

– o margine de zgomot de c.c. de 1V pentru orice valoare admisă a tensiunii de alimentare VDD, pentru orice temperatură și pentru orice combinație logică aplicată la intrare.

Ca și în cazul celorlalte familii de circuite logice studiate până în prezent, creșterea puterii disipate Pd (în cazul de față, prin creșterea tensiunii de alimentare) conduce la o scădere a tpd și, implicit, la o creștere a vitezei de lucru a circuitului.

4.2.4.3.1. Inversorul CMOS

Inversorul CMOS este prezentat în figura următoare și se compune din două tranzistoare MOS complementare, unul cu canal indus de tip n, Tn, și altul cu canal indus de tip p, Tp.

Inversorul CMOS

Pe ochiurile de circuit de la intrarea schemei din figura de mai susu, putem scrie următoarele relații:

VGSn=VI VGSp=VI-VDD

care ne vor permite o mai ușoară înțelegere a funcționării inversorului.

În figura de mai jos (figura a), se suprapun cele două caracteristici de transfer ale tranzistoarelor Tn și Tp, păstrând (sub grafic) semiaxele inițiale VGSn și VGSp, iar în figura b, s-a prezentat caracteristica de transfer a inversorului CMOS, dedusă din figura a și considerațiile care urmează.

Stările celor două tranzistoare, corelate cu zonele I, II, …, V, figura de mai sus, sunt prezentate în tababelul următor.

Centralizator al stărilor tranzistoarelor în timpul comutației

Funcționare: Explicarea funcționării inversorului CMOS poate fi mai ușor înțeleasă evaluând valorile rezistențelor active RTn și RTp ce apar între drena și sursa celor două tranzistoare complementare, în fiecare dintre zonele I, II, …, V.

Funcționarea inversorului CMOS: a) caracteristicile de transfer ale celor două tranzistoare; b) caracteristica de transfer a inversorului CMOS.

Tensiunea de alimentare +VDD se va diviza pe rezistențele active RTn și RTp, v. figura care urmează, tensiunea de ieșire putând fi calculată cu expresia:.

Presupunând, pentru început, că ne aflăm în zona (I) a caracteristicilor din figura anterioară, cu x=0 și VI=VGSn=0<VPn, observăm că IDn=0, figura a, deci Tn este blocat și . În același timp, din relația 3.87 rezultă că VGSp=-VDD, deci IDp are valoarea maximă și tranzistorul Tp se află în regiunea ohmică (liniară), conducând puternic și constituind o rezistență activă RTp de valoare redusă.

Considerând în relația de mai sus, se obține V0=+VDD, deci putem spune că potențialul +VDD se transferă la ieșire prin rezistența activă RTp, generând y=1 logic.

Explicativă pentru calculul lui V0

Similar, în zona V vom avea VI=VGSn=+VDD, figura a, Tn se deschide puternic (regiunea liniară) constituind o rezistență activă RTn de valoare redusă, în timp ce, așa cum rezultă din relația VGSp=VI-VDD, VGSp= 0V și Tp este blocat, oferind o rezistență activă . Din relația de mai sus, rezultă V0=0V, deci potențialul masei se transferă la ieșire prin Tn și y=0 logic.

Funcția de inversor a circuitului a fost demonstrată, caracteristica de transfer din figura b a fost parțial construită, iar tabelul d eadevăr este parțial completat.

În zonele II, III și IV, figura b, are loc tranziția dintre cele două stări logice, astfel:

– în zona II, figura a, IDn începe să crească, punctul de funcționare al tranzistorului Tn intrând în regiunea de saturație a curentului de drenă, în timp ce Tp lucrează încă în regiunea liniară. Deoarece Tn conduce mai slab decât Tp, RTn>RTp, deci și din relația anterioară, rezultă , fapt ilustrat în figura b. Curentul absorbit din sursa de alimentare este practic determinat de rezistența totală RTn+RTp și evoluția sa poate fi urmărită, la o scară mult mărită, în figura a;

– în zona III, ambele tranzistoare se află în regiunea liniară, determinând o rezistență totală RTn+RTp mai mică decât în zona II și generând astfel un vârf al curentului absorbit din sursa de alimentare, figura a; la jumătatea acestei zone, Tn și Tp conduc în egală măsură, RTn=RTp și din relația anterioară, rezultă;

– în zona IV situația se prezintă simetric față de zona II, rolul tranzistoarelor Tn și Tp inversându-se; Tn intră în regiunea liniară, în timp ce Tp rămâne în regiunea de saturație a curentului de drenă IDp, dar la valori mai mici ale acestuia. Vom avea RTn<RTp, deci și din relația anterioară, rezultă.

Observație: Din diagramele din figura de mai sus, observăm cu ușurință faptul că, în regim static (0 sau 1 logic), consumul de energie din sursa de alimentare este practic nul (zonele I și V), în timp ce la trecerea dintr-o stare logică în alta, consumul crește, înregistrând un maxim la mijlocul zonei III.

În figura care urmează sunt prezentate nivelurile logice ale familiei CMOS.

Nivelurile logice ale familiei CMOS

4.2.4.3.2. NAND-ul CMOS

NAND-ul CMOS prezintă schema din figura următoare și este format din două perechi de tranzistoare complementare: două cu canal indus de tip n și două cu canal indus de tip p. Pentru a păstra acuratețea și simetria schemei, nu au mai fost desenate legăturile dintre perechile de borne de intrare x1, respectiv x2.

Tabelul de adevăr

al funcției NAND cu 2 intrări

NAND-ul CMOS

Funcționare: Când cel puțin una dintre intrările circuitului este 0 logic, cel puțin una dintre tensiunile de intrare VIi este 0V și cel puțin unul dintre tranzistoarele Tn1 și Tn2 va fi blocat. În același timp, în conformitate cu relația VGSp=VI-VDD, cel puțin unul dintre tranzistoarele Tp1 și Tp2 va conduce (VGSp=-VDD) și potențialul +VDD se va transfera la ieșire, rezultând V0=+VDD și y=1 logic.

Când x1=x2=1 logic, VI1=VI2=+VDD și ambele tranzistoare Tn1 și Tn2 conduc. Relația VGSp=VI-VDD implică VGSp=0V și tranzistoarele Tp1 și Tp2 vor fi ambele blocate. Potențialul masei se transferă la ieșire prin Tn1 și Tn2, deci V0=0V și y=0 logic. Funcționarea ca NAND a circuitului a fost demonstrată.

4.2.4.3.3. NOR-ul CMOS

NOR-ul CMOS prezintă schema din figura următoare și tabelul de alăturat.

Funcționare: Pentru x1=x2=0 logic, VI1=VI2=VGSn1=VGSn2=0V și tranzistoarele Tn1 și Tn2 vor fi blocate. Conform relației VGSp=VI-VDD, VGSp1=VGSp2=-VDD, iar tranzistoarele Tp1 și Tp2 vor conduce, transferând potențialul +VDD la ieșire. Se obține V0=+VDD, deci y=1 logic.

Este suficient ca una dintre intrări, sau ambele, să fie 1 logic, pentru ca unul dintre tranzistoarele Tn1 și Tn2, sau ambele, să conducă, respectiv unul dintre tranzistoarele Tp1 și Tp2, sau ambele, să fie blocate. Potențialul masei se va transfera la ieșire prin Tn1 și Tn2, sau ambele, astfel încât V0=0V și y=0 logic. Funcționarea ca NOR a circuitului din figură a fost demonstrată.

Tabelul de adevăr

al funcției NOR cu 2 intrări

NOR-ul CMOS

CAP. 5. CIRCUITE LOGICE COMBINAȚIONALE

5.1. Introducere

Definiție: Circuitele logice combinaționale (numite automate de grad 0), CLC, se caracterizează prin faptul că variabilele de ieșire sunt independente de timp și de starea internă, fiind determinate numai de variabilele de intrare.

x1 y1

x2 y2

CLC

xn ym

Legătura dintre starea ieșirii și starea intrării unui CLC este realizată de funcția de transfer.

y = f (x)

unde: y = y1, y2,…, ym variabilele de ieșire

x= x1, x2,…, xn variabilele de intrare

f= f1, f2,…, fn funcții care se vor exprima în forma canonică disjunctivă FCD sau în forma canonică conjunctivă FCC

5.2. Analiza circuitelor logice combinaționale

Prin analiza unui CLC se înțelege urmărirea funcționării acestuia, pornind de la schema logică care este cunoscută.

Definiție: Se numește număr de nivele al unui CLC numărul maxim de porți dintre intrări și ieșiri.

Observație: Numerotarea nivelelor se face de la ieșire înspre intrare.

Circuitul logic combinațional din exemplu are 4 nivele.

În cazul circuitului din figura de mai jos (situație de legături între porți), acest circuit având și legături inverse, ultimele porți nu pot fi numerotate, deci circuitul nu este un CLC.

În CLC sunt admise legăturile inverse (ieșirea unei porți dintr-un nivel inferior să fie dusă la intrarea unei porți dintr-un nivel superior) cu condiția ca definiția CLC să fie respectată.

Algoritm de determinare a legăturilor inverse în CLC

a. Se numerotează toate porțile logice care au ca intrări un subset din mulțimea variabilelor de intrare ale circuitului logic (de la 1 la k);

b. Se numerotează de la k+1 porțile care au ca intrări fie intrări ale circuitului, fie ieșiri ale porților numerotate la punctul a. Dacă am reușit să numerotăm toate porțile circuitului logic, acesta este fără legături inverse și este circuit combinațional. Dacă nu am reușit numerotarea tuturor porților logice, circuitul este de tip secvențial.

5.3. Sinteza circuitelor logice combinaționale

În cadrul sintezei circuitelor logice combinaționale se cunoaște funcția pe care trebuie să o îndeplinească circuitul și se determină schema logică a acestuia.

Etapele sintezei circuitelor logice combinaționale sunt:

Enunțul problemei (stabilirea protocolului de funcționare)

Alcătuirea tabelei de adevăr, definirea funcției sau funcțiilor conform tabelei;

Minimizarea funcției sau funcțiilor;

Desenarea schemei logice a circuitului

Există mai multe metode de implementare a CLC, diferențiate după nivelul de complexitate al circuitelor integrate folosite.

5.3.1. Sinteza CLC cu circuite integrate SSI

Definiție: Circuitele integrate de tip SSI – small scale integration – sunt circuite care au până la 50 de tranzistoare integrate pe capsulă.

Dintre aceste circuite fac parte porțile logice fundamentale: ȘI-NU (NAND), SAU-NU (NOR), NU (NOT), ȘI (AND), SAU (OR), SAU-EXCLUSIV (XOR).

Exemplu:

f(x1,x2,x3,x4) = (3, 7, 8, 9, 12, 13, 15)

x3

fFCD1 = x1x3 + x1x3x4 + x1x2x4

5.3.2. Sinteza CLC cu circuite integrate MSI

Definiție: Circuitele integrate de tip MSI – medium scale integration – au până la 500 de tranzistoare integrate.

Circuite combinaționale uzuale (specializate)

Convertoare de cod

Definiție: Convertoarele de cod sunt CLC care permit trecerea dintr-un cod binar în altul. La intrarea circuitului se aplică cuvintele unui cod și la ieșire se obține alt cod. Convertoarele de cod fac compatibilă funcționarea a două sisteme în care informația este codificată în mod diferit.

Exemplu: Conversiile din cod Gray în cod binar-zecimal (BCD) și invers.

Cod Gray BCD

Cuvintele de cod în cele două coduri sunt:

Gray: gn, gn-1,…, g0

BCD: bn, bn-1,…, b0

Reguli: bn = gn

Se construiesc diagrame K-V pentru determinarea funcțiilor minimizate pentru b3, b2, b1, b0.

Diagrama K-V pentru b3:

Obținem:

Diagrama K-V pentru b2:

Obținem

Diagrama K-V pentru b1:

Obținem

Diagrama K-V pentru b0:

Obținem

În general:

Conversia din BCD în Gray:

Codificatoare

Definiție: Codificatoarele sunt CLC la care activarea unei intrări conduce la apariția unui cuvânt de cod la ieșire.

Exemplu: Codificator din octal în BCD (în logică pozitivă)

Intrările x0,…, x7 sunt active pe 1 logic. Funcțiile pentru ieșiri b2=y2, b1=y1, b0=y0 sunt:

sau

Schema bloc:

Schema logică:

Codificatorul prioritar este un codificator care are mai multe intrări active simultan și la ieșire se obține cuvântul de cod care corespunde intrării care este cea mai prioritară. Pentru exemplul prezentat, prioritatea crește de la cifra 0 înspre cifra 7.

Decodificatoare

Definiție: Decodificatoarele sunt CLC la care se activează doar una dintre ieșiri, pentru combinația (codul) corespunzătoare a variabilelor de intrare. Ele au funcție inversă codificatoarelor. Ieșirile decodificatoarelor sunt active pe 1 logic (funcționează în logică pozitivă) sau active pe 0 logic (funcționează în logică negativă).

x1 y1

Decodificator

xn ym

Numărul ieșirilor distincte este m 2n.

Exemplu: Decodificator pentru 3 cifre binare (în logică pozitivă)

Funcțiile pentru ieșiri sunt:

Schema bloc:

Schema logică:

Exemple: Implementarea funcțiilor boolene cu decodificatoare

1) Considerăm funcția:

a) să se implementeze cu decodificator cu ieșiri necomplementate:

b) să se implementeze cu decodificator cu ieșiri complementate:

2) Considerăm funcția:

Rezolvarea se face similar ca la primul exemplu (aceleași figuri).

Multiplexoare

Definiție: Multiplexoarele sunt CLC care permit trecerea datelor de pe una din intrări la o ieșire unică. Selecția intrării se face printr-un cuvânt de cod de selecție numit și adresă.

I0

MUX y

In-1

Am-1 A1 A0

Cu m linii de selecție se pot selecta 2m intrări. Funcția realizată de ieșire este:

y = Ik

unde k este numărul de combinații și k = Am-1 2m-1 + … A1 21+ A0 20

MUX-urile sunt utile la selecția secvențială a datelor, conversia paralel-serie a datelor, sisteme de transmisie a datelor pe un singur canal, implementarea circuitelor logice combinaționale cu o singură ieșire.

Exemple:

1) Multiplexor 2:1

Are două semnale de intrare (intrări de date), I0 și I1, o intrarea de adresă A și o ieșire y.

Schema bloc:

I0

MUX y

I1 2 : 1

A

Funcția realizată:

,

Multiplexorul lasă să treacă spre ieșire semnalul de pe acea linie de intrare corespunzătoare lui A.

Tabela de adevăr:

Schema logică:

2) Multiplexor 4:1

Are patru intrări de date, I0,I1, I2,I3, două intrări de adresă A0,A1 și o ieșire y.

I0

I1 MUX

I2 4 : 1 y

I3

A1 A0

Funcția realizată:

Tabela de adevăr:

Schema logică:

Mai există multiplexoare de tip 8 : 1, 16: 1, 32 : 1. Multiplexoarele integrate au disponibile atât ieșirea adevărată cât și cea negată. Ele au și o intrare de “Enable” pentru validare, care permite o funcție ȘI suplimentară.

Exemplu: Implementarea funcțiilor boolene cu multiplexoare

Considerăm funcția:

Demultiplexoare

Definiție: Demultiplexoarele sunt CLC care permit transmiterea datelor de pe o intrare de date comună pe una din ieșirile selectate. Selectarea ieșirii se face cu ajutorul unui cuvânt de cod de selecție numit și adresă.

y0 I DEMUX

yn-1

Am-1 A0

Cu m linii de selecție se pot selecta 2m ieșiri. Funcțiile de ieșire sunt:

, pentru

unde k este echivalentul zecimal al codului în binar selectat cu ajutorul intrărilor de selecție.

Exemplu: Demultiplexor 1:4

Are o intrare de date I, două intrări de adresă A0 și A1 și patru ieșiri y0, y1, y2 și y3.

Schema bloc:

Funcțiile realizate:

Tabela de adevăr:

Schema logică:

Sumatoare- scăzătoare

Definiție: Sumatorele și scăzătoarele sunt CLC care realizează adunarea cifrelor binare.

Exemple:

1) Semisumatorul este un CLC care realizează suma a 2 numere binare de câte 1 bit, fără a ține cont de transportul de la nivelul imediat inferior.

Schema bloc:

A0 S0

1/2

B0 C0

Funcțiile realizate:

;

Tabela de adevăr:

2) Sumatorul complet sunt CLC pentru cuvinte binare cu mai mulți biți se realizează prin interconectarea sumatoarelor pentru 1 bit. Adunarea se realizează în paralel, iar propagarea transportului se realizează în serie.

Schema bloc:

An Sn

Cn-1

Bn Cn

Funcțiile realizate:

Tabela de adevăr:

3) Semiscăzătorul de 1 bit are ieșirile:

Schema bloc:

A0 D0

B0 I0

Funcțiile realizate:

3) Scăzătorul complet sunt CLC pentru cuvinte binare cu mai mulți biți se realizează prin interconectarea scăzătoarelor pentru 1 bit.

Schema bloc:

An Dn

In-1

Bn In

Funcțiile realizate:

Comparatoare numerice

Definiție: Comparatoare numerice sunt CLC care permit determinarea valorii relative a două numere binare. Comparatoarele pot fi de 1 bit sau de mai mulți biți.

Exemplu: Comparatorul pe 1 bit constituie celula de bază pentru compararea numerelor cu mai mulți biți

Schema bloc:

Ai y1

y2

Bi y3

Funcțiile realizate:

pentru Ai < Bi,

pentru Ai = Bi

pentru Ai > Bi

Tabela de adevăr:

Schema logică:

Detectoare-generatoare de paritate

Definiție: Detectoare-generatoare de paritate sunt CLC cu rol de a determina și genera paritatea sau imparitatea numărului de variabile de intrare egale cu 1. Bitul de paritate este utilizat ca metodă de verificare a transferului de date. Sunt posibile 2 situații:

numărul biților de 1 + bitul de paritate = număr par

numărul biților de 1 + bitul de paritate = număr impar

Realizarea detectoarelor de paritate se bazează pe funcția logică SAU-EXCLUSIV (0 pentru par și 1 pentru impar).

9. Unități aritmetico-logice

Definiție: Unitățile aritmetico-logice sunt CLC care realizează operații de tip aritmetic și operații de tip logic.

5.3.3. Sinteza CLC cu circuite integrate LSI

Definiție: Circuitele integrate de tip LSI – Large Scale Integration – au peste 500 de tranzistoare integrate pe capsulă.

Dintre aceste circuite fac parte: PLA (Programmable Logic Array) și ROM (Read Only Memory).

5.3.3.1. Sinteza CLC cu PLA

Definiție: PLA (Programmable Logic Array) este un CLC cu două nivele de logică programabilă, o matrice de porți ȘI și o matrice de porți SAU. Ambele matrici sunt programabile, fie în procesul de fabricație, fiede către utilizator.

PLA este o structură mobilă și se utilizează eficient pentru sisteme cu mai mult de 8 variabile de intrare.

Implementarea cu PLA se face pornind de la termenii elementari ai funcției, obținuți prin minimizarea ei. De asemenea, implementărea cu PLA față de implementarea cu ROM prezintă avantajul posibilității programării matricei ȘI precum și a complementării variabilelor de ieșire (variabilele de ieșire pot fi programate individual ca active pe 0 sau pe 1).

PLA-urile se utlizează în aplicații ca:

– microprogramare;

– conversii de cod;

– generare de caractere;

– realizare de tabele de funcții;

– implementarea automatelor secvențiale.

Schema generală a unui PLA cu n intrări, m ieșiri și p termeni elementari realizabili este:

Exemplu:

f(x1,x2,x3,x4) = (3, 7, 8, 9, 12, 13, 15)

x3

fFCD1 = x1x3 + x1x3x4 + x1x2x4

5.3.3.2. Sinteza CLC cu memorii de tip ROM

Definiție: ROM (Read Only Memory) este numită și memorie fixă sau permanentă, aceasta fiind nevolatilă, iar conținutul ei nu se modifică în timpul funcționării. Structura ei este stabilită în procesul de fabricație sau este stabilită de utilizator prin programare.

ROM-urile se utlizează în aplicații ca:

memorarea instrucțiunilor și datelor în sisteme de calcul și automate secvențiale;

transformări de adresă și înmagazinarea instrucțiunilor în microprogramare;

conversii de cod;

generatoare de caractere;

generare de secvențe de impulsuri;

implementarea CLC cu un număr mare de variabile de intrare și ieșire

Alte tipuri de memorii ROM:

Memoria PROM (Programmable ROM) este un ROM programabil, structura acesteia poate fi stabilită de utilizator cu ajutorul unui echipament de programare corespunzător.

Memoria EPROM (Erasable Programmable ROM) este o memorie ROM al cărui conținut poate fi șters cu ajutorul razelor ultraviolete și apoi poate fi reprogramată.

Memoria EEPROM sau E2PROM (Electrically Erasable Programmable ROM) este o memorie ROM al cărui conținut poate fi șters prin intermediul unor impulsuri electrice și apoi poate fi reprogramată.

Memoria ROM este formată din două niveluri de porți logice: :ȘI (un decodificator) și SAU (matricea de memorie). Structura generală este prezentată în figura care urmează:

I0 Q0

DEC Matrice

In-1 Q2m-1

unde:

I0, …, In-1 sunt intrări în memorie și furnizează adresa memorie

Q0, …, Q2m-1 sunt ieșirile din memorie și furnizează codul selectat de adresa de la intrare (activarea ieșirii conform codului de la intrare).

Observație: Memoria ROM nu are intrări de date, deoarece nu este posibilă operația de scriere în ea.

Implementarea CLC cu memorie ROM se face astefel:

la nivelul decodofocatorului (DEC) se decodifică toți termenii canonici. Fiecare cuvânt de la intrarea în matricea de memorie reprezintă de fapt un termen canonic format din variabilele de intrare ale funcției.

la nivelul următor se adună toți termenii din expresia funcției și rezultă funcția de ieșire. Lista de cuvinte din ROM este chiar tabelul de adevăr al CLC.

Observații: a) La implementarea cu ROM nu este necesară minimizarea, deoarece sunt memorați toți termenii canonici și sunt incluse toate posibilitățile de apariție a acestora în funcția de ieșire.

b) Pentru reducerea numărului de intrări în ROM se utilizează des și multiplexoarele.

c) Scopurile urmărite la implementarea cu ROM sunt:

utilizarea unui număr minim de circuite integrate;

folosirea integrală a capacității memoriei.

d) Pentru implementarea CLC cu memorii ROM trebuie urmărite următoarele etape:

stabilirea dimensiunii memoriei necesare pentru aplicația respectivă;

alegerea tipurilor de circuite de tip ROM cu dimensiuni identice sau cât mai apropiate de cele stabilite anterior;

dacă nu există memorii cu dimensiuni identice sau apropiate de cele dorite se fac transformări de dimensiuni (modificarea numărului de cuvinte sau numărului de biți pe cuvânt);

stabilirea tabeleide adevăr al ROM;

reducerea dimensiunii ROM atunci când este posibil prin utilizarea codificării intrărilor sau ieșirilor și a multiplexării intrărilor.

Exemplu: Să se implementeze cu ROM funcțiile:

Schema bloc:

x3 A3 D3

x2 A2 16 x 4 biți D2 f2

x1 A1 D1 f1

x0 A0 D0 f0

unde:

A0, …, A4 sunt intrări de adresă

D0, …,D4 sunt ieșirile din memorie.

Tabela de adevăr: Conținutul înscris în memorie este următorul

Schema logică:

5.4. Hazardul combinațional

Datorită întârzierilor produse de circuitele logice și de firele de legătură ale unui CLC se poate ca starea ieșirii circuitului în momentul modificării stării variabilelor să nu coincidă cu valoarea funcției corespunzătoare valorii intrărilor în momentul considerat. Pentru timp scurt circuitul are o comportare greșită, numită hazard.

Exemplu: Fie funcția

f(x1,x2,x3) = x1 x3 + x2 x3

Diagrama K-V pentru funcție este:

În practică întârzierile 1, 2, 3 ale porților SI-NU nu sunt egale, de aceea poate să apară hazardul combinațional și când se pune condiția ca doar o singură variabilă de intrare să se modifice la un moment dat.

Hazardul apare atunci când starea intrărilor x1x2x3 se modifică de la 010 la 011 sau invers.

2 > 1 deși starea ar trebui să fie nemodificată.

După timpul de reacție tr = 1 + 2 va apare la ieșire un impuls negativ de durată t = 2 – 1 și în această durată ieșirea ia o valoare incorectă.

Eliminarea hazardului static se poate face în cazul în care se impune ca la un moment dat să se modifice starea unei singure variabile de intrare. Pentru realizarea funcției se consideră și unii termeni redundanți din diagrama Karnaugh, astfel încât oricare doi de 1 aflați în căsuțe adiacente în diagramă să fie incluși cel puțin într-un contur luat în considerare la sinteza schemei.

Pentru exemplul dat se va introduce în expresia funcției termenul x1x2.

f = x2 x1 + x3 x1 + x3 x2

Observații

Hazardul static poate să apară și când 1 > 2, la schimbarea 011 în 000.

Proiectarea unui CLC când se schimbă mai mult decât o singură variabilă de intrare la un moment dat, fără să apară hazard, este mai dificilă sau chiar imposibil de realizat (hazard de funcție).

Eliminarea sigură a hazardului se poate face luând în considerare ieșirea circuitului după un interval de timp mai mare decât întârzierea maximă din circuit.

CAP.6. CIRCUITE LOGICE SECVENȚIALE

Circuitele logice secvențiale, CLS, sunt automate de ordinul 1. Se obțin din automatele de ordinul 0 (CLC) prin introducerea unor reacții (legături inverse). Sunt alcătuite din circuite logice combinaționale și elemente de memorare binară.

Semnalele de ieșire ale CLS depind atât de combinația semnalelor aplicate pe intrări cât și de starea circuitului. Un CLS este caracterizat printr-o secvență a semnalelor de ieșire și o secvență a stărilor elementelor de memorie, pentru fiecare secvență a semnalelor aplicate pe intrările circuitului.

După modul de funcționare (modul de transmitere a semnalelor) există 2 categorii principale de CLS:

asincrone – comportarea este determinată de aplicarea pe intrări a semnalelor în momente oarecare; starea circuitului depinde de ordinea în care se schimbă semnalele;

sincrone – comportarea este determinată de aplicarea pe intrări a semnalelor în momente discrete, bine determinate în timp; sincronizarea se realizează cu ajutorul unor impulsuri date de un generator de tact (ceas).

Exemple de CLS: bistabili, numărătoare, registre, memorii RAM.

6.1. Circuite basculante bistabile

Definiție. Circuitele basculante bistabile (CBB sau bistabil) sunt circuite logice secvențiale care au două stări stabile distincte. Trecerea dintr-o stare în alta se face la aplicarea unei comenzi din exterior.

Caracteristica principală a CBB este că sunt sisteme cu memorie (elemente de memorie binară). Un bistabil poate păstra un timp nedefinit informația binară și în același timp starea sa poate fi citită în orice moment. Se asociază uneia dintre cele 2 stări ale bistabilului funcția de memorare a cifrei binare 1 și celei de a doua stări funcția de memorare a cifrei binare 0. Bistabilul are 2 ieșiri, una care pune în evidență cifra binară memorată, numită ieșire adevărată și a doua, care pune în evidență valoarea negată a cifrei binare memorate, denumită ieșire negată.

6.1.1. Bistabilul RS asincron (latch)

Bistabilul RS asincron are 2 intrări de comandă (de date): S (Set) și R (Reset) și două ieșiri și (complementare).

Simbolul bistabilului RS asincron este:

S Q

R Q

Tabelul de adevăr al bistabilului RS asincron este:

tn tn+1

Sn Rn Qt+1

0 0 Qt

1 0 1

0 1 0

1 1

Din punct de vedere logic nu are sens să se facă simultan înscrierea și ștergerea informației, ca urmare Sn = 1 și Rn = 1 va fi o situație interzisă (de nedeterminare, pentru că nu se poate prevedea starea finală). Condiția de bună funcționare care se pune este Sn Rn = 0.

Pentru a face sinteza circuitului vom considera semnalul de ieșire Qt+1 la momentul tn+1, semnal care depinde de starea intrărilor Sn și Rn și de starea Qt, la momentul tn. Vom scrie Qt+1 ca o funcție de 3 variabile:

Qt Sn Rn Qt+1

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1

Diagramele Karnaugh pentru Qt+1 și Qt+1 sunt următoarele:

Qt+1:

Qt+1:

Dacă minimizăm funcțiile în FCC obținem:

Qt+1 = Rn (Sn + Qt)

Qt+1 = Sn (Rn + Qt)

Deducem funcțiile pentru schema cu porți de tip SAU-NU:

Qt+1 = Qt+1 = Rn (Sn + Qt) = Rn + (Sn + Qt)

Qt+1 = Qt+1 = Sn (Rn + Qt) = Sn + (Rn + Qt)

R Q

S Q

Schema bistabilului RS asincron realizat cu porți de tip SI-NU se bazează pe funcțiile în forma FCD obținute din diagramele Karnaugh:

Qt+1 = Sn + (Qt Rn)

Qt+1 = Rn + (Qt Sn)

Qt+1 = Sn + (Qt Rn) = Sn (Qt Rn)

Qt+1 = Rn + (Qt Sn) = Rn (Qt Sn)

S Q

R Q

Pentru Sn = Rn = 1 rezultă Q = 0 și Q = 0, cele două ieșiri nefiind complementare. Circuitul își pierde în acest caz caracterul de circuit bistabil, cu două stări distincte stabile.

Bistabilul RS asincron este cel mai simplu element de memorare care poate fi realizat cu circuite logice elementare.

Observație: O aplicație tipică a bistabilului RS asincron este utilizarea acestuia la eliminarea oscilațiilor ce apar la contactele mecanice.

6.1.2. Bistabilul RS sincron (latch cu ceas)

Bistabilul RS sincron se obține din bistabilul RS asincron prin adăugarea unor porți logice suplimentare cu scopul de a răspunde la semnalele de intrare R și S numai sub acțiunea unui semnal de comandă numit impuls de tact (ceas).

Sa

S Q

CLK

R Q

Ra

Ieșirile bistabilului RS sincron se modifică doar când semnalul de tact (ceas) CLK este activ. Simbolul bistabilului RS sincron este:

S Q

CLK

R Q

Diagrama de timp pentru bistabilul RS sincron este:

CLK

R

S

Q

Funcționarea este descrisă de funcțiile:

Qt+1 = S + R Qt

Qt+1 = R + S Qt

S R = 0

Și la acest bistabil situația intrărilor în care S = R = 1 introduce o nedeterminare, de aceea ea trebuie evitată.

Cât timp CLK este 0, intrările de date nu influențează bistabilul. Când CLK = 1 bistabilul urmărește modificările intrărilor de date. Când CLK redevine 0 bistabilul se zăvorăște (de aceea se numește latch), păstrează informația avută anterior pe ieșire.

Introducem noțiunea de funcție de excitație, caracteristică pentru fiecare bistabil. Ea pune în evidență cum trebuie să fie intrările bistabilului (ce stare trebuie să aibă) pentru a se realiza o tranziție specifică.

Tabelul de excitație pentru bistabilul RS sincron este:

Qt Qt+1 R S

0 0 x 0

0 1 0 1

1 0 1 0

1 1 0 x

Observație: În afara intrărilor sincrone, la bistabilul RS sincron se introduc și intrări asincrone, Ra și Sa, la nivelul bistabilului RS asincron (porțile SI-NU). Aceste intrări sunt utilizate cu scopul forțării la 0, prin Ra, sau la 1, prin Sa, a ieșirii bistabilului. Apariția unor comenzi pe aceste intrări se execută independent de prezența sau absența tactului. Din acest motiv intrările asincrone ale unui bistabil sunt prioritare în raport cu intrările sincrone.

6.1.3. Bistabilul D sincron (delay)

Bistabilul D sincron are o singură intrare, D și cele 2 ieșiri complementare, Q și Q. Starea următoare a bistabilului D este determinată de modificarea intrării D. El întârzie cu un tact informația pe care o primește pe intrare (circuit elementar de întârziere). Sunt cele mai răspândite bistabile în registrele de date. Simbolul bistabilului D sincron:

S

D Q

CLK

Q

R

Bistabilul D se obține din bistabilul RS sincron:

D Q

CLK

Q

Funcțiile bistabilului D sunt:

Qt+1 = D

Qt+1 = D

Tabelul de adevăr al bistabilului D este:

D Q

0

1

Tabelul de excitație al bistabilului D este:

Qt Qt+1 D

0 0 0

0 1 1

1 0 0

1 1 1

Starea următoare a bistabilului de tip D sincron este dependentă doar de semnalul aplicat pe intrare, ea fiind independentă de starea actuală a bistabilului.

Există două tipuri de bistabile de tip D sincron, unele care comută pe front (atunci când se schimbă tactul) și altele care comută pe nivel (atunci când tactul este pe nivel).

6.1.4. Bistabilul JK sincron

Bistabilul JK sincron elimină situația de nedeterminare pe ieșiri, prezentă la bistabilul RS sincron, la combinația S = R = 1 pe intrări. Se folosesc reacții (legături inverse) suplimentare.

Tabelul de adevăr al bistabilului JK sincron este:

J K Qt+1

0 0 Qt

0 1 0

1 0 1

1 1 Qt

Tabelul de excitație al bistabilului JK sincron este:

Qt Qt+1 J K

0 0 0 x

0 1 1 x

1 0 x 1

1 1 x 0

Funcțiile pentru bistabilul de tip JK se determină din diagrama Karnaugh, pe baza tabelului de adevăr în forma detaliată:

Qt J K Qt+1

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 0

Qt+1:

Qt+1 = J Qt + K Qt

Qt+1 = J Qt + K Qt

Un bistabil de tip JK sincron se obține din bistabilul RS sincron prin efectuarea legăturilor care permit eliminarea condiției R S = 0.

R = K Qt

S = J Qt

Q

J

CLK sau

K Q

S

J Q

CLK

K Q

R

Intrările și sunt intrările asincrone, care acționează la ultimul nivel de porți logice, nu depind de semnalul de tact și sunt prioritare față de intrările sincrone J și K (adică în momentul în care una dintre ele se activează, bistabilul va funcționa în regim asincron).

Simbolul utilizat pentru bistabilul JK sincron este:

S

J Q

CLK

K Q

R

O analiză mai atentă a bistabilului JK sincron arată că atât timp cât intrarea de tact (CLK) rămâne pe 1 logic după stabilirea noii stări, bistabilul intră în oscilație (își tot schimbă starea). Pentru a exista o singură comutare, durata impulsului pe CLK trebuie să fie mai mare decât timpul de propagare a semnalului printr-o poartă logică și mai mică decât timpul de propagare a semnalului prin două porți logice.

6.1.5. Bistabilul T sincron (Toggle)

Bistabilul T sincron se obține din bistabilul JK sincron prin legarea intrărilor J și K împreună. Bistabilul schimbă starea (comută) când pe intrare are semnal logic 1.

S

T Q

CLK

Q

R

Tabelul de adevăr al bistabilului T sincron este:

T Qt+1

Qt

1 Qt

Tabelul de excitație al bistabilului T sincron este:

Qt Qt+1 T

0 0 0

0 1 1

1 0 1

1 1 0

Pentru determinarea funcțiilor bistabilului T sincron utilizăm diagrama Karnaugh de 2 variabile:

Qt+1 = T Qt + T Qt = T + Qt

Qt+1 = T Qt + T Qt = T + Qt = T Qt

Bistabilul T sincron are aceleași deficiențe ca și bistabilul JK sincron, legate de durata impusă a semnalului de tact.

Bistabilul T sincron este util în aplicațiile de numărătoare binare.

Concluzie. Deficiența principală a structurilor de bistabile studiate este că nu se poate face o distincție netă între intrările care condiționează momentul comutării și cele care determină modul comutării (nu se face distincție netă între când și cum).

6.1.6. Bistabile master-slave MS

Bistabilele de tip master-slave introduc un tip de structură care permite rezolvarea comutării bistabilelor. Acest principiul master-slave poate fi aplicat oricărui circuit bistabil.

Structura master-slave este compusă din 2 celule de memorie, una “master” și cealaltă “slave”.

Master Slave

S SM QM SS QS Q

CLK CLK

R RM QM RS QS Q

CLK

Impulsul de tact are două fronturi, unul pozitiv (de urcare de la 0 la 1, în logica pozitivă) și unul negativ (de coborâre de la 1 la 0, în logica pozitivă).

La bistabilele master-slave pe frontul crescător al semnalului de tact se face înscrierea informației în master, slave fiind practic deconectat. Pe frontul descrescător următor se face transferul informației din master în slave și informația va apare la ieșiri după frontul descrescător al impulsului de tact. Se asigură astfel o bună separare între intrările de date și ieșirile bistabilelor.

S 1 3 Q

R 2 4 Q

CLK

M S

2 3

CLK 1 4 5

Q

tS tH

tS este timpul de set-up = perioada în care datele trebuie să fie pregătite înainte de impulsul de tact.

tH este timpul de holding.

Pe perioada 1 – 2 a impulsului de ceas, porțile de la intrare nu sunt încă deschise, iar porțile 3,4 se blochează și astfel izolează slave de master.

Pe zona 2 – 3 porțile de intrare 1,2 se deschid și informația trece în master. Porțile 3,4 sunt închise și slave își păstrează vechea informație.

Pe zona 3 – 4 porțile 1,2 se închid și porțile 3,4 nu se deschid încă: master este izolat de intrare și de slave.

Pe perioada 4 – 5 porțile 3,4 se deschid, în timp ce porțile 1,2 sunt blocate și informația apare pe ieșire.

Perioada critică este cea de menținere a datelor la intrare, tH, pe perioada 4 – 5.

Memorarea se face pe frontul descrescător al impulsului de tact.

6.2. Aplicații ale circuitelor basculante bistabile

6.2.1. Numărătoare

Numărătoarele sunt circuite logice secvențiale care înregistrează numărul de impulsuri aplicate la intrare. Ele se realizează prin asocierea circuitelor basculante bistabile, având rol de celule de memorie binară, cu circuite logice combinaționale, care determină modul corect în care urmează ca numărătorul să-și schimbe starea la fiecare nou impuls aplicat la intrare.

Clasificare

Clasificarea numărătoarelor se face după anumite criterii:

modul de funcționare (comutare a bistabililor):

asincrone – celulele de memorie din care este construit numărătorul nu comută simultan ci aleator;

sincrone – celulele de memorie din care este construit numărătorul comută simultan sub acțiunea unui impuls de tact aplicat simultan tuturor celulelor.

modul de modificare a stărilor (conținutului):

directe – își cresc conținutul cu o unitate la fiecare impuls aplicat la intrare;

inverse – conținutul scade cu o unitate la fiecare impuls aplicat la intrare;

reversibile – numără direct sau invers, în funcție de o comandă aplicată din exterior.

modul de codificare a informației:

binare

binar-zecimale

modulo “p” etc.

Numărătoarele se pot realiza cu celule de memorie de tip T care realizează o divizare cu 2. Prin interconectarea a “n” celule de memorie se obține un numărător cu un număr de stări distincte. Fiecărei stări îi vom asocia câte un cuvânt de cod binar de lungime “n”, reprezentând conținutul celor “n” celule binare pentru starea dată a numărătorului. Codul în care numără un numărător va fi dat de succesiunea cuvintelor de cod binar asociate stărilor numărătorului.

Numărul stărilor stabile distincte posibile ale unui numărător format din “n” celule binare este 2n. Dacă din aceste stări se elimină “k” stări rezultă un numărător cu p = 2n – k stări distincte. Matematic, operația realizată de numărător este o operație modulo “p”.

Definiții: 1) Capacitatea numărătorului = numărul stărilor sale distincte.

2) Factorul de divizare = raportul dintre numărul de impulsuri de la intrare și numărul impulsurilor de la ieșire.

Observație. Un numărător funcționează de fapt și ca un divizor de frecvență.

Tipuri de numărătoare

A. Numărătoare asincrone

A.1. Numărător binar asincron direct

Schema logică a numărătorului este realizată prin conectarea în cascadă a bistabililor de tip JK în configurație de bistabili de tip T:

, , , ieșirile numărătorului, ne dau starea lui la un moment dat. este semnalul de Reset, folosit pentru aducerea numărătorului în starea inițială, la 000.

Intrările bistabililor JK sunt toate legate la “1” logic, deci bistabilii vor comuta la fiecare impuls de tact.

Tact exterior se aplică doar pe intrarea primului bistabil.

Formele de undă pentru numărătorul binar asincron direct sunt:

Numărătorul este modulo 8, numărând direct în binar, de la 000 la 111. El basculează pe fronturile descrescătoare ale impulsurilor de tact.

Dacă dorim să obținem valorile numărului în zecimal putem utiliza ieșirile numărătorului, , , , ca și intrări într-un decodificator binar zecimal.

Dezavantajul numărătorului asincron este că timpul de comutare, în cel mai defavorabil caz, este egal cu suma timpilor de comutare a tuturor bistabililor care îl compun.

Avantajul lui constă în simplitatea schemei, realizată doar cu bistabile, prin interconectări directe.

A.2. Numărător binar asincron invers

Schema logică a numărătorului este:

Formele de undă pentru numărătorul binar asincron invers sunt:

Numărătorul este modulo 8, numărând invers în binar, de la 111 la 000. El basculează pe fronturile descrescătoare ale impulsurilor de tact.

A.3. Numărător binar asincron reversibil

Numărătorul binar asincron reversibil are celula de memorie de bază ca și numărătoarele asincrone anterioare, dar între celulele de memorie se intercalează multiplexoare de tip 2:1 prin care se comandă sensul de numărare.

Pentru S = 0 numărătorul numără direct, iar pentru S = 1 numărătorul numără invers.

B. Numărătoare sincrone

În cazul numărătoarelor sincrone, impulsurile de tact sunt aplicate simultan la toate bistabilele, care vor comuta în același timp, deci nu succesiv ca în cazul numărătoarelor asincrone. Se elimină astfel întârzierile cumulative datorită bistabilelor, frecvența de lucru nefiind limitată decât de întârzierea datorată unui singur bistabil și de întârzierea introdusă de porțile logice adăugate.

B.1. Numărător sincron cu bistabile D cu numărare în sens direct, cu k=4

Tabele de tranziție pentru bistabilul de tip D:

Conform tabelei de tranziție obținem următoarea tabelă de funcționare a numărătorului:

Schema logică pentru numărătorul binar sincron este:

B.2. Numărător sincron cu bistabile D cu numărare în sens indirect (reversibil), cu k=4

Tabelă de funcționare a numărătorului este următoarea:

Schema logică pentru numărătorul binar sincron este:

B.3. Numărător sincron cu bistabile J-K borne comune, cu numărare în sens direct, cu k=8

Schema logică pentru numărătorul binar sincron este:

B.4. Numărător sincron cu bistabile J-K borne diferite, cu numărare în sens direct, cu k=8

Tabele de tranziție pentru bistabilul de tip J-K:

Conform tabelei de tranziție obținem următoarea tabelă de funcționare a numărătorului:

Schema logică pentru numărătorul binar sincron este:

B.5. Sinteza numărătoarelor modulo p

Pentru a face sinteza unui numărător cu p 2n trebuie determinat numărul minim de celule de memorie binară necesare. Relația folosită este: 2n p. Celulele de memorie se interconectează apoi astfel încât să se omită (2n – p) stări. Din acest motiv există mai multe variante posibile pentru interconectare, deci și pentru sinteza numărătorului.

Exemplu: Sinteza unui numărător modulo 5.

Pentru 2n 5 obținem n = 3, deci vom avea 3 celule de memorie pentru numărător. Numărul stărilor omise va fi 23 – 5 = 8 – 5 = 3.

Presupunem că avem următoarea succesiune a stărilor de numărare (ciclu de numărare):

000 001 010 011 100

Evident că se putea alege și altă succesiune a stărilor numărătorului.

Folosim pentru realizarea numărătorului bistabili de tip JK.

Se construiește un tabel cu stările actuale ale numărătorului, cu stările următoare și cu condiționările intrărilor JK ale celor 3 bistabili folosiți pentru sinteză. Completarea tabelului se face pe baza tabelului de excitație al bistabilului JK sincron.

Qt Qt+1 J K

0 0 0 x

0 1 1 x

1 0 x 1

1 1 x 0

Diagramele Karnaugh pentru cele 6 intrări ale bistabilelor ne permit determinarea funcțiilor pentru intrări. Stările omise se consideră indiferente.

J2:

K2:

J1:

K1:

J0:

K0:

Schema logică pentru numărătorul modulo 5 va fi următoarea:

6.2.2. Registre

Registrele sunt circuite logice secvențiale care permit stocarea și/sau deplasarea informației codificate binar. Ele se realizează din celule de memorie binară (CBB) și din circuite logice combinaționale (CLC), care permit înscrierea, citirea și transferul informației. Capacitatea unui registru este dată de numărul celulelor de memorie.

Orice informație binară, care nu depășește capacitatea registrului, poate fi înscrisă prin acționarea corespunzătoare a intrărilor (care depinde și ea de natura bistabilelor).

Registrele pot să fie de mai multe tipuri: de memorie; de deplasare; combinate; universale.

Registrele de memorie memorează informația binară în celule de memorie binară. În fiecare celulă de memorie se memorează un bit de informație. Încărcarea se poate face paralel, prin intrările asincrone, de Set și Reset.

Registrele de deplasare sunt cele care realizează transferul informației. Transferul se poate face: stânga-dreapta; dreapta-stânga; în ambele sensuri.

La fiecare impuls de tact conținutul registrului se deplasează cu câte o celulă (în sensul stabilit). Semnalul de ieșire este identic cu cel de intrare, dar întârziat cu un număr de impulsuri de tact egal cu numărul de celule de memorie din care este format registrul.

Exceptând primul bistabil, ecuația de stare a unui registru de deplasare stânga-dreapta este dată de relația: Qi(t+1) = Qi-1(t) c (unde c = impulsul de tact).

Exemplu: Registru de deplasare stânga-dreapta cu bistabile JK MS.

La fiecare impuls de tact conținutul bistabilului Qi se transferă în bistabilul Qi+1. În bistabilul Q0 se introduce informația din exterior, iar conținutul ultimului bistabil se pierde. Încărcarea registrului se realizează deci în mod serie. Inițializarea registrului se face prin semnalul de Reset, care forțează toate ieșirile registrului în 0 logic.

Registrele de deplasare dreapta-stânga și reversibile se realizează folosind circuite logice combinaționale suplimentare.

Registrele combinate sunt cele care au și funcția de memorare și cea de deplasare.

Registrele universale cumulează toate funcțiile: deplasare stânga-dreapta, deplasare dreapta-stânga, încărcare serie sau paralelă a informației, citire serie sau paralelă a informației.

Intrările de selecție S1S0 condiționează modul de funcționare a registrului. Avem:

S1S0 = 00 păstrează conținutul nemodificat;

S1S0 = 01 deplasare stânga-dreapta;

S1S0 = 10 deplasare dreapta-stânga;

S1S0 = 11 încărcare paralelă.

Ștergerea registrului se face asincron, prin semnalul CLR.

6.2.2.1. Aplicații ale registrelor

Registrele sunt utilizate în mai multe tipuri de aplicații, după funcțiile pe care pot să le îndeplinească.

Registre de deplasare cu reacție

Au ieșirile conectate la intrări și pot fi:

– registre de deplasare în inel – conținutul ultimei celule de memorie se înscrie în prima celulă de memorie;

– registre (numărătoare) Johnson – în prima celulă se introduce conținutul negat al ultimei celule.

2. Memorie de tip FIFO (First In, First Out), primul înscris – primul citit (memorie coadă)

Se realizează cu registre de deplasare stânga-dreapta. Numărul registrelor depinde de lungimea cuvintelor ce urmează a fi memorate. Capacitatea memoriei depinde de lungimea registrelor. De exemplu, dacă registrele sunt de 4 biți, capacitatea memoriei este de 4 cuvinte. La fiecare impuls de tact se introduc datele pe intrarea serială.

3. Memorie de tip LIFO (Least In, First Out), ultimul introdus – primul citit (memorie stivă)

Realizarea se face cu registre combinate. Numărul registrelor este dat de lungimea cuvântului de memorie, iar lungimea registrelor determină capacitatea de memorie.

Memoria stivă poate fi organizată și soft, în memoria de tip RAM, dar deși capacitatea acesteia poate fi mare, timpul de acces va fi și el mare.

4. Conversia serie-paralel și paralel serie a informației

Pentru conversia serie-paralel se face încărcarea registrului pe intrarea serială și cu comandă de tact serie Ts și se citește informația pe ieșiri, paralel.

Pentru conversia paralel-serie se face încărcarea paralelă a informației, cu comandă de tact paralel Tp și apoi se deplasează informația stânga-dreapta, cu comandă de tact serie Ts și se citește serie la ultima ieșire.

5. Generatoare de secvențe

Generatoarele de secvențe generează o succesiune de secvențe binare (1 și 0) de lungime dată (prestabilite). Lungimea secvenței reprezintă numărul de biți după care se repetă întreaga secvență. Secvențele binare pot fi:

– aleatoare, de lungime infinită;

– deterministe, de lungime finită.

Secvențele binare deterministe de lungime maximă se numesc secvențe pseudoaleatoare.

Realizarea generatoarelor de secvențe se face cu registre în reacție cu circuite logice combinaționale adecvate.

Secvența pseudoaleatoare generată la ieșirile Q0Q1Q2 este:

100 110 111 011 101 010 001

6.2.3. Memorii RAM

Memoriile de tip RAM (random access memory) sunt memorii de tip citește-scrie, cu acces aleator. Ele nu-și păstrează informația după întreruperea tensiunii de alimentare.

Memoria este formată din nivelul de decodificare, matricea de memorie realizată cu celule de memorie binară de tip “latch” și nivelul de multiplexare.

Dimensiunea memoriei este specificată prin numărul de cuvinte și numărul de biți pe cuvânt. Capacitatea memoriei este dată de numărul de biți memorați în matricea de memorie.

Schema funcțională de principiu a unei memorii RAM este următoarea:

Decodificatorul acționează pentru selectarea fiecărei celule de memorie, iar multiplexorul permite selectarea oricărei celule de memorie la intrare – ieșire.

Validarea memoriei se face prin intrarea CS. Citirea memoriei se face dacă WE = 1, iar scrierea memoriei se face dacă WE = 0.

Datele de intrare și ieșire pot să folosească linii diferite sau aceeași linie bidirecțională. Memoriile pot avea un număr diferit de căi de date (de obicei cuvinte de 1 bit sau de un număr de biți multiplu de 2).

Memoriile de tip RAM pot să fie din punct de vedere constructiv de tip static sau dinamic. Cele dinamice sunt realizate cu condensatoare și au nevoie de reîmprospătarea la diferite intervale de timp a informației memorate, pentru a se evita pierderea ei.

Extinderea capacității memoriilor se face atât prin extinderea dimensiunii cuvântului de memorie (numărul de biți din cuvânt), cât și prin extinderea numărului de cuvinte ale memoriei (adresa de memorie).

Cap. 7 Analiza și sinteza circuitelor secvențiale

7.1. Analiza circuitelor secvențiale

Problema de analiză a circuitelor secvențiale se definește astfel: cunoscând structura circuitului secvențial se cere evoluția semnalelor de ieșire pentru anumite evoluții (secvențe) ale semnalelor de intrare.

O condiție necesară pentru rezolvarea problemei de analiză a circuitelor secvențiale o constituie cunoașterea stării inițiale a circuitului analizat.

Etapele analizei sunt următoarele:

1) Se stabilesc intrările x, funcțiile secindare Y și funcția de ieșire pentru circuitul dat

2) Se determină expresiile algebrice ale funcțiilor secundare și ale ieșirii

3) Se construiește tabela de aadevăr ale acestora. Tabela va conține atâtea linii câte combinații de biți sunt posibile pentru intrări (2nr. de intrări) și atâtea linii câte combinații de biți sunt posibile pentru variabilele de stare y (2nr. de variabile de starei)

4) Se etichetează cu literele A, B, C, …, fiecare linie a tabelei de adevăr

5) Se construiește tabela automatului, identică ca formă cu cea construită la punctul 3), înlocuind valorile pentru funcțiile secundare Y cu eticheta corespunzătoare

6) Se construiește graful de evoluție a stărilor, care va conține atâtea noduri câte etichete s-au utilizat și se trasează evoluțiile corespunzătoare între noduri grafului

Exemple: 1) Fie circuitul din figura următoare

Pasul 1: Identificarea mărimilor circuitului

– x – intrarea

– Y1, Y2 – funcțiile secundare

– y1, y2 – variabilele de stare

– z – ieșirea

Pasul 2: Determinarea relațiilor algebrice

Pasul 3: Tabela de adevăr pentru funcțiile de la Pasul 2

Pasul 4: Etichetarea liniilor tabelei de adevăr

A = 00

B = 01

C = 11

D = 10

Pasul 5: Construirea tabelei automatului

(a)

Pasul 6: Construirea grafului de stări

2) Fie circuitul din figura următoare

Pasul 1: Identificarea mărimilor circuitului

– x1, x2 – intrări

– Y1, Y2 – funcțiile secundare

– y1, y2 – variabilele de stare

– z – ieșirea

Pasul 2: Determinarea relațiilor algebrice

Pasul 3: Tabela de adevăr pentru funcțiile de la Pasul 2

Pasul 4: Etichetarea liniilor tabelei de adevăr

A = 00

B = 01

C = 11

D = 10

Pasul 5: Construirea tabelei automatului

Pasul 6: Construirea grafului de stări

Bibliografie

Cap. 1

Cap. 2

Cap. 3

Cap. 4

Cap. 5

Cap. 6

Cap. 7

Bibliografie

Circuite de comutare aplicate în calculatoarele electronice, V. Pop, Volker Popovici, ed. Facla, 1976

Circuite integrate digitale, Gh. Ștefan, I. Drăghici, T. Mureșan, E. Barbu, EDP, 1983

De la poarta TTL la microprocesor, I. Sztojanov ș.a., ET, 1987

Proiectarea cu circuite logice MSI și LSI standard, T.R. Blakeslee, ET, 1988

Circuite integrate digitale, Gh. Stefan, V. Bistriceanu, Probleme, proiectare, EDP, 1992

Circuite integrate digitale, Gh. Stefan, V. Bistriceanu, Probleme, proiectare, Ed. Albastră, 2000

Automatizări discrete în industrie, Culegere de probleme, N. Sprânceană, R. Dobrescu, Th. Borangiu, ET, 1978

Sisteme numerice cu circuite integrate, Culegere de probleme, Sanda Maican, ET, 1980

Analiza și sinteza dispozitivelor numerice, I.A. Leția, Îndrumător de laborator, I.P. Cluj-Napoca, 1985

Analiza și sinteza dispozitivelor numerice, A. Nețin, O. Creț, Îndrumător de laborator, UT Press. Cluj-Napoca, 1998

Acknowledgment

Similar Posts