gabriel predusca - analiza si sinteza circuitelor numerice - curs

70
CURS 1 – Sisteme de numeraţie Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-1 SISTEME DE NUMERAŢIE Bine aţi venit în lumea circuitelor digitale. Poate sunteţi unul dintre cei ce studiaţi informatica şi ştiţi absolut tot despre programe şi programare, dar încercaţi încă să vă imaginaţi cum pot funcţiona toate echipamentele acelea ciudate. Sau poate studiaţi electronica şi ştiţi deja câte ceva despre circuitele electronice analogice, dar n-aţi putea recunoaşte un bit nici dacă v-ar sări în faţă. Nu-i nimic. Pornind de la un nivel aproape elementar, acest curs vă va arăta cum se realizează circuitele şi blocurile digitale. Cursul vă va prezenta principiile de bază care vă sunt necesare şi cuprinde numeroase exemple. Pe lângă principii, ori de câte ori va fi posibil, se va face legătura cu lumea reală a circuitelor digitale, prezentând aplicarea lor în practică. Circuitele digitale mai sunt denumite şi circuite logice. Scopul declarat al circuitelor este de a alcătui aparate. De aceea, cursul nu se va limita la relaţii şi teoreme logice. Cursul îşi propune să trateze despre principii şi despre implementarea lor. Majoritatea principiilor expuse în curs îşi vor păstra valabilitatea încă mulţi ani; unele vor avea aplicaţii care la ora actuală nici nu au fost descoperite. În ceea ce priveşte realizarea practică, s-ar putea ca, atunci când veţi începe să lucraţi în domeniu, ea să fie puţin diferită de cele expuse în paginile de faţă şi, cu siguranţă, se va modifica permanent de-a lungul întregii dumneavoastră cariere. Prin urmare, este bine să consideraţi materialul aplicativ din cuprinsul cursului drept o modalitate de aprofundare a principiilor şi de învăţare a metodelor de lucru cu ajutorul exemplelor. Cursul îşi propune să vă prezinte nişte principii de bază în suficientă măsură pentru a putea înţelege ce se întâmplă atunci când desfăşuraţi o anumită activitate folosind tehnica de calcul. aceleaşi principii vă vor arăta unde este eroarea atunci când nu totul merge cum trebuie. 1.1 REPREZENTAREA NUMERELOR ÎN DIFERITE BAZE DE NUMERAŢIE (2, 8 ,16) Aparatele digitale sunt construite din circuite care lucrează cu cifre binare 0 şi 1 cu toate că foarte puţine dintre problemele din viaţa de zi cu zi se bazează pe numerele binare sau pe orice fel de numere, în general. De aceea, inginerul trebuie să stabilească un fel de corespondenţă între numerele digitale, care pot fi prelucrate de circuitele digitale, şi numerele, evenimentele şi condiţiile din viaţa reală. Scopul capitolului de faţă este de a vă arată în ce mod mărimile numerice familiare pot fi reprezentate şi prelucrate într-un sistem digital, precum şi modul în care pot fi reprezentate şi datele, evenimentele şi condiţiile numerice. 1.1.1 Sisteme de numeraţie zecimal Sistemul tradiţional de numeraţie studiat în şcoală şi de uz curent în contabilitate este numit sistem de numeraţie zecimal. Într-un astfel de sistem, un număr se reprezintă printr-un şir de cifre în care fiecare dintre poziţiile cifrelor are o anumită pondere. Valoare unui număr este suma ponderată a cifrelor sale; de exemplu: 1234 = 1 1000 + 2 100 + 3 10 + 4 1

Upload: goku4ever

Post on 19-Jun-2015

585 views

Category:

Documents


6 download

DESCRIPTION

Bine aţi venit în lumea circuitelor digitale. Poate sunteţi unul dintre cei ce studiaţiinformatica şi ştiţi absolut tot despre programe şi programare, dar încercaţi încă să văimaginaţi cum pot funcţiona toate echipamentele acelea ciudate. Sau poate studiaţi electronicaşi ştiţi deja câte ceva despre circuitele electronice analogice, dar n-aţi putea recunoaşte un bitnici dacă v-ar sări în faţă. Nu-i nimic. Pornind de la un nivel aproape elementar, acest curs văva arăta cum se realizează circuitele şi blocurile digitale.

TRANSCRIPT

Page 1: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-1

SISTEME DE NUMERAŢIE

Bine aţi venit în lumea circuitelor digitale. Poate sunteţi unul dintre cei ce studiaţi

informatica şi ştiţi absolut tot despre programe şi programare, dar încercaţi încă să vă imaginaţi cum pot funcţiona toate echipamentele acelea ciudate. Sau poate studiaţi electronica şi ştiţi deja câte ceva despre circuitele electronice analogice, dar n-aţi putea recunoaşte un bit nici dacă v-ar sări în faţă. Nu-i nimic. Pornind de la un nivel aproape elementar, acest curs vă va arăta cum se realizează circuitele şi blocurile digitale.

Cursul vă va prezenta principiile de bază care vă sunt necesare şi cuprinde numeroase exemple. Pe lângă principii, ori de câte ori va fi posibil, se va face legătura cu lumea reală a circuitelor digitale, prezentând aplicarea lor în practică.

Circuitele digitale mai sunt denumite şi circuite logice. Scopul declarat al circuitelor este de a alcătui aparate. De aceea, cursul nu se va limita la relaţii şi teoreme logice.

Cursul îşi propune să trateze despre principii şi despre implementarea lor. Majoritatea principiilor expuse în curs îşi vor păstra valabilitatea încă mulţi ani; unele vor avea aplicaţii care la ora actuală nici nu au fost descoperite. În ceea ce priveşte realizarea practică, s-ar putea ca, atunci când veţi începe să lucraţi în domeniu, ea să fie puţin diferită de cele expuse în paginile de faţă şi, cu siguranţă, se va modifica permanent de-a lungul întregii dumneavoastră cariere. Prin urmare, este bine să consideraţi materialul aplicativ din cuprinsul cursului drept o modalitate de aprofundare a principiilor şi de învăţare a metodelor de lucru cu ajutorul exemplelor.

Cursul îşi propune să vă prezinte nişte principii de bază în suficientă măsură pentru a putea înţelege ce se întâmplă atunci când desfăşuraţi o anumită activitate folosind tehnica de calcul. aceleaşi principii vă vor arăta unde este eroarea atunci când nu totul merge cum trebuie.

1.1 REPREZENTAREA NUMERELOR ÎN DIFERITE BAZE DE NUMERAŢIE (2, 8 ,16) Aparatele digitale sunt construite din circuite care lucrează cu cifre binare 0 şi 1 cu

toate că foarte puţine dintre problemele din viaţa de zi cu zi se bazează pe numerele binare sau pe orice fel de numere, în general. De aceea, inginerul trebuie să stabilească un fel de corespondenţă între numerele digitale, care pot fi prelucrate de circuitele digitale, şi numerele, evenimentele şi condiţiile din viaţa reală. Scopul capitolului de faţă este de a vă arată în ce mod mărimile numerice familiare pot fi reprezentate şi prelucrate într-un sistem digital, precum şi modul în care pot fi reprezentate şi datele, evenimentele şi condiţiile numerice.

1.1.1 Sisteme de numeraţie zecimal Sistemul tradiţional de numeraţie studiat în şcoală şi de uz curent în contabilitate este

numit sistem de numeraţie zecimal. Într-un astfel de sistem, un număr se reprezintă printr-un şir de cifre în care fiecare dintre poziţiile cifrelor are o anumită pondere. Valoare unui număr este suma ponderată a cifrelor sale; de exemplu:

1234 = 1 ⋅1000 + 2 ⋅100 + 3 ⋅10 + 4 ⋅1

Page 2: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-2

Ponderea fiecărei poziţii este egală cu 10 la puterea dată de numărul de ordine al poziţiei respectiv. Virgula zecimală face posibilă utilizarea unor puteri ale lui 10 atât pozitive, cât şi negative:

5678,91 = 5 ⋅1000 + 6 ⋅100 + 7 ⋅10 + 8 ⋅1 + 9 ⋅0.1 + 1 ⋅0.01

În general, un număr D, de forma d1 d0 d-1 d-2, are valoarea:

D = d1 ⋅101 + d0 ⋅100 + d-1 ⋅10-1 + d-2 ⋅10-2 (1.1) În această expresie, 10 este baza sistemului de numeraţie. În general, baza unui sistem

de numeraţie zecimal poate fi orice întreg r ≥ 2, iar ponderea cifrei din poziţia i este ri. Într-un astfel de sistem, forma generală a unui număr este:

dp-1 dp-2 … d-1 d-0 , d-1 d-2 … d-n (1.2)

cu p cifre în stânga virgulei şi n cifre în dreapta acesteia.

Valoarea unui număr este egală cu suma produselor a doi factori – cifra şi puterea corespunzătoare a bazei:

∑−

−=

⋅=1p

ni

ii rdD (1.3)

Dacă nu luăm în consideraţie eventualele zerouri ce pot apare înaintea unui număr sau

la sfârşitul lui, reprezentarea unui număr într-un sistem de numeraţie este unică. De exemplu:

0234,56700 este egal cu 234,567 Cifra din stânga este cifra de cel mai mare ordin sau cifra cea mai semnificativă;

cifra cea mai din dreapta este cifra de cel mai mic ordin sau cifra cea mai puţin semnificativă.

1.1.2 Sisteme de numeraţie binare În circuitele digitale, semnalele pot avea, în mod normal, una din singurele două stări

posibile: de jos sau de sus, cu sarcină sau fără sarcină, oprit sau pornit. Astfel de semnale sunt interpretate ca reprezentând cifre binare (sau biţi), ale căror valori posibile sunt 0 sau 1. Aceasta este cauza pentru care s-a ales baza de numeraţie 2 (sau binară) pentru reprezentarea numerelor în sistemele digitale. Forma generală a unui număr binar este:

bp-1 bp-2 … b-1 b0 , b-1 b-2 … b-n (1.4)

iar valoarea lui este:

∑−

−=

⋅=1p

ni

ii 2bB (1.5)

În cazul numerelor zecimale formate din parte întreagă şi parte fracţionară

transformarea se face convertind separat partea întreagă şi partea fracţionară; apoi se concatenează rezultatele.

Page 3: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-3

Conversia părţii întregi a numărului zecimal se face cu algoritmul lui Euclid. Se împarte numărul zecimal la bază obţinând un cât şi un rest. Câtul obţinut se împarte din nou la bază şi aşa mai departe, până când câtul devine zero. Resturile succesive luate în ordine inversă a apariţiei reprezintă coeficienţii numărului convertit (primul rest obţinut este cifra cea mai puţin semnificativă, iar ultimul, cea mai semnificativă).

Exemplul 1. Convertirea numărului 29,85 din baza 10 în baza 2:

CÂT REST29:2 = 14 1 14:2 = 7 0 7:2 = 3 1 3:2 = 1 1

Rezultatul va fi: 2910 =111012

Conversia părţii zecimale se face după cum urmează: se înmulţeşte partea zecimală cu

baza, obţinând un număr ce are parte întreagă şi parte zecimală. Partea zecimală se înmulţeşte din nou cu baza şi aşa mai departe până când rezultatul înmulţirii este zero sau până când se obţin destule cifre ale numărului convertit. Părţile întregi, luate în ordinea apariţiei, reprezintă coeficienţii (cifrele) numărului zecimal convertit.

În cazul exemplului nostru rezultatul este:

PARTE ÎNTREAGĂ

PARTE ZECIMALĂ

0,85·2= 1 + 0,7 0,7 ·2= 1 + 0,4 0,4 ·2= 0 + 0,8 0,8 ·2= 1 + 0,6 0,6 ·2= 1 + 0,2 0,2 ·2= 0 + 0,4

Rezultatul va fi: 0,8510 =0,1101102.

Rezultatul final al conversiei este: 29,8510 = 11101,1101102

Conversia numărului din baza 2 în baza 10 se face astfel: 11101,110112 = 1⋅24 + 1⋅23 +1⋅22 + 0⋅21 +1⋅20 + 1⋅2-1 + 1⋅2-2 + 0⋅2-3 + 1⋅2-4 +1⋅2-5 = = 16 + 8 + 4 + 0 + 1 + 0.5 + 0.25 + 0 + 0.0625 + 0.03125

= 29, 8437510

Bitul cel mai din stânga al unui număr binar este numit bitul de cel mai mare ordin

sau bitul cel mai semnificativ (MSB – Most Significant Bit); bitul cel mai din dreapta este

Page 4: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-4

bitul de cel mai mic ordin sau bitul cel mai puţin semnificativ (LSB – Least Significant Bit).

1.1.3 Sisteme de numeraţie octale şi hexazecimale Baza de numeraţie 10 prezintă importanţă pentru că este cea de uz curent în activitatea

cotidiană, iar importanţa bazei 2 se datorează faptului că numerele binare pot fi prelucrate direct de circuitele digitale. Numerele din alte baze pot fi rareori prelucrate direct, însă au o anumită importanţă în scop documentar şi în diverse alte scopuri. În particular, bazele 8 şi 16 constituie sisteme convenabile de reprezentare rapidă a numerelor de mai mulţi biţi într-un sistem digital.

Sistemul de numeraţie octal are baza 8, iar sistemul de numeraţie hexazecimal are baza 16. Tabelul 1.1 prezintă numerele întregi binare cuprinse între 0000 şi 1111 şi echivalentele lor în octal, zecimal şi hexazecimal. Sistemul octal utilizează 8 cifre, adică 0 … 7 din sistemul zecimal. Sistemul hexazecimal necesită 16 cifre, deci cifrelor zecimale 0 … 9 li se adaugă literele A … F.

Tabelul 1.1 Reprezentarea numerelor în diferite baze de numeraţie

BAZA 10 2 8 16 0 0000 000 0 1 0001 001 1 2 0010 010 2 3 0011 011 3 4 0100 100 4 5 0101 101 5 6 0110 110 6 7 0111 111 7 8 1000 - 8 9 1001 - 9

10 1010 - A 11 1011 - B 12 1100 - C 13 1101 - D 14 1110 - E 15 1111 - F

Sistemele de numeraţie octal şi hexazecimal sunt adecvate reprezentării numerelor de

mai mulţi biţi deoarece bazele lor sunt puteri ale lui 2. Întrucât cu un şir de 3 biţi se pot realiza 8 combinaţii diferite, înseamnă că fiecare şir de 3 biţi are o reprezentare unică printr-o cifră octală, aşa cum arată coloana a 3 din tabelul 1.1. Similar, un şir de 4 biţi poate fi reprezentat printr-o cifră hexazecimală, conform coloanei a 4 din tabel.

Prin urmare numerele binare pot fi convertite foarte uşor în numere octale. Pornind de la dreapta către stânga, se împart biţii în grupe de câte 3 şi fiecare grupă se înlocuieşte cu cifra octală corespunzătoare.

Exemplul 2. Să se convertească în octal numerele din baza 2:

1001110111102 = 100 111 011 1102 = 47368 11011101101010112 = 001 101 110 110 101 0112 =1566538

Page 5: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-5

Metoda de conversie binar – hexazecimal este similară, numai că, în acest caz, grupele formate sunt de câte 4 biţi.

Exemplul 3. Să se convertească în baza 16, numerele din baza 2:

1001110111102 = 1001 1101 11102 = 9DE16 1111011101101010112 = 0011 1101 1101 1010 10112 =3DDAB16

În exemplele de mai sus s-au adăugat în stânga numerelor atâtea zerouri câte au fost

necesare pentru ca numărul total de biţi să fie multiplu de 3 sau de 4, după caz. Dacă un număr are cifre semnificative la dreapta virgulei, le putem converti în octal

sau în hexazecimal aplicând acelaşi procedeu de la virgulă către dreapta. Atât în stânga, cât şi în dreapta unui număr putem adăuga zerouri pentru a obţine un număr de biţi multiplu de 3 sau de 4, ca în exemplul următor.

Exemplul 4. Să se convertească în baza 8 şi 16, numerele din baza 2:

101,110010111001112 = 101,110 010 111 001 1102 = 5,627168 = 0101,1100 1011 1001 11002 = 5,CB9C16

Conversia în sens invers, din octal sau hexazecimal în binar, se face foarte uşor.

Trebuie doar să înlocuim fiecare cifră din octal sau hexazecimal cu şirul corespunzător de 3 sau 4 biţi.

Exemplul 5. 12348 = 001 010 011 1002

2147,358 = 010 001 100 111,011 1012 BCAE16 = 1011 1100 1010 11102

8F,57D16 = 1000 1111, 0101 0111 11012

Sistemul de numeraţie octal a fost destul de mult utilizat cu 25 de ani în urmă datorită

unor minicalculatoare care aveau lămpile şi comutatoarele de pe panoul frontal grupate câte 3. Astăzi, însă sistemul de numeraţie octal nu mai este utilizat pe scară largă din cauza preponderenţei echipamentelor care lucrează cu octeţi (byte), adică grupe de câte 8 biţi. Este dificil de calculat în octal valori de octeţi separaţi pornind de la valori exprimate prin mai mulţi octeţi.

Exemplul 6. Să se reprezinte în binar numărul octal:

234567103218 = 010 011 100 101 110 111 001 000 011 010 0012

În sistemul hexazecimal, două cifre reprezintă un octet, iar 2n cifre – un cuvânt de n

octeţi; fiecare pereche de cifre constituie exact un octet.

Page 6: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-6

Exemplul 7. Să se specifice numărul de octeţi ai numărului hexazecimal

6789ACBD16:

6789ACBD16 cuprinde 4 octeţi 6716 , 8916 AC16 şi BD16

Numerele hexazecimale sunt utilizate frecvent pentru reprezentarea spaţiului de adrese

din memoria unui calculator. 1.1.4 Conversii generale între sistemele de numeraţie binare, octale şi hexazecimale În general, conversia între două baze de numeraţie nu se poate efectua doar printr-o

simplă substituţie; sunt necesare unele operaţii aritmetice. În continuare vom arăta cum se converteşte un număr din orice bază în baza 10 şi invers, folosind pentru aceasta calcule aritmetice în baza 10.

Din relaţia (1.3) valoarea numărului poate fi calculată prin conversia fiecărei cifre a numărului în echivalentul ei în baza 10, urmată de aplicarea formulei, în care calculele se efectuează tot în baza 10.

Exemplul 8. Să se convertească următoarele numere în baza 10: 2DC516 = 2 ⋅163 + 13 ⋅162 +12 ⋅161 + 5 ⋅160

= 2 ⋅ 4096 + 13 ⋅256 +12 ⋅16 + 5 ⋅1 = 1171710

F2B416 = 15 ⋅163 + 2 ⋅162 +11 ⋅161 + 4 ⋅160 = 15 ⋅ 4096 + 2 ⋅256 +11 ⋅16 + 4 ⋅1 = 6213210

347,68 = 3 ⋅82 + 4 ⋅81 + 7 ⋅80 + 6 ⋅8-1 = 2 ⋅ 64 + 4 ⋅8 +7 ⋅1 + 6 ⋅0.125 = 167,7510

135,34 = 1 ⋅42 + 3 ⋅41 + 5 ⋅40 + 3 ⋅4-1 = 1 ⋅ 16 + 3 ⋅4 +5 ⋅1 + 3 ⋅0.25 = 33,7510

O formulă pentru conversia directă a numerelor întregi din baza r în baza 10 se poate obţine scriind formula (1.3) astfel:

( )( )( )( ) 012p1p drdr...rdrd...D +⋅+⋅+⋅+⋅= −− (1.6)

Pornim deci de la suma 0; începând cu cifra cea mai din stânga, înmulţim suma cu r şi

adunăm la rezultat cifra următoare; aplicăm procedeul până când am luat în calcul toate cifrele.

Exemplul 9. Să se exprime numărul următor din baza 16 în baza 10, folosind formula (1.6):

F2B416 = (((15)⋅16 + 2)⋅16 +11)⋅16+ 4 = 6213210

Formula (1.6) se aplică în algoritmii iterativi de conversie din programare. Din ea

derivă, de asemenea, o metodă foarte convenabilă de conversie a unui număr zecimal D într-o bază r. Să vedem ce se întâmplă dacă împărţim la r formula precedentă. Întrucât acea parte a formulei care conţine paranteze se împarte exact la r, câtul va fi:

Page 7: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-7

( )( )( ) 12p1p dr...rdrd...D +⋅+⋅+⋅= −− (1.7)

iar restul va fi egal cu d0. Prin urmare, d0 este restul împărţirii lui D la r. Se constată apoi că forma câtului Q este aceeaşi ca a formulei iniţiale. Prin urmare, prin împărţiri succesive la r se obţin, în ordine, cifrele numărului D, de la dreapta spre stânga, până la ultima cifră.

Exemplul 10. Să se transforme numărul 29,85 din baza 10 în baza 16 şi baza 8:

CÂT REST 29:16= 1 13 1:16= 0 1

Folosind tabelul de corespondenţă 1.1 conform căruia 1310=D16, rezultă că

2910=1D16. De reţinut ca notaţiile 1D16, 1DH, #1D sunt echivalente. Pentru conversia părţii zecimale, procedeul este asemănător cu cel descris anterior

şi utilizând tabelul de corespondenţe, se obţine:

PARTE ÎNTREAGĂ PARTE ZECIMALĂ

0,85·16= (13)10=(D)16 + 0,6 0,6 ·16= 9 + 0,6 0,6 ·16= 9 + 0,6

Deci: 0,8510=0,D9916 Rezultatul final al conversiei este: 29,8510= 1D,D9916.

CÂT REST

29:8 = 3 5 3:8 = 0 3

Rezultă că 2910=358. Pentru conversia părţii zecimale, procedeul este asemănător cu cel descris anterior,

se obţine:

PARTE ÎNTREAGĂ PARTE ZECIMALĂ

0,85·8 = 6 + 0,8 0,8 ·8 = 6 + 0,4 0,4 ·8 = 3 + 0,2

Deci: 0,8510=0,6638 Rezultatul final al conversiei este: 29,8510= 35,6638.

Page 8: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-8

1.2 OPERAŢII CU NUMERE NEZECIMALE (ADUNARE, SCĂDERE, ÎNMULŢIRE, ÎMPĂRŢIRE)

1.2.1 Adunarea numerelor nezecimale Adunarea şi scăderea de mână a numerelor nezecimale se fac în acelaşi mod în care se

învaţă aceste operaţii la şcoală, pentru numerele zecimale; singura deosebire este faptul că tabla adunării şi scăderii este diferită. Deoarece numerele sunt în binar, adunarea se face modulo 2, conform tabelului 1.2:

Tabelul 1.2 Adunarea modulo 2

a b s cout

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

unde s este suma modulo 2 iar cout este transportul.

Exemplul 11. Să se efectueze următoarele operaţii de adunare în binar:

10 + 1 0 1 0 + 8 1 0 0 0

18 1 0 0 1 0 Probă: 100102 = 1 ⋅24 + 0⋅23 + 0 ⋅22 + 1 ⋅21

+ 0 ⋅20 = 16 + 2 = 1810

180 + 1 0 1 1 0 1 0 0 + 131 1 0 0 0 0 0 1 1311 1 0 0 1 1 0 1 1 1

Probă: 1001101112 = 1⋅28 + 0 ⋅27 + 0 ⋅26

+ 1 ⋅25 + 1 ⋅24 + 0⋅23 + 1 ⋅22 + 1 ⋅21 + 1 ⋅20

= 256 + 32 + 16 + 4 + 2 + 1 = 31110

1.2.2 Reprezentarea numerelor negative

Până acum am lucrat numai cu numere pozitive, dar şi numerele negative pot fi reprezentate în mai multe moduri. În activitatea cotidiană folosim sistemul de reprezentare prin modul şi semn, prezentat în continuare. Cu toate acestea, în majoritatea calculatoarelor se utilizează unul dintre sistemele de reprezentare prin complement a unui număr, aşa cum se va arăta mai târziu. 1.2.2.1 Reprezentarea prin modul şi semn În sistemul de reprezentare prin modul şi semn, un număr apare sub forma un valori precedate de un semn care arată dacă acea valoare este pozitivă sau negativă. Prin urmare,ştim cum să interpretăm numerele zecimale +85, -67, +234 şi -24 şi mai ştim că dacă un număr nu este precedat de nici un semn, este un număr pozitiv.

Page 9: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-9

Sistemul de reprezentare prin modul şi semn se aplică numerelor binare utilizând un bit excedentar care reprezintă semnul (bitul de semn). Bitul cel mai din stânga (din poziţia MSB) dintr-un şir de biţi este considerat bit de semn (0 – plus, 1 - minus), iar biţii următori reprezintă modulul.

Exemplul 12. Să se reprezinte semnul şi modulul următoarelor numere şi echivalentul lor zecimal: 0101 10112 = +9110 1101 10112 = -9110 0 1110 10102 = +23410 1 1110 10102 = -23410

Să presupunem că vrem să realizăm un circuit logic digital care să efectueze adunarea unor numere reprezentate prin modul şi semn. Circuitul trebuie să examineze semnele termenilor pentru a putea decide cum să prelucreze modulele. Dacă semnele sunt identice, modulele trebuie adunate, iar rezultatul primeşte acelaşi semn. Dacă semnele sunt diferite, modulele trebuie comparate, cel mai mic se scade din cel mai mare, iar rezultatul primeşte semnul termenului cu modulul mai mare. Toate acestea se traduc prin complexitate avansată a circuitului logic. Singurul avantaj al sistemului de reprezentare prin modul şi semn este acela că, odată ce am construit un circuit de adunare, este cât se poate de simplu să construim şi unul de scădere; este nevoie doar de schimbarea semnului scăzătorului şi de adunarea lui la descăzut folosind circuitul de adunare.

1.2.2.2 Reprezentarea prin complement faţă de 2

În sistemul binar, MSB al unui număr serveşte ca bit de semn; un număr este negativ dacă şi numai dacă are MSB egal cu 1. Echivalentul zecimal al complementului faţă de 2 al unui număr binar se calculează la fel ca pentru numerele care nu sunt precedate de semn, cu excepţia faptului că ponderea MSB este de -2n+1. Domeniul căruia îi aparţin reprezentările numerelor este cuprins între –(2n-1) şi +(2n-1-1).

Complementul faţă de 2 înseamnă complementul faţă de 1 la care se mai adună 1. Complementul faţă de 1 presupune ca 0 trece în 1 şi 1 trece în 0.

Exemplul 13. Să se reprezinte complementul faţă de 2 al numerelor: 1610, 16910, -8910, -12710.

1610 = 0 0 0 1 0 0 0 02

Complement faţă de 2 Compl. faţă de 1 1 1 1 0 1 1 1 1 +

1 1 1 1 1 0 0 0 0

1111 00002 = -1610

16910 = 1 0 1 0 1 0 0 12 Complement faţă de 2Compl. faţă de 1 0 1 0 1 0 1 1 0 + 1 0 1 0 1 0 1 1 1

Page 10: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-10

0101 01112 = -16910

-8910 = 1 0 1 0 0 1 1 12 Complement faţă de 2Compl. faţă de 1 0 1 0 1 1 0 0 0 + 1 0 1 0 1 1 0 0 1

0101 10012 = -8910

-12710 = 1 0 0 0 0 0 0 02 Complement faţă de 2Compl. faţă de 1 0 1 1 1 1 1 1 1 + 1 1 0 0 0 0 0 0 0

1000 00002 = -12710.

Atunci când apare depăşire, ca în toate operaţiile cu complement faţă de 2, bitul acela se ignoră, folosindu-se doar cei n biţi de ordin inferior ai rezultatului.

1.2.3 Scăderea numerelor nezecimale Întrucât adunarea obişnuită este doar o extensie a numărării, numerele reprezentate

prin complementul faţă de 2 se pot aduna conform metodei obişnuite din bina, ignorând eventualul transport dincolo de MSB. Scăderea este de fapt tot o adunare, dar cu complementul faţă de 2 al numărului negativ.

Exemplul 14. Să se efectueze următoarele operaţii de scădere:

10 - 10 + (-8) 1 0 0 0 8 (-8) C.22 2 C.1 0 1 1 1 + 1 1 0 0 0 1 0 1 0 + 1 0 0 0

se neglijează 1 0 0 1 0

54 - 54 + (-32) 1 0 0 0 0 0 32 (-32) C.2 22 22 C.1 0 1 1 1 1 1 +

1 1 0 0 0 0 0 1 1 0 1 1 0 + 1 0 0 0 0 0

se neglijează 1 0 1 0 1 1 0

Page 11: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 1 – Sisteme de numeraţie

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 1-11

54 - 54 + (-72) 0 1 0 0 1 0 0 0 72 (-72) C.2

-18 -18 C.1 1 0 1 1 0 1 1 1 + 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 + 1 0 1 1 1 0 0 0

1 1 1 0 1 1 1 0

1.2.4 Înmulţirea în binar În clasele primare am învăţat să efectuăm înmulţirea prin adunarea decalată a

produselor dintre deînmulţit şi fiecare dintre cifrele înmulţitorului. Aceeaşi metodă poate fi utilizată pentru calcularea produsului a două numere binare neprecedate de semn.

Exemplul 15. Să se efectueze următoarele operaţii de înmulţire în binar:

12 × 1 1 0 0 × 14 1 1 1 0

168 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0

Probă: 101010002 = 1 ⋅27 + 0⋅26 + 1 ⋅25 +0 ⋅24 + 1⋅23 + 0 ⋅22 + 0 ⋅21

+ 0 ⋅20 =

= 128 + 32 + 8 = 16810

121 × 1 1 1 1 0 0 1 × 13 1 1 0 1

1573 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1

110001001012 = 1⋅210+1⋅29+0⋅28+0⋅27 +0⋅26+1⋅25 +0⋅24 +0⋅23 +1⋅22+0⋅21+ 1⋅20

= =1024+512+ 32 + 4+1 = 157310

Page 12: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-1

ELEMENTE DE ARITMETICĂ BINARĂ

2.1 ALGEBRA BOOLEANĂ Logica matematică, sau algebra logică, a fost întemeiată prin lucrările lui George

Boole la mijlocul secolului trecut. Contribuţii importante a avut şi De Morgan. Un rol decisiv în aplicarea acestei teorii la studiul ingineresc al sistemelor digitale l-a avut Claude Shannon.

Algebra booleană este o algebră formată din: - elementele {0,1}; - 2 operaţii binare numite SAU şi ŞI, notate simbolic + (plus) şi · (înmulţit); - o operaţie unară numită NU negaţie, notată simbolic A sau A’ . Operaţiile se definesc astfel:

ŞI SAU NU

0 ⋅ 0 = 0 0 + 0 = 0 10 = 0 ⋅ 1 = 0 0 + 1 = 1 01 = 1 ⋅ 0 = 0 1 + 0 = 1 1 ⋅ 1 = 1 1 + 1 = 1

Teoremele algebrei booleene sunt: 1. Principiul dublei negaţii: ( ) xx =

2. Teorema asociativităţii: ⎪⎩

⎪⎨

⊕⊕=⊕⊕=⊕⊕⋅⋅=⋅⋅=⋅⋅

++=++=++

321321321

321321321

321321321

xxxx)xx()xx(xxxxx)xx()xx(x

xxxx)xx()xx(x

3. Teorema comutativităţii: ⎪⎩

⎪⎨

⊕=⊕⋅=⋅+=+

1221

1221

1221

xxxxxxxx

xxxx

4. Teorema de distributivitate: ⎪⎩

⎪⎨

++=⋅+⋅⊕⋅=⊕⋅

⋅+⋅=+⋅

)xx)(xx()xx(x)xx()xx()xx(x

xxxx)xx(x

3121321

3121321

3121321

5. Teorema de idempotenţă: ⎩⎨⎧

=⋅⋅⋅=+++

1111

1111

xxx....xxxx...x

6. Teorema complementării: ⎩⎨⎧

=⋅=+

)ieicontradictprincipiul(0xx)exclustertuluiprincipiul(1xx

11

11

Page 13: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-2

7. Legile lui De Morgan: ⎩⎨⎧

+=⋅⋅=+

2121

2121

xxxxxxxx

8. Reguli de absorbţie: ⎩⎨⎧

=+⋅=⋅+

1211

1211

x)xx(xxxxx

9. Reguli de semiabsorbţie: ⎩⎨⎧

⋅=+⋅+=⋅+

21211

21211

xx)xx(xxxxxx

10. Legile excluderii: ⎩⎨⎧

=+⋅+=⋅+⋅

12121

22121

x)xx()xx(x)xx()xx(

11. Prin substituire cu valori obţinem:

⎪⎪⎪⎪

⎪⎪⎪⎪

=⊕=⊕

=⋅=⋅=+=+

11

11

11

1

1

11

x1xx0x

x1x00x11xx0x

Exemplul 1. Să se simplifice funcţia următoare:

( ) ( ) a1ab1abaabaaaFbaaF1

11 =⋅=+=⋅+=⋅+⋅=⇒+= 321

Exemplul 2. Pe baza postulatelor algebrei booleene, să se demonstreze:

ABABA =+++

Din legile lui de Morgan 2121 xxxx ⋅=+ , rezultă:

( ) A1ABBABABABABABA

BABABA

1

=⋅=+=⋅+⋅⇒⎪⎭

⎪⎬⎫

⋅=⋅=+

⋅=⋅=+321

Page 14: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-3

Exemplul 3. Să se verifice următoarea identitate:

ACCBBACABCAB ++=++ Din legile lui de Morgan 2121 xxxx ⋅=+ , rezultă:

CABCABCABCAB ⋅⋅=++ Din legile lui de Morgan 2121 xxxx +=⋅ , rezultă:

( ) ( ) ( ) ( ) ( )ACBCCBABBCBBACACCAABACBA

ACCBBBCABAACCBBACABCAB

⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅=

=+⋅⋅+⋅+⋅+⋅=+⋅+⋅+=⋅⋅

Din teorema de idempotenţă 1111 xxx....x =⋅⋅⋅ ⇒ AAA =⋅ , BBB =⋅ , CCC =⋅ şi

din 1111 xxx...x =+++ ⇒ CBACBACBA ⋅⋅=⋅⋅+⋅⋅ , BABABA ⋅=⋅+⋅ , CACACA ⋅=⋅+⋅ , CBCBCB ⋅=⋅+⋅ rezultă:

( ) ( )CBCABACBCABACBACABCAB

1

BA1BA1CBA

⋅+⋅+⋅=⋅+⋅+⋅+⋅⋅=⋅⋅⋅=⋅⋅=+⋅

44 344 21444 3444 21

Exemplul 4. Să se scrie tabelul de adevăr pentru funcţia:

21021 XXXXXF += Funcţia este de 3 variabile, aceasta însemnă că în tabelul de adevăr vom avea 8

combinaţii (numărul de variabile este dat de relaţia m=2n, unde n este numărul de variabile).

X2 X1 X0 2X 1X 210 XXX 2102 XXXX + F

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

Page 15: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-4

2.2 PORŢI LOGICE Cele mai întâlnite porţi logice sunt:

Denumire Funcţie Simbol Tabel de adevăr

Tabel de definiţie

Inversor (NOT) xf =

x f x f

0 1 L H 1 0 H L

Poartă ŞI (AND) f = x1 ⋅ x2

x1 x2

x1 x2 f x1 x2 f 0 0 0 L L L0 1 0 L H L1 0 0 H L L1 1 1 H H H

Poartă SAU (OR) f = x1 + x2

x1 x2 f x1 x2 f 0 0 0 L L L0 1 1 L H H1 0 1 H L H1 1 1 H H H

Poartă ŞI-NU (NAND) 21 xxf ⋅=

x1 x2 f x1 x2 f 0 0 1 L L H0 1 1 L H H1 0 1 H L H1 1 0 H H L

Poartă SAU-NU (NOR) 21 xxf +=

x1 x2 f x1 x2 f 0 0 1 L L H0 1 0 L H L1 0 0 H L L1 1 0 H H L

SAU EXCLUSIV (XOR)

21 xxf ⊕=

x1 x2 f x1 x2 f 0 0 0 L L L0 1 1 L H H1 0 1 H L H1 1 0 H H L

SAU EXCLUSIV NU (NXOR)

21 xxf ⊕=

x1 x2 f x1 x2 f 0 0 1 L L H0 1 0 L H L1 0 0 H L L1 1 1 H H H

x xf =

f=x1⋅x2

x1 x2

f=x1+x2

x1 x2

21 xxf ⋅=

x1 x2

21 xxf +=

x1 x2

21 xxf +=

x1 x2

21 xxf +=

Page 16: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-5

Exemplul 5. Să se determine funcţia F pentru următorul circuit utilizând tabela de adevăr.

Se completează tabela de adevăr corespunzătoare circuitului.

A B C BA C CBAF += 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1

Exemplul 6. Să se realizeze diagrama de semnal pentru funcţia f fiind date variaţiile de semnal de mai jos. Circuitul ce descrie funcţia f este reprezentat în figura alăturată. Din circuit rezultă funcţia CBAf ++= . Tabelul de adevăr va fi:

A B C CBAf ++= 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0

Funcţia va avea diagrama de semnal ca în figura de mai jos.

f

A B C

f

A B C

Page 17: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-6

2.3 FORME DE EXPRIMARE A FUNCŢIILOR LOGICE

2.3.1 Forma normal disjunctivă (fnd) reprezintă sumă de termeni de tip produs, P:

f.n.d=a0P0+ a1P1+ a2P2+ . . . + a15P15+ . . . .+ an-1Pn-1 (2.1)

unde: P ABCD P ABCD P ABCD P ABCD0 1 2 15= = = =, , ,..., se mai numesc şi mintermeni (notaţi cu m0, m1, etc.).

2.3.2 Forma normal conjunctivă (fnc) reprezintă produs de termeni de tip sumă, S:

1115151100 *.....**....**... −−= nn SaSaSaSacncf (2.2)

unde: ( ) ( ) ( )DCBAS .., ,DCBAS ,DCBAS 1510 +++=+++=+++= se mai numesc şi maxtermeni (notaţi M0, M1, etc.). Spre deosebire de fnd unde expresia funcţiei conţine termeni canonici pentru care coeficienţii vectoriali ak sunt 1, la fnc intervin în expresia funcţiei acei termeni Sk pentru care ak sunt zero.

2.3.3 Diagrama KARNAUGH O diagramă Karnaugh pentru o funcţie booleană de n variabile se desenează sub forma

unui pătrat sau dreptunghi împărţit în 2n compartimente. Diagrama Karnaugh este organizată astfel încât două compartimente vecine pe o linie

sau pe o coloană corespund la doi termeni canonici care diferă numai printr-o singură variabilă, care apare în unul adevărată, iar în celălalt negată (la două n-pluri adiacente). Se consideră vecine şi compartimentele aflate la capetele opuse ale unei linii, respectiv coloane. Diagrama Karnaugh se notează fie indicând domeniul fiecărei variabile, fie indicând pe linie şi coloană n-uple de zerouri şi unităţi corespondente unui compartiment din diagramă şi ordinea variabilelor.

Diagramele Karnaugh pentru funcţii de 3, 4 variabile sunt:

AB C

00

01

11

10

A

0 a0 a2 a6 a4 a0 a2 a6 a4 1 a1 a3 a7 a5 C a1 a3 a7 a5 B

AB CD

00

01

11

10

A

00 a0 a4 a12 a8 a0 a4 a12 a8 01 a1 a5 a13 a9 a1 a5 a13 a9 11 a3 a7 a15 a11 C a3 a7 a15 a11 10 a2 a6 a14 a10 a2 a6 a14 a10

B

D

Page 18: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-7

Exemplul 7. Să se exprime funcţia F dată prin tabel de adevăr, cu fnd, fnc şi diagramă

Karnaugh.

A B C D F 0 0 0 0 0 0 M01 0 0 0 1 1 m12 0 0 1 0 1 m23 0 0 1 1 0 M3 4 0 1 0 0 1 m45 0 1 0 1 1 m56 0 1 1 0 0 M6 7 0 1 1 1 1 m78 1 0 0 0 1 m89 1 0 0 1 1 m9

10 1 0 1 0 1 m1011 1 0 1 1 0 M11 12 1 1 0 0 0 M12 13 1 1 0 1 0 M13 14 1 1 1 0 0 M14 15 1 1 1 1 1 m15

fnd= P1+ P2+P4+P5+ P7+ P8+ P9+ P10+ P15=m1+m2+m4+m5+m7+m8+m9+m10+m15=

ABCDDCBADCBADCBABCDADCBADCBADCBADCBA +++++++++=

fnc= S0⋅S3⋅S6⋅S11⋅S12⋅S13⋅S14= M0⋅M3⋅M6⋅M11⋅M12⋅M13⋅M14= ( )( )( )( )( )( )

( )DCBA

DCBADCBADCBADCBADCBADCBA

+++

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

Diagrama Karnaugh

AB

CD

00

01

11

1000 0 1 0 1 01 1 1 0 1 11 0 1 1 0 10 1 0 0 1

Page 19: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-8

2.3.4. Minimizarea funcţiilor booleene Algebra booleană se foloseşte la analiza şi sinteza dispozitivelor numerice (circuite de comutaţie). Între gradul de complexitate al circuitului şi cel al funcţiei care îl descrie există o legătură directă. Aceasta este motivaţia pentru care, î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ă). Soluţia minimă obţinută în urma minimizării ar trebui să fie cea mai avantajoasă (economie de porţi logice, obţinerea unei scheme mai fiabile, mai ieftine). În realitate nu este întotdeauna aşa. De exemplu, 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. Prin aplicarea metodelor de minimizare (de simplificare) se ajunge la expresii minimale sub forma unor SAU -uri de ŞI -uri (reuniune minimală) ori a unor ŞI -uri de SAU -uri (intersecţie minimală). 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.

Minimizarea grafică se bazează pe proprietatea de adiacenţă a codului binar reflectat (Gray) cu ajutorul căruia se numerotează liniile şi coloanele diagramei Karnaugh. În vederea minimizării se aleg suprafeţele maxime (subcuburi) formate din constituenţi ai unităţii, respectiv din constituenţi ai lui 0, suprafeţe (subcuburi) având ca dimensiune un număr de pătrate (compartimente) egal întotdeauna cu puteri ale lui 2. Aceste suprafeţe vor corespunde termenilor canonici, termenii vecini fiind adiacenţi (diferă printr-un singur bit). Ca urmare, în urma grupării lor se vor reduce variabilele pe baza relaţiei: 12121 xxxxx =⋅+⋅ .

Metoda de minimizare: - se realizează grupări de compartimente (subcuburi) care sunt puteri ale lui 2. Un

compartiment 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 normal disjunctivă minimă (fnd) prin însumarea termenilor elementari obţinuţi prin gruparea constituenţilor lui 1 sau forma normal conjunctivă minimă (fnc) prin înmulţirea termenilor elementari obţinuţi prin gruparea de constituenţi ai lui 0; funcţiile minimale obţinute sunt identice, ele diferind numai prin forma de prezentare.

În proiectare, pentru a se obţine forma minimală a unei funcţii booleene, este util să se minimizeze ambele forme canonice, fnd şi fnc. 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ă.

Page 20: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-9

Exemplul 8. Să se minimizeze şi să se implementeze cu porţi funcţia:

F = P3+ P7+ P8+ P9+ P12+ P13 +P15

Pentru a minimiza funcţia trebuie mai întâi să completăm tabelul de adevăr corespunzător. Se observă că funcţia este de 4 variabile deoarece ultimul termen este P15 (15=1111). În tabelul de adevăr funcţia F v-a fi 1 la: P3, P7, P8, P9, P12, P13 şi P15, iar în rest este 0.

A B C D F 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 0 7 0 1 1 1 1 8 1 0 0 0 1 9 1 0 0 1 1

10 1 0 1 0 0 11 1 0 1 1 0 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 0 15 1 1 1 1 1

Din diagrama Karnaugh rezultă că:

CDAABDCAF ++=

ABCD 00 01 11 10 00 0 0 1 1 01 0 0 1 1 11 1 1 1 0 10 0 0 0 0

Page 21: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-10

Exemplul 9. Să se minimizeze funcţia: F = P0+ P2+ P8+ P10

Tabelul de adevăr corespunzător funcţiei şi diagrama Karnaugh sunt:

Din diagrama Karnaugh se obţine: DBF ⋅=

2.3.5. Diagrame Karnaugh pentru funcţii incomplet definite Funcţiile incomplet definite sunt cele care în anumite puncte ale domeniului de

definiţie pot lua valoarea 0 sau valoarea 1. Avem 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 Karnaugh 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ă.

A B C D F 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 0 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 0 10 1 0 1 0 1 11 1 0 1 1 0 12 1 1 0 0 0 13 1 1 0 1 0 14 1 1 1 0 0 15 1 1 1 1 0

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

AB CD

Page 22: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-11

Exemplul 10. Să se minimizeze şi să se exprime cu ajutorul funcţiei ŞI-NU funcţiile:

a. F1 = P1+ P5+ P9+ P13 cu termenii redundanţi P2, P3, P6, P7, P10, P11, P14, P15; b. F2 = P3+ P7+ P8 + P10+ P11 + P15 cu termenii redundanţi P1, P9, P13; c. F3 = P0+ P2+ P4+ P6 + P8 + P10+ P12+ P13+ P14 cu termenii redundanţi P1, P3,

P5, P7, P11, P15.

a.

AB CD

00

01

11

10

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

DFDF Morgande =⎯⎯⎯ →⎯=

b.

AB CD

00

01

11

10

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

BADCBADCFBADCF Morgande ⋅⋅⋅=⋅+⋅=⎯⎯⎯ →⎯⋅+⋅=

c.

AB CD

00

01

11

10

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

DBDBFDBF Morgande ⋅=+=⎯⎯⎯ →⎯+=

D F

F C D

B A

F B D

Page 23: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-12

2.3.6 Extragerea unei funcţii logice din diagrame Karnaugh în care au fost introdu-se, pe lângă valori, şi funcţii logice.

Algoritmul de extragere comportă două etape: 1. se extrage funcţia logică introducând valoarea 0 în locaţiile în care se află funcţii

logice; 2. la funcţia astfel obţinută se sumează logic (OR) funcţia obţinută prin reintroducerea

în tabel a funcţiilor; suprafeţele se vor defini astfel încât să cuprindă aceeaşi funcţie iar valoarea lor se va înmulţi logic (AND) cu produsul asociat suprafeţei.

Exemplu 1. Se consideră funcţia dată prin tabelul de adevăr:

A B F 0 0 C 0 1 C 1 0 0 1 1 0

Implementarea cu diagramă Karnaugh şi minimizare conduce la:

A B

0 1

0 C 0 1 C 0

- pas 1 – se consideră C = 0 şi rezultă:

A

B 0 1

0 0 0 1 C 0

CBAF =1 - pas 2 – se consideră C = 1 şi rezultă:

A

B 0 1

0 C 0 1 0 0

CBAF =2 Astfel încât funcţia va fi în final de forma: CBACBAFFF +=+= 21

2. Se consideră funcţia dată prin tabelul de adevăr:

A B F 0 0 C

Page 24: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-13

0 1 C 1 0 0 1 1 1

Implementarea cu diagramă Karnaugh şi minimizare conduce la:

A B

0 1

0 C 0 1 C 1

- pas 1 – se consideră C = 0 şi rezultă:

A

B 0 1

0 0 0 1 C 1

CBF =1 - pas 2 – se consideră C = 1 şi rezultă:

A

B 0 1

0 C 0 1 0 1

ABCBAF +=2 Astfel încât funcţia va fi în final de forma: ABCBACBFFF ++=+= 21

2. Se consideră funcţia dată prin tabelul de adevăr:

A B F 0 0 C 0 1 C 1 0 1 1 1 1

Implementarea cu diagramă Karnaugh şi minimizare conduce la:

A B

0 1

0 C 1 1 C 1

- pas 1 – se consideră C = 0 şi rezultă:

A

B 0 1

0 0 1 1 C 1

Page 25: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-14

ACBF +=1 - pas 2 – se consideră C = 1 şi rezultă:

A

B 0 1

0 C 1 1 0 1

ACBF +=2

Astfel încât funcţia va fi în final de forma: ( )CBACBACBACBACBFFF ⊕+=++=+++=+= 21

Aplicaţii 1. Să se scrie tabelul de adevăr pentru următoarele funcţii logice: a. ZYXZYXZYXF ⋅⋅+⋅⋅+⋅⋅= b. PNPMNMF ⋅+⋅+⋅= c. CBABACBAF ⋅⋅+⋅+⋅⋅= d. ( )CBABCBAF ⋅+⋅⋅⋅⋅= e. ( )ZYXZYXZYXZYXYXF ⋅⋅+⋅⋅+⋅⋅+⋅⋅⋅⋅= f. PNMNMF ⋅⋅+⋅= g. ( ) ( ) ( )BABACCABBAAF +⋅+⋅+⋅⋅+⋅+= 2. Scrieţi suma şi produsul canonic pentru următoarele funcţii logice: a. ( )∑= Z,Y,X

,F 21

b. ( )∏= B,A,,F 210

c. ( )∑= C,B,A,,,F 7642

d. ( )∏= Y,X,W,,,,F 54310

e. ZYXF ⋅+= f. XWVF ⋅+= 3. Să se minimizeze următoarele funcţii utilizând diagramele Karnaugh: a. ( )∏= B,A

,,,,F 54310

b. ( )∑= Z,Y,X,,,,F 76531

c. ( )∑= Z,Y,X,W,,,,,,,F 1514976541

d. ( )∑= Z,Y,X,W,,,,,,,F 15131087520

e. ( )∏= D,C,B,A,,,,F 1513971

g. ( )∑= D,C,B,A,,,,,,F 1514127541

4. Să se implementeze funcţiile de la punctul 3 cu porţi ŞI-NU cu 2 intrări. 5. Să se minimizeze următoarele funcţii utilizând diagramele Karnaugh:

Page 26: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 2 – Elemente de aritmetică binară

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-15

a. ( ) ( )158145310 ,d,,,,FZ,Y,X,W

+=∏

b. ( ) ( )1593118210 ,,d,,,,FZ,Y,X,W

+=∏

c. ( ) ( )∏ +=D,C,B,A

d,,,,F 111514951

d. ( ) ( )∑ +=D,C,B,A

,d,,,,,F 1541397651

e. ( ) ( )∑ +=Z,Y,X,W

,,,,d,,,,F 1512421137653 6. Să se implementeze funcţiile de la punctul 4 cu porţi ŞI-NU cu 2 intrări.

Page 27: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 3 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-1

CIRCUITE NUMERICE CU MAI MULTE IEŞIRI

(I)

3.1 CIRCUITE LOGICE COMBINAŢIONALE Un circuit logic combinaţional (CLC) are una sau mai multe intrări (x) şi una sau mai

multe ieşiri (y) (figura 3.1) şi stabileşte relaţii logice între semnalele aplicate la intrări şi cele rezultate la ieşire, astfel că:

yi=fi (x1, ….xn), i=1,..,m fi : Mn M, { }1,0∈M (3.1)

Funcţiile (3.1) sunt funcţii logice binare, iar xj, j=1,…,n şi yi, i=1,…,n reprezintă

nivelele logice ale tensiunilor aplicate la intrările circuitului, respectiv rezultate la ieşirea sa. Transpunerea informaţiei binare dintr-un cod în altul se realizează cu ajutorul

transformatoarelor de cod. La intrare se aplică datele organizate într-un cod de m biţi, iar la ieşire rezultă datele din codul dorit, de n biţi. Cele n semnale de ieşire ale transformatorului de cod sunt funcţii logice având ca variabile cele m semnale de intrare. Prin urmare, transformatoarele de cod reprezentate simbolic în figura 3.2, stabilesc corespondenţe logice de forma:

Y=f(I), unde { } MyyY n ∈= ,...,1 , { } { }1,0,,...,1 =∈= MMiiI m (3.2)

şi sunt circuite logice combinaţionale.

De obicei pentru operaţia de trecere din codul 1 din N în cod binar sau alt cod se

utilizează termenul de codificare (codare), iar pentru operaţia inversă, din codul binar sau alt cod în codul 1 din M se foloseşte termenul de decodificare sau decodare. Configuraţia internă a transformatoarelor de cod se bazează pe porţi logice şi este determinată luând în considerare funcţiile logice care trebuie stabilite între ieşire şi intrare.

CLC

x1

x2

xn

y1

y2

ym

Figura 3.1

i1

i2

im

y1

y2

yn

Y1 I1

I2

Im Yn

Y2

Figura 3.2

Page 28: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 3 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-2

Transformatoarele de cod au, pe lângă intrările propriu-zise de date I, intrări de comandă care pot fi:

- intrări de validare (enable, strobe) care permit introducerea anumitor stări de aşteptare în preluarea datelor sau decuplarea circuitului de la magistrala de date;

- intrări de testare a circuitului; - intrări de schimbare a modului de lucru (de exemplu, activarea ieşirilor pe 0 sau 1). 3.2 CODIFICATORUL (CD) Codificatorul este un CLC care furnizează la ieşire un cuvânt binar de n biţi atunci

când numai una dintre cele m intrări ale sale este activată. Un exemplu îl constituie codificatorul zecimal-binar la a cărui intrare se aplică datele în sistem zecimal (m=10), iar la ieşire apar datele codificate în binar (n=4) conform tabelului următor. Linie de cuvânt x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 y3 y2 y1 y0

W0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 W1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 W2 0 0 1 0 0 0 0 0 0 0 0 1 0 W3 0 0 0 1 0 0 0 0 0 0 0 0 1 1 W4 0 0 0 0 1 0 0 0 0 0 0 1 0 0 W5 0 0 0 0 0 1 0 0 0 0 0 1 0 1 W6 0 0 0 0 0 0 1 0 0 0 0 1 1 0 W7 0 0 0 0 0 0 0 1 0 0 0 1 1 1 W8 0 0 0 0 0 0 0 0 1 0 1 0 0 0 W9 0 0 0 0 0 0 0 0 0 1 1 0 0 1

Numărul cuvintelor generate la ieşirea codificatorului este egal cu numărul intrărilor sau liniilor de cuvânt Wm de la intrare. În cazul exemplului de mai sus m=10, prin Wm notându-se linia de cuvânt activată (activ în 1); de exemplu W2 corespunde activării liniei (cuvântului de intrare) când variabilei x2 i se dă valoarea 1, la fel W3 când x3=1 etc. din tabelul de adevăr se vede că la cele 4 ieşiri se obţin funcţiile y0, y1, y2, y3 care exprimă codul binar determinate de relaţiile logice:

983

76542

76321

975310

WWyWWWWyWWWWy

WWWWWy

+=+++=+++=

++++=

(3.3)

ceea ce indică faptul că circuitul codificator poate fi realizat cu porţi SAU.

Page 29: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 3 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-3

3.3 COMPARATORUL Comparatorul este un CLC care permite realizarea funcţiilor:

BA ,BA ,BA <=> (3.4) Simbolul este:

are tabelul de adevăr:

B A fs fe fi 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0

Funcţiile care descriu circuitul sunt:

ABf

ABBAABf

ABf

i

e

s

=

⊕=+⋅=

=

(3.5)

COMPARATOR Ak

Bk

fs

fe

fi

BA >

BA =

BA <

Page 30: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 3 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-4

Structura internă este: 3.4 DETECTORUL ŞI GENERATORUL DE PARITATE Detectorul şi generatorul de paritate se foloseşte la detectarea erorilor în transmisia de

date. Ele au rolul de a detecta paritatea sau imparitatea numărului de variabile de intrare egale cu 1.

Realizarea acestui circuit se bazează pe proprietăţile porţii SAU-EXCLUSIV, de a răspunde:

- cu 1 atunci când una din intrări este 1 şi cea de-a doua este 0; - cu 0 când ambele intrări sunt pe 0. Dacă: P = 0 rezultă ieşirea Y este detector de imparitate (generator de imparitate) P = 1 rezultă ieşirea Y este detector de paritate (generator de paritate) 3.5 SUMATORUL PARALEL Pentru adunarea a două numere binare cu mai mulţi biţi de forma:

00

1n1n

nn

00

1n1n

nn

2b...2b2bB

2a...2a2aA

+++=

+++=−

−− (3.6)

este necesară interconectarea mai multor sumatoare de un bit pentru adunarea perechilor de biţi corespunzătoare aceluiaşi rang (puteri ale lui 2). Astfel pentru adunarea a două numere de 4 biţi 1001 şi 0111 se procedează la adunarea biţilor de acelaşi rang ţinând seama de transport.

A < B

7408

1

23

74041 2

7408

1

23

A = B

74041 2 A > BBk

7486

1

23

Ak

B

7486

1

23

7486

1

23

74861

23 YC P

7486

1

23

A

D

Detector de imparitate (cu 3 de 1)

1 1 1 1 transport 1 0 0 1 + 0 1 1 1

1 0 0 0 0

Page 31: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 3 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-5

Circuitul care efectuează astfel de adunări se numeşte sumator paralel. În figura de mai jos este reprezentat un astfel de sumator paralel pentru patru biţi, la care adunarea se face paralel, iar propagarea transporturilor se face serie.

S3

b3 a3

C3

S1

b1 a1

C1

S0

b0 a0

C0

S2

b2 a2

C2

Ci-1

Page 32: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-1

CIRCUITE NUMERICE CU MAI MULTE IEŞIRI

(II)

4.1 DECODIFICATOARE DCD este un CLC care în funcţie de anumite variabile de intrare, o ieşire şi numai una

va fi selectată. Numărul maxim de ieşiri este m=2n, unde n este numărul variabilelor de intrare.

Funcţia circuitului decodificator BCD/zecimal este de a transforma semnalele de intrare din codul BCD în semnale exprimate în cod zecimal (1 din 10). Semnalele de intrare exprimate în cod BCD de 4 biţi reprezint numere de la 0 la 9. Prin urmare, la ieşire trebuie să existe 10 semnale, fiecare reacţionând la una din cele 10 combinaţii posibile aplicate la intrare. Fiecare ieşire poate să treacă în 1 când îşi recunoaşte combinaţia prevăzută la intrare, caz în care presupunem că decodorul are ieşiri active pe 1. La alte circuite semnalizarea combinaţiei recunoscute se poate face prin zero şi în acest caz spunem că decodificatorul are ieşirile active pe 0.

Structura internă a unui DCD este (figura 4.1): 4.1.1 Decodificatorul cu ieşiri active pe 1 Simbolul logic al acestui decodor este prezentat în figura 4, iar funcţia îndeplinită de

acesta, în tabelul 4.1.

7404

12

b

7404

12

7404

12

7410

1122

13f2=(a'bc')'

7410

1122

13

c

f0=(a'b'c')'

f3=(abc)'7410

1122

13

a

74101

12213

f1=(a'b'c)'

Figura 4.1

Page 33: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-2

Tabelul 4.1 A B C D y0 y1 y2 y9 Observaţie 0 0 0 0 1 0 0 … 0 y0 este activ 0 0 0 1 0 1 0 … 0 y1 este activ 0 0 1 0 0 0 1 … 0 y2 este activ . . . . . . . . . . 1 0 0 1 0 0 0 … 1 y9 este activ 1 0 1 0 0 0 0 … 0 ieşirile . . . . . . . . . sunt 1 1 1 1 0 0 0 … 0 inactive

Relaţiile logice între intrări şi ieşiri rezultă din tabelul de adevăr:

DCBAPy

.......DCBAPy

DCBAPy

99

11

00

⋅⋅⋅==

⋅⋅⋅==

⋅⋅⋅==

(4.1)

Se observă că la fiecare ieşire rezultă unul din primii 10 termeni P ai funcţiei având

variabilele A, B, C, D, adică:

9,...,0i ,Py ii == (4.2) 4.1.2 Decodificatorul cu ieşiri active pe 0 Simbolul logic al acestui decodor este prezentat în figura 4.3, iar funcţia îndeplinită de

acesta, în tabelul 4.2. Tabelul 4.2

A B C D y0 y1 y2 y9 Observaţie 0 0 0 0 0 1 1 … 1 y0 este activ 0 0 0 1 1 0 1 … 1 y1 este activ 0 0 1 0 1 1 0 … 1 y2 este activ . . . . . . . . . . 1 0 0 1 1 1 1 … 0 y9 este activ 1 0 1 0 1 1 1 … 1 ieşirile . . . . . . . . . sunt 1 1 1 1 1 1 1 … 1 inactive

Relaţiile logice între intrări şi ieşiri rezultă din tabelul de adevăr:

DCBASy

.......DCBASy

DCBASy

99

11

00

+++==

+++==

+++==

(4.3)

În general fiecare ieşire reprezintă un termen canonic S, în funcţie de variabilele logice

A, B, C, D:

9,...,0i ,Sy ii == (4.4)

Figura 4.3 7442A

15

14

13

12

123456791011

A

B

C

D

Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9

7442A

15

14

13

12

123456791011

A

B

C

D

Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9

Figura 4.2

Page 34: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-3

Exemplul 1. Să se implementeze cu DCD circuitul descris de funcţia:

5310 PPPPF +++= Pentru implementarea funcţie cu DCD cu ieşirile active pe 0 se aplică ecuaţiile lui

de Morgan:

53105310 PPPPPPPPF =+++= Circuitul corespunzător este:

4.2 DEMULTIPLEXOR (DMUX) În multe aplicaţii este util ca funcţionarea circuitului DCD să poată fi permisă sau

inhibată printr-o intrare suplimentară Enable –intrare de validare. Funcţia de validare se poate obţine introducând câte o intrare suplimentară la porţile DCD. Structura internă a unui DMUX este cea din figura 4.4:

f3=P3*E

6

5

1

2

3

47

A

B

Y0

Y1

Y2

Y3E

f0=P0*E

f2=P2*EIntrare de DATE

f1=P1*E

f1=P1*E

f3=P3*E

7411

1122

13

7404

12

f0=P0*E

a

7411

1122

13

Eb

7404

12

7411

1122

13

7411

1122

13

f2=P2*E

Figura 4.4

A

C

13

12

11

1234567910

A

B

C

Y0Y1Y2Y3Y4Y5Y6Y7E'

F

7422

6

12

45

B

Page 35: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-4

Demultiplexorul permite transmiterea datelor de pe o cale de intrare, pe una din căile de ieşire; selectarea unei anumite căi de ieşire se face prin aplicarea codului (cuvântului) corespunzător la intrările A, B care în acest caz devin intrări de adresă sau de selecţie. Tabela de adevăr corespunzătoare circuitului este:

A B f0 f1 f2 f3 0 0 E 0 0 0 0 1 0 E 0 0 1 0 0 0 E 0 1 1 0 0 0 E

DMUX poate fi folosit ca DCD dacă intrarea de date se pune pe 0.

Exemplul 2. Să se implementeze circuitul logic cu două ieşiri descris de tabelul de

adevăr de mai jos, utilizând DMUX şi porţi adecvate:

A B C F1 F2

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

Funcţia F1 este: 763101 PPPPPF ++++= Se observă că funcţia mai poate fi scrisă şi sub forma: 521 PPF = Funcţia F2 este: 6402 PPPF ++= rezultă aplicând teorema lui de Morgan:

6402 PPPF = Circuitul este:

U10A

7410

1122

13

C

1

F1

U8A

7408

1

23

A 13

12

11

1234567910

A

B

C

Y0Y1Y2Y3Y4Y5Y6Y7E'

B

F2

Page 36: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-5

4.3 MULTIPLEXORUL (MUX) Multiplexorul este un CLC care permite transmiterea datelor de la una din cele m căi

de intrare la o cale unică de ieşire. Selectarea căii de intrare se face prin intermediul unui cuvânt binar de selecţie cu n biţi. Între m şi n există relaţia m=2n.

Simbolul circuitului este:

a cărui funcţie logică este:

02n1n1202n1n2202n1n12S...SSI...S...SSIS...SSIW NNN −−−−−−−−−

+++= (4.5)

Prin configuraţiile binare Sn-1…S0 este selectată la ieşire valoarea de pe una din intrările Ii. În cazul particular n=3 circuitul este cel de mai jos, descris de funcţia:

E)SSSISSSISSSI

SSSISSSISSSISSSISSSI(W

01201210122

01230124012501260127

⋅+++

+++++= (4.6)

Structura internă este:

njkf − nj

if −

S0

Sn-1 Sn-2

I0 I2n -1

x0

xn-1 xn-2 Circuit universal

W

nif

Figura 4.5

S0

S2

S1

I0 I 7

MUX

W

I 6 I 5 I 4 I 3 I 2 I 1

E’

Figura 4.6

Page 37: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-6

Intrarea suplimentară E permite activarea ( 0=E ) sau inactivarea ( 1=E ) comandată

a circuitului. Inversoarele de pe intrările de selecţie şi de pe intrările de validare a funcţionării ( E ) au fost introduse pentru a nu creşte fan-out-ul circuitelor ce comandă aceste intrări.

Fan–out -ul unui circuit reprezintă numărul maxim de circuite, realizate în tehnologie identică, pe care un astfel de circuit le poate comanda fără ca semnalul la ieşire să se alterneze a.î. să-şi piardă semnificaţia.

Fan–in -ul unui circuit reprezintă numărul de intrări pe care acesta îl posedă.

I3

7440

1245

63

74041 2

74041 2

I7

S17404

1 2

S1

E'

I0

7440

1245

63

74041 2

7440

1245

63

I4

74041 2

74041 2

74041 2

S2

I6

7440

1245

63

I5 I1

7440

1245

63

U20A

7432

123

I2

7440

1245

63

7440

1245

63

7440

1245

63

Figura 4.7

Page 38: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-7

Exemplul 3. Proiectarea unui sumator complet. Un circuit XOR realizează suma

modulo doi. Un sumator complet este reprezentat în schema de mai jos (figura 4.8) şi este definit de tabela de adevăr:

Unde: A şi B sunt cele două numere de câte un bit, C este depăşirea (Carry) de la

ordinul anterior, S este suma binară iar Cout depăşirea către ordinul binar următor. Ecuaţiile ce descriu circuitul sumator sunt următoarele:

CBAS ⊕⊕= ( ) ( ) BCCBABCCBAACBCABCout +⊕=++=++=

Astfel încât circuitul XOR pentru CB⊕ poate fi folosit pentru implementarea

ambelor funcţii, minimizându-se astfel efortul global. Rezultă circuitul din figura 4.9: Pentru evitarea unui efect dezastruos în funcţionare la mare viteză, se aplică teorema

lui de Morgan, obţinând: ( )BAABCCout ⊕= şi circuitul corespunzător reprezentat în figura 4.10.

C B A S Cout

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

B

Σ

A

C

S

Cout

Figura 4.8

Cout

B

74136

123

7409

123

7409

123

C

U23A

7432

123

A

74136

123

S

Figura 4.9

S

74136

123

Cout

7401

231

7401

231

B

74136

123

7401

231

C

A

Figura 4.10

Page 39: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-8

Implementarea sumatorului complet cu ajutorul MUX-urilor. Pentru implementarea cu MUX 8:1 se folosesc 2 MUX, unde pe intrările Ii au fost aplicate direct valorile ce rezultă din tabelul de adevăr: Tot de la tabela de adevăr se construieşte şi soluţia pentru implementare cu MUX 4:1 aplicându-se pe aceleaşi intrări funcţii de o variabilă ce se determină grupând în ordine câte două linii din tabelul de adevăr. Astfel, pentru C=B=0 (primele două linii în tabel) se observă că S=A, pentru C=0 şi B=1 (următoarele două linii în tabel) AS = ş.a.m.d. Rezultă circuitul din figura 4.12.

C B A S Cout

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

C B S Cout

0 0 A 0 0 1 A A 1 0 A A 1 1 A 1

C B A S Cout

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

A

Cout

BC

U25

74251

4321

15

1312

11109

5

6

7

14

D0D1D2D3D4

D6D7

ABC

Y

W

G

D5

118

U25

74251

4321

15

1312

11109

5

6

7

14

D0D1D2D3D4

D6D7

ABC

Y

W

G

D5

S

VCC

Figura 4.11

U27A

7404

12

U26

74153

7

9

142

16543

1510111213

ZA

ZB

S0S1

EAI0AI1AI2AI3A

EBI0BI1BI2BI3B

Cout

VCC

B

S

118

C

A

Figura 4.12

Page 40: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-9

Exemplul 4. Să se implementeze cu MUX 8:1 circuitul care indică numărul par de zerouri într-o combinaţie binară de 4 biţi. Funcţia se prezintă în tabelul următor.

A B C D F 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1

A B C

S2

S1

S0

I7 I6 I5 I4 I3 I2 I1 I0

MUX 0 E Y

F

D

A B C F 0 0 0 D0 0 1 D 0 1 0 D 0 1 1 D1 0 0 D 1 0 1 D1 1 0 D1 1 1 D

Page 41: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-10

4.2 EXTINDEREA CAPACITĂŢII DE MULTIPLEXARE ŞI DEMULTIPLEXARE

Una din raţiunile ce stă la baza introducerii semnalului E , care permite activarea unui

MUX, DMUX sau unui alt circuit, este legat de extinderea capacităţii lor de lucru. Cu alte cuvinte, dispunând de circuite de o anumită dimensiune să se poată construi un circuit cu aceeaşi funcţie dar de dimensiuni mai mari.

Extinderea capacităţii de multiplexare la 32 utilizând MUX 4:1. Ţinând cont de faptul ca

avem de multiplexat 32 de canale, vom avea nevoie de 5 variabile de intrare. Pentru implementare cu MUX 4:1 vom avem nevoie de 8 MUX 4:1 şi un MUX 8:1. Interconectarea se face conform reprezentării din figura 4.13.

Modul de funcţionare este evident. Spre exemplu, dacă S4S3S2S1S0=11010, atunci intrarea I6 de la MUX este transferată la ieşire. Pe această intrare este aplicată ieşirea de la MUX6 pe care se află valoarea de pe intrarea I2 a acestuia. Deci la ieşirea MUX-ului extins se află valoarea de pe intrarea I26.

Extinderea capacităţii de demultiplexare la 32 utilizând DMUX 4:1. Ţinând cont de faptul

ca avem de demultiplexat 32 de canale, vom avea nevoie de 5 variabile de intrare. Pentru implementare cu DMUX 4:1 vom avem nevoie de 8 DMUX 4:1 şi un DMUX 8:1. Interconectarea se face conform reprezentării din figura 4.14.

I6

MUX 1

S3S4

I0

I24

MUX 0

MUX 7I28

MUX 6

S1

EN901 M _1

4

>>>>>>>> 1

234

<<<<<<<<

MUX/ DX

9 >

<>

<

74HC4052

6109

121415111524

3

13

S2

EN901 M _1

4

>>>>>>>> 1

234

<<<<<<<<

MUX/ DX

9 >

<>

<

74HC4052

6109

121415111524

3

13I3 E'

I29

I2

I7

I1

U25

74251

4321

15

1312

11109

5

6

7

14

D0D1D2D3D4

D6D7

ABC

Y

W

G

D5

I27

I25

I5

I30I31

I26

S0

I4

Figura 4.13

Page 42: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 4 – Circuite numerice cu mai multe ieşiri

ŞL.drd.ing. PREDUŞCĂ GABRIEL 4-11

EN

90 1

M_1 4

>>>>>>>>1 2 3 4

<<<<<<<<M

UX

/ DX

9>

<>

<

6 10 9 12 14 15 11 1 5 2 4313

O'2

7

EN

90 1

M_1 4

>>>>>>>>1 2 3 4

<<<<<<<<M

UX

/ DX

9>

<>

<

6 10 9 12 14 15 11 1 5 2 4313

O'2

O'7

O'2

4 O'6

S0

O'4

O'2

8 O'0

E'

S1

12345679

15

14

13

12

Y0Y1Y2Y3Y4Y5Y6Y7

A

B

C

E'

O'2

9 O'1

O'2

6O

'25

O'3

1O

'30

S3S4

O'5

O'3

S2

Figura 4.14

Page 43: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-1

CIRCUITE BASCULANTE BISTABILE

5.1 SISTEME DE MEMORARE. Ansamblul CLC şi memorie comandată de tact constituie un sistem logic

combinaţional (SLC).

Figura 5.1 Structura unui SLC

Un sistem logic secvenţial (SLS) se poate reprezenta ca un SLC cu reacţie, sau ca un

CLC cu reacţie, ca în figura 5.2 de mai jos.

Figura 5.2 Structura unui SLS Stările sistemului logic secvenţial se pot realiza fizic prin blocul de memorie care

poate fi un registru de stări (RS) construit cu circuite basculante bistabile. 5.2 CIRCUITE BASCULANTE BISTABILE DE TIP R-S Circuitele basculante reprezintă circuite electronice care, din punct de vedere al

parametrilor electrici, se caracterizează prin existenţa a două stări limită distincte. Trecerea dintr-o stare în alta (adică bascularea circuitului) are loc într-un timp în general foarte scurt (depinzând de constantele de timp ale circuitului) şi apare ca o variaţie bruscă a mărimilor

CLC

Memorie

X

Y T

CLC

Memorie

X

Y T

SLC

Page 44: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-2

electrice de la cele două ieşiri ale circuitului. Acest proces se declanşează fie sub acţiunea unor semnale de comandă externe (cazul circuitului bistabil şi monostabil), fie ca urmare a proprietăţii circuitului de a bascula spontan dintr-o stare în cealaltă (cazul circuitului basculant astabil).

CBB de tip RS poate fi considerat ca fiind format din două porţi SAU-NU sau din două porţi ŞI-NU, cuplate intersectat ca în figura 5.3.

Figura 5.3 Structura internă a CBB de tip RS Intrările R (RESET) presupune aducerea ieşirii în 0 logic iar S (SET) aduce ieşirea în

1 logic. Operaţiile pe care le poate efectua un astfel de bistabil pot fi exprimate prin relaţiile:

SQRQ

RQSQ

t1t

t1t

+=

+=

+

+ (5.1)

Exemplu pentru S=1, R=0 şi Qt=0 se obţine:

0010Q

1101Q

1t

1t

=⋅+=

=⋅+=

+

+

Tabelele de adevăr corespunzătoare sunt: Circuitele bistabile R-S descrise sunt circuite asincrone; aceasta înseamnă că intrările

S şi R sunt considerate intrări de comenzi asincrone deoarece ieşirea se modifică după ce se modifică oricare din intrări (prin aplicarea semnalelor). În practică cel mai mult sunt folosite circuitele basculante bistabile sincrone la care există o intrare suplimentară de tact (CLK) care face ca circuitul să poată funcţiona simultan (sincron) cu toate celelalte dispozitive din sistem.

QR'

74332

31

R

Q'S'

Q'

Q74332

31

S

7438

1

23

7438

1

23

R S Qt Qt+1 Stare 0 0 0 0 Păstrează

starea anterioară 0 0 1 1

0 1 0 1 Este activ S (setare pe 1) 0 1 1 1

1 0 0 0 Este activ R (aducere pe 0) 1 0 1 0

1 1 0 ? Stare de nedeterminare 1 1 1

R S Qt Qt+1 Stare

1 1 0 0 Păstrează starea

anterioară 1 1 1 1 1 0 0 1 Este activ S

(setare pe 1) 1 0 1 1 0 1 0 0 Este activ R

(aducere pe 0) 0 1 1 0 0 0 0 ? Stare de

nedeterminare 0 0 1

Page 45: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-3

Figura 5.4 Structura internă a CBB de tip RS sincron 5.3 STRUCTURI MASTER-SLAVE CU BISTABILI RS. În multe situaţii se impune ca tranziţia ieşirii să se facă la momente bine determinate,

fără să fie influenţate de modificările stărilor de la intrare. În acest scop se adoptă structuri formate din două circuite bistabile simple înseriate în aşa fel încât ieşirile celui de al doilea bistabil să fie complet izolate de intrările ansamblului. O asemenea structură care conţine un bistabil master (stăpân) înseriat prin intermediul unor porţi ŞI-NU cu un alt bistabil denumit slave (slugă) este reprezentată în figura 5.5.a, iar în figura 5.5.b este dată reprezentarea simbolică a structurii care uzual se cunoaşte sub denumirea de bistabil RS-MS.

Atunci când CLK=1 rezultă CLKM=1 presupune că bistabilul M comută conform lui R

şi S, CLKS=0 iar dacă CLK=0 rezultă CLKM=0 bistabilul M este blocat iar el nu îşi mai modifică starea chiar dacă R şi S comută, CLKS=1 bistabilul S se deschide şi permite funcţionarea acestuia conform conţinutului bistabilului M (ieşirea Q).

CLK

74332

31

Q'

7408

1

23

7408

1

23

QR

S7433

2

31

QRCLK

RCLK

S

4013

53

421

S Q'

CLK

R

7401

2

31

Q7401

2

31

S7401

2

31

7401

2

31

74041 2

7401

2

31 Q'7401

2

31

7401

2

31

7401

2

31

RCLK

S

401353

421

RCLK

S

4013

53

421

SSlave

Master Q

Q'

RCLK

74041 2

Figura 5.5 Structura Master Slave

a.

b.

Page 46: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-4

Comutarea ieşirilor se produce imediat după frontul negativ al semnalului de ceas, conform stărilor R şi S anterioare.

Exemplu: R=0, S=1 rezultă Q=1 R=1, S=0 rezultă Q=0 5.4 BISTABIL DE TIP D. Dezavantajul principal al latch-urilor de tip RS constă în aceea că pentru valori

identice ale intrărilor (R=S=1) apar tranziţii nedeterminate inclusiv pentru cele comandate cu impulsuri de tact. Pentru a elimina acest dezavantaj se apelează la structuri de tip D (latch simplu) figura 5.6.a.; în figura 5.6.b se arată reprezentarea simbolică.

În majoritatea aplicaţiilor practice CBB mai sunt înzestrate cu încă două intrări de

comandă PRESET şi respectiv CLEAR (RESET) pentru punerea directă a CBB în poziţia SET şi respectiv ştergerea (CLEAR) a acestuia înainte (sau în afara) aplicării semnalelor CLK şi D. Aceste semnale se utilizează când nu se aplica tactul (CLK=0) deci sunt intrări asincrone, de tip prioritar, ele fiind folosite la începutul funcţionării schemei, când trebuie resetat ansamblu de bistabili (CLEAR) sau puşi într-o anumită stare de iniţializare conform cerinţelor problemei date (PRESET). Cele două intrări mai sunt notate cu Sd (PRESET) şi Rd(RESET).

Nedeterminarea R=S=1 este înlăturată prin legarea împreună a intrărilor R şi S printr-un inversor astfel încât întotdeauna când S=1 avem simultan R=0.

Tabelul de stări al bistabilului D este:

Dt Qt Qt+1

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

Din tabelul de adevăr şi din schema logică a CBB de tip D se vede că la ieşirea Qt+1 se

obţine întotdeauna starea aplicată intrării D în acord cu ecuaţiile logice de funcţionare a bistabilului D:

t1t

t1t

DQ

DQ

=

=

+

+ (5.2)

Q'

7474

3

1

2

4

5

6CLK

CLR

D PR

E

Q

QCLKQ

Sd

D

RdQ'

74332

31

7404

12

CLK

Q

7408

1

23

7408

1

23

D7433

2

31

a. b.

Figura 5.6 Structura bistabilului de tip D

Page 47: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-5

Astfel bistabilul D apare ca un repetor dar el realizează şi principala funcţie a CBB şi

anume aceea de întârziere cu un tact a datelor de la intrare, de unde şi denumirea bistabilului D (delay - întârziere). După cum se vede din diagramele de timp din figura 5.7 bistabilul D urmăreşte la fiecare impuls de tact evoluţia intrării simţind la ieşire modificarea intrării de date pe toată durata palierului activ al ceasului. Ieşirea este modificată la apariţia fiecărui impuls de tact (când devine activ 1) adică pe frontul anterior al impulsului de tact (punctele 1, 2, 3 … din diagramele de timp) şi se menţine zăvorât în starea în care se găseşte în momentul când impulsul de tact devine inactiv (CLK=0); pe durata când CLK=0 ieşirea bistabilului nu este modificată indiferent de ce se aplică la intrarea de date D, deoarece pentru CLK=0 porţile ŞI de la intrare sunt închise.

5.5 Bistabilul de tip JK Bistabilul de tip JK păstrează cele două intrări (cu rol de set şi reset), specializate

fiecare pentru comanda înscrierii lui 1 respectiv 0. Pentru a elimina comanda interzisă (R=S=1) se atribuie o funcţie suplimentară pentru cazul când cele două intrări devin ambele active. În acest caz, ieşirea circuitului va trece în starea complementară. Intrarea set este denumită J, iar intrarea reset, K.

Tabelul de adevăr al unui astfel de circuit este:

J K Qt Qt+1 Stare 0 0 0 0 Păstreazaă

starea anterioară 0 0 1 1

0 1 0 0 Este activ S (setare pe 1) 0 1 1 0

1 0 0 1 Este activ R (aducere pe 0) 1 0 1 1

1 1 0 1 Schimbă starea 1 1 1 0

Funcţia logică a bistabilului JK este:

QKQJQ 1t +=+ (5.3) Bistabilul JK poate fi implementat cu un bistabil RS. Prin intrările J, K va trebui să

comandăm terminalele R, S astfel încât Q să aibă tranziţia dorită, impusă de tabelul de adevăr de mai sus. Comenzile necesare pentru S şi R se deduc din tabelul de adevăr următor:

CLK D Q

Figura 5.7 Semnale de intrare şi ieşire corespunzătoare bistabilului de tip D

Page 48: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-6

J K Qt Qt+1 R S 0 0 0 0 X 0 0 0 1 1 0 X 0 1 0 0 X 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 X 1 1 0 1 0 1 1 1 1 0 1 0

Din diagramele Karnaugh rezultă:

KQRQJS

== (5.4)

Împreună cu semnalul de tact CLK, de tip intrare de validare, o configuraţie JK arată

ca în figura 5.8:

JK Q

00

01

11 10

0 1 1 1 1 1

Q+

JKQ 00 01

11

10

0 x x 1 1 1

RJK

Q 00 01 11 10 0 1 1 1 x x

S

Q

1

342

J1

342

CLKS

R

6

421

Q'

K

Figura 5.8 Structura bistabilului de tip JK

Page 49: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-7

5.6 BISTABILUL DE TIP JK MASTER-SLAVE. Circuitul se separă în două secţiuni: Master şi Slave ca în figura 5.9: Bistabilele sunt validate în antifază astfel că în momentul când Master preia comanda

la intrare, Slave este inactiv. Când tactul trece în 0 şi invalidează pe M, S devine activ, preluând conţinutul circuitului M. Pentru a realiza corect comutaţia există un decalaj între momentul în care cele două bistabile intră sau iese din funcţionare, momente indicate în figura 5.10:

Figura 5.10 Momentele de funcţionare ale bistabilelor JK master slave şi anume:

1- se dezactivează bistabilul Slave care se izolează de Master şi păstrează starea la ieşire;

2- Master preia comanda la intrare; 3- Master este dezactivat şi îşi blochează starea; 4- Slave devine activ şi preia datele de la Master. Caracteristic pentru o comandă Master Slave este preluarea datelor pe palierul

impulsului de tact şi redarea lor la ieşire pe frontul descrescător al impulsului de tact.

5.7 BISTABILUL DE TIP T Este un bistabil de tip JK la care intrările J şi K sunt conectate împreună, deci circuitul

are o singură intrare de date, T şi una sau două ieşiri Q şi Q disponibile. Structura internă şi tabelul de adevăr corespunzătoare bistabilului de tip T sunt date în figura 5.11.

CK 1 2 3

4

Q

1

342

Q'

7408

1

23

74041 2

Q

J 7408

1

23

1

342

CLKS

R

6

421 S

R

6

421

K

Figura 5.9 Structura bistabilului JK Master Slave

Page 50: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 5 – Circuite basculante bistabile

ŞL.drd.ing. PREDUŞCĂ GABRIEL 5-8

T Qt Qt+1 0 0 0 0 1 1 1 0 1 1 1 0

Figura 5.11 Tabelul de adevăr şi structura internă a bistabilului de tip T Ecuaţiile ce descriu circuitul sunt:

tt1t

tt1t

TQQTQ

QTQTQ

+=

+=

+

+ (5.5)

1

342 Q'

1

342

74332

31

TCLK

Q74332

31

Page 51: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-1

IMPLEMENTAREA AUTOMATELOR FINITE

ELEMENTARE

Codificarea stărilor automatelor finite. Sinteza automatelor secvenţiale sincrone descrise prin diagrama ASM. (Algorithms State Machine). Sinteza unui circuit secvenţial sincron constă în determinarea schemei structurale a circuitului care permite implementarea cu elemente logice şi elemente de memorie, a tranziţiilor si ieşirilor impuse prin funcţiile λ şi δ. Determinarea expresiilor logice ale ieşirilor şi ale stărilor următoare presupune codificarea binară a acestora.

Fiecărei poziţii binare din codul atribuit stării îi corespunde o anumită variabilă de stare. Intrările şi ieşirile circuitului sunt notate de asemenea prin variabile binare.

N stări ale unui automat pot fi codificate prin p cifre binare astfel încât:

pp N 22 1 ≤<− O codificare optimă asigură obţinerea unor expresii logice cât mai simple, a

excitaţiilor şi o siguranţă cât mai ridicată în funcţionare. O funcţionare fără hazard a circuitului se realizează dacă stările între care există tranziţii directe primesc cuvinte de cod adiacente.

Utilizarea organigramei în sinteza automatelor secvenţiale sincrone realizate cu

automate elementare: bistabile J-K, D. Descrierea funcţionării unui automat secvenţial sincron printr-o organigramă este o metodă ce permite transpunerea directă, rapidă şi intuitivă a modului şi condiţiilor de funcţionare a automatului printr-un graf logic de intrări, stări şi decizii.

Elementele componente de bază ale organigramei de funcţionare a oricărui automat secvenţial sunt:

- elementul de intrare (control sau decizie), fig. 6.1a - elementul de stare fig. 6.1b - elementul de ieşire fig. 6.1c -

YPAS STOP

1/ADEVARAT

0/FALS

a

b

cd

Q2Q1Q0

000

ef

g

h

i

j

k

l

Fig. 6.1 Elementele unei organigrame

Pentru reprezentările din figura 6.1 există următoarele corespondenţe:

a – simbolul elementului de intrare b – variabila de intrare care exercită controlul

a) b) c)

Page 52: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-2

c – starea variabilei de intrare, pentru căile de ieşire din element d – elementul de intrare este asincron e – cale de intrare în stare f – simboluri pentru variabila de stare g – codul binar atribuit stării h – denumirea stării stabile i – simbolul elementului de stare j – calea de ieşire din stare k – simbolul elementului de ieşire l – denumirea variabilei de ieşire activate Se disting două tipuri de intrări şi decizii:

- sincrone, care sunt stabile pe durata unei perioade a impulsului de sincronizare şi apar numai odată cu acesta

- asincrone, care se pot modifica în orice moment de timp, independent de impulsul de sincronizare

Criterii de codificare a stărilor din organigrama unui automat secvenţial sincron. Evitarea curselor critice de tranziţie impune o codificare a stărilor astfel încât în orice stare, pentru toate combinaţiile posibile de intrări sincrone, să nu depindă mai mult decât o singură variabilă de stare de o intrare asincronă.

Practic, două stări rezultate din căile de ieşire a unei intrări asincrone trebuie să primească coduri adiacente.

Exemplu:

Eliminarea impulsurilor false (parazite) în funcţiile de ieşire impun:

a) adoptarea unei codificări în care toate tranziţiile implică modificarea unei singure variabile

b) creşterea numărului de stări prin forţarea tranziţiilor în stări suplimentare lipsite de funcţii de ieşire

Page 53: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-3

c) creşterea numărului variabilelor de stare d) sincronizarea funcţiilor de ieşire Pentru obţinerea unei scheme minimale sub raportul necesarului de componente fizice

(hardware) se adoptă regulile: e) tranziţiile directe între stări se codifică adiacent f) tranziţiile de stări condiţionate se codifică în sensul dependenţei reduse de variabilele

de intrare adică un număr cât mai mic de variabile de stare să depindă de intrare. Sinteza automatului secvenţial sincron utilizând metoda organigramei presupune

parcurgerea următoarelor etape: 1. Expunerea protocolului de operare prin descrierea în cuvinte a condiţiilor de

funcţionare 2. Elaborarea organigramei automatului corespunzătoare condiţiilor de funcţionare, cu o

stare iniţială şi o ultimă stare a ciclului de funcţionare conectată la starea iniţială 3. Codificarea stărilor automatului astfel încât pentru n stări stabile sunt necesare p

variabile astfel încât np ≥2 4. Se reprezintă diagrama stărilor la momentul t, variabilele diagramei V-K fiind cele p

variabile de stare. 5. Utilizând diagrama stărilor la momentul t şi a analizei tranziţiilor în organigramă se

determină pentru fiecare variabilă de stare cele p diagrame ale stării următoare (momentul t+1)

Diagrama V-K a unei variabile de stare Qi la momentul t+1 se obţine astfel: - se utilizează diagrama stărilor la momentul t şi presupunem că automatul se află în

starea Yi, considerată stare prezentă - se urmăreşte valoarea binară a variabilei Qi dobândită în urma tranziţiei automatului

din starea Yi în starea următoare, condiţionată de variabila de intrare, directă sau negată, dacă există şi se înscrie în compartimentul stării prezente Yi din diagrama la momentul t.

Expresiile logice ale funcţiilor de ieşire se determină din diagrama stărilor la momentul t înscriind „1” logic asociat cu condiţia directă sau negată, dacă există, în compartimentul corespunzător stării în care este generată funcţia de ieşire.

6. Determinarea expresiilor logice a intrărilor bistabilelor de stare J-K sau D din cele p diagrame a stărilor automatului la momentul t+1

7. Determinarea expresiilor logice a funcţiilor de ieşire 8. Implementarea schemei logice obţinute a automatului secvenţial sincron cu circuite

integrate Observaţie: Deoarece în continuare se vor utiliza diagramele VID (variabile

înglobate), se exemplifică determinarea funcţiilor de ieşire: a) se consideră toate variabilele înglobate „0” şi se formează inele cu „1”-urile din

diagramă b) se consideră toate „1”-urile indiferente (X) şi se formează pe rând inele cu câte o

variabilă înglobată, celelalte fiind „0” c) se realizează disjuncţia termenilor obţinuţi la punctul a şi b

Exemplu:

= +

Page 54: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-4

0 1 3 2

4 5 7 6

Q1Q0Q2

PAS x 0 x

0 x 0 x

00 01 11 10

0

1 +

0 1 3 2

4 5 7 6

Q1Q0Q2

0 x LIN x

0 x 0 x

00 01 11 10

0

1 =

212010 QQLINQQPASQQ ⋅⋅+⋅⋅+⋅= (6.1)

Structura unui automat secvenţial sincron realizat cu automate elementare: bistabile J-

K, D are următoarea configuraţie:

Figura 6.2 Structura bloc a unui circuit secvenţial sincron cu bistabile J-K, D

Circuite secvenţiale, clasificări, modalităţi de specificare a comportării funcţionale a

unui circuit secvenţial. Spre deosebire de circuitele combinaţionale, la care valoarea binară a funcţiilor de ieşire într-un anumit moment depinde doar de valoarea binară a intrărilor în acel moment, circuitele secvenţiale conţin şi un element de memorare în care se memorează stările următoare ale circuitului care devin apoi stări prezente.

Funcţiile de ieşire la acest circuit depinde de intrări şi de starea circuitului în momentul inspecţiei. Schema logică a unui circuit secvenţial este caracterizată de prezenţa legăturilor inverse de la ieşire spre intrarea circuitului.

Elementele de memorie folosite în circuitele secvenţiale pentru memorarea stării curente sunt principial de două tipuri:

a) elemente de memorie de tip linie de întârziere b) elemente de memorie comandate Elementele de memorie tip linie de întârziere pot fi constituite din elementele

circuitului: porţi logice şi firele de conexiune. La circuitele secvenţiale cu elemente de memorie tip linie de întârziere, starea următoare a circuitului a circuitului, apărută ca urmare a modificării variabilelor de intrare si introdusă la intrarea liniei de întârziere, devine automat stare prezentă la ieşirea liniei, după un timp Δt, determinat de caracteristica liniei de întârziere.

Acest mod de funcţionare se numeşte fundamental sau asincron. La aceste circuite, intervalele de timp în care se pot modifica valorile intrărilor este arbitrară iar legăturile inverse între ieşirea şi intrarea circuitului sunt permanente. Frecventa de modificare a intrarilor nu trebuie sa depaseasca o limita superioara impusa de timpul de intarziere al elementelor de memorie. Modelul unui circuit secvenţial asincron este reprezentat în fig. 6.3.

Page 55: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-5

Fig. 6.3 Circuit secvenţial asincron Expresiile funcţiilor de ieşire si a stării următoare sunt:

),.....,,,,......,,(

),.....,,,,......,,(

),.....,,,,......,,(

),.....,,,,......,,(

2121

212111

2121

212111

tp

tttn

ttp

ttp

tp

tttn

tttt

tp

tttn

ttm

tm

tp

tttn

ttt

yyyxxxfy

yyyxxxfy

yyyxxxfz

yyyxxxfz

=

=

=

=

Δ+

Δ+

M

M

(6.2)

În care t

ntt xxx ,......,, 21 reprezintă cele n intrări principale iar t

ptt yyy ,......,, 21

reprezintă p intrări secundare. Dacă elementul de memorie folosit este astfel construit încât memorarea stării

următoare, care va deveni stare prezentă să se realizeze sub comanda unui tren de impulsuri de sincronizare, circuitul secvenţial funcţionează în modul sincron.

În cazul circuitelor secvenţiale sincrone, frecvenţa impulsurilor de sincronizare trebuie corelată cu timpul de răspuns al circuitului, momentul inspecţiei poate fi identificat cu al n-lea impuls de sincronizare, iar legăturile inverse sunt active doar pe durata impulsului de sincronizare (tact).

Modelul unui astfel de circuit este reprezentat în fig. 6.3

Page 56: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-6

Fig 6.3

Expresiile funcţiilor de ieşire şi ale stărilor următoare sunt:

),.....,,,,......,,(

),.....,,,,......,,(

),.....,,,,......,,(

),.....,,,,......,,(

21211

212111

1

2121

212111

np

nnnn

nnp

np

np

nnnn

nnn

np

nnnn

nnm

nm

np

nnnn

nnn

yyyxxxfy

yyyxxxfy

yyyxxxfz

yyyxxxfz

=

=

=

=

+

+

M

M

(6.3)

Modelul matematic al circuitului secvenţial. Un circuit secvenţial cu n intrări binare X1,

X2,...Xn, m ieşiri binare Z1, Z2.....Zm si p variabile binare de stare Y1, Y2.....Yp, poate avea o mulţime a intrărilor X ={X1, X2....X2

n} o mulţime a ieşirilor Z ={Z1, Z2....Z2m} şi o mulţime

a stărilor Y ={Y1, Y2....Y2p} unde Xi pentru i=1 până la 2n sunt n-uplurile de valori ale

variabilelor de intrare X1, X2....Xn, Zj pentru j=1 până la 2m sunt m-uplurile de valori ale variabilelor de ieşire Z1, Z2....Zm, iar Yk pentru k=1 până la 2p sunt p-uplurile de valori ale variabilelor de stare Y1, Y2....Yp

Comportarea unui circuit secvenţial respectiv obţinerea secvenţei de ieşiri corespondentă unei anumite secvenţe de intrări este dată de starea iniţială a circuitului , Y0, de funcţia ieşirii λ:{X×Y}→ Z şi funcţia stării următoare (a tranziţiilor) δ:{X×Y}→Y.

Daca funcţiile λ şi δ sunt complet definite, circuitul secvenţial se numeşte complet definit, iar dacă funcţiile λ sau δ sau ambele sunt incomplet definite, circuitul este incomplet definit

Circuitele secvenţiale MEALY sunt caracterizate prin faptul că starea următoare şi ieşirea la un moment dat depind de starea prezentă si de intrarea prezentă; mulţimile X , Y , Z , starea iniţială Y0, funcţiile λ şi δ reprezintă modelul matematic al circuitului Mealy

Circuitele secvenţiale MOORE sunt caracterizate prin faptul că ieşirea depinde numai de starea circuitului. Funcţia ieşirii λ*: Y →Z este definită în mulţimea stărilor Y cu valori în mulţimea ieşirilor Z .

Modelele matematice ale circuitelor secvenţiale se numesc in teoria comutaţiilor automate finite.

Page 57: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-7

Modelele Mealy şi Moore sunt utilizate atât pentru circuitele secvenţiale asincrone cât şi sincrone dar cu unele particularităţi în funcţionare şi anume:

- în cazul circuitelor asincrone, deoarece timpul de răspuns al circuitului combinaţional este mai mic decât timpul de întârziere al elementului de memorie, ieşirea circuitelor de tip Mealy se obţine odată cu modificarea intrărilor principale şi este corectă până la modificarea intrărilor secundare (variabilele de stare) în timp ce la circuitele de tip Moore ieşirea corespondentă unor intrări se obţine după timpul de întârziere al elementelor de memorie, odată cu starea următoare şi se păstrează pe durata acestei întârzieri;

- la circuitele sincrone ieşirea circuitelor Mealy este corectă numai pe durata impulsului de sincronizare, în timp ce la circuitele de tip Moore ieşirea se obţine după impulsul de tact, menţinându-se până la impulsul de tact următor.

Un alt mod de descriere a comportării unui circuit secvenţial îl reprezintă diagrama stărilor.

Diagrama stărilor este un graf orientat având numărul de noduri mai mic sau egal cu numărul elementelor din mulţimea stărilor Y , iar dintr-un nod pleacă un număr de arce mai mic sau egal cu cel al elementelor mulţimii intrărilor, X

Pentru circuite de tip Mealy, în diagrama stărilor, fiecare nod se notează cu simbolul stării pe care o reprezintă, iar pe arcul care pleacă din nod se notează un raport care la numărător indică intrarea care a generat tranziţia circuitului indicată de săgeata arcului, iar la numitor ieşirea generată în timpul tranziţiei.

Starea iniţială se marchează printr-o săgeată aplicată nodului corespondent

Exemplu:

La circuitele secvenţiale de tip Moore în nodurile diagramei de stări se notează simbolul stării corespondente şi ieşirile (sub simbolul stării) iar pe arcele care pleacă din nod se notează intrarea care a generat tranziţia

Exemplu:

Tabelul tranziţiilor reprezintă un alt mijloc de descriere al comportării unui circuit secvenţial. Pentru modelul Mealy tabelul tranziţiilor conţine la începutul rândurilor, stările prezente ale circuitului iar la începutul coloanelor intrările circuitului. Elementele din tabel aflate la intersecţia unei linii cu o coloană sunt reprezentate printr-un raport având la numărător starea următoare iar la numitor, ieşirea

Page 58: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-8

Exemplu: Stare

prezentă Stare următoare/ieşire

X0 X1

Y0 Y0/1 Y1/0 Y1 Y1/0 Y0/1

Comportarea circuitelor de tip Moore se descrie printr-un tabel al tranziţiilor care are

în cap de rând, stările prezente ale circuitului iar la început de coloană, intrările circuitului şi o coloană cu ieşirile corespunzătoare stărilor; elementele din tabel conţin starea următoare.

Exemplu:

Stare prezentă

Stare următoare Ieşire X0 X1 Y0 Y0 Y1 1 Y1 Y1 Y0 0

Aplicaţie rezolvată: să se reprezinte prin diagrama stărilor circuitele Mealy si Moore

descrise prin tabelul tranziţiilor de mai jos: 1. Circuit Mealy

Stare prezentă

Stare următoare/ieşire X0 X1 X2 X3

Y0 Y0/0 Y0/1 Y1/0 Y2/0 Y1 Y2/1 Y0/1 Y1/0 Y1/1 Y2 Y0/0 Y1/1 Y2/0 Y2/1

2. Circuit Moore

Soluţie: 1.

Stare prezentă

Stare următoare Ieşire X0 X1 Y0 Y2 Y1 0 Y1 Y0 Y1 0 Y2 Y2 Y1 1

Page 59: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-9

2.

Transformarea diagramei de stări a modelului Moore în diagramă de stări a modelului

Mealy se realizează transferând ieşirile din nodurile modelului Moore pe arcele ce conduc spre nodul respectiv.

Exemplu:

Transformarea diagramei de stări a modelului Mealy în diagramă de stări a modelului

Moore impune ca fiecărei stări din modelul Mealy să îi corespundă atâtea stări în modelul Moore echivalent, câte ieşiri diferite generează modelul Mealy în timpul tranziţiei spre starea respectivă, ieşirile fiind generate in noile stări ale modelului MOORE.

Exemplu:

Page 60: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-10

Obiectivul experimentului: Studiul circuitelor secvenţiale si a modalităţilor de descriere a comportamentului acestor circuite

Desfăşurarea experimentului: 1. Să se descrie prin tabelul tranziţiilor comportarea circuitelor secvenţiale:

a)

b)

Y1Y0/0

Y2/0Y3/1

X0

X3

X1

X2

X1X3

X2

2. Să se experimenteze funcţionarea în modul fundamental şi sincron a circuitelor secvenţiale:

a) b)

utilizând circuite integrate SN7400 (porţi ŞI-NU cu 2 intrări)

Page 61: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-11

Circuitele logice secvenţiale care pot parcurge un anumit număr de stări în ordinea determinată de semnalele de comandă externe se mai numesc automate secvenţiale. Ele sunt destinate să elaboreze diverse semnale de ieşire, în funcţie de condiţiile externe reflectate de starea în care se află la un moment dat. Automatele pot fi reprezentate prin:

- tabele de tranziţie; - grafuri orientate şi marcate; - organigrame; - tabele de adevăr. Structura fizică a unui automat finit în varianta elementară este dată în figura 6.4:

Figura 6.4 Structura fizică a unui automat finit

Proiectarea automatelor. Un mod performant de implementare a automatelor presupune utilizarea registrelor de JK–uri. Trecerea de la un automat definit pe registre (realizate cu bistabili de tip D) la unul ce foloseşte JK -uri se face utilizând tabele de tranziţie. Un astfel de tabel este următorul:

Q Q+ J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0

O problemă esenţială în proiectarea automatelor finite elementare o constituie

atribuirea codurilor de stare. Teoria permite mai multe codificări ale stărilor unui automat, rezultând automate identice la borne. Codificarea stărilor unui automat se poate face:

a. Aplicarea principiului variaţiei minime presupune o astfel de codificare încât stările succesive să difere printr-un număr cât mai mic de biţi.

b. Principiul dependenţei reduse impune ca stările departajate de un test să difere între ele printr-un număr cât mai mic de biţi.

Pentru a evita tranziţiile parazite de stare, determinate de comutarea unei singure variabile asincrone, este obligatoriu ca nu mai mult de un bit de stare să depindă de acea variabilă asincronă în orice combinaţie a variabilelor sincrone de intrare.

Pentru implementarea cu numărător vor fi folosite numărătoare presetabile sincrone. Codificarea stărilor trebuie realizată astfel încât un număr cât mai mare de tranziţii să se facă prin numărare.

CLC

R

Q

X

Y

Page 62: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-12

Aplicaţia 6.1. În organigrama din figura 6.5.a este descrisă funcţionarea unui semiautomat cu intrarea A sincronizată de impulsul de tact. Să se implementeze în trei variante semiautomatul, utilizând pe buclă bistabili de tip D, de tip JK şi de tip T.

Soluţie. Numărul stărilor semiautomatului impune codificarea cu doi biţi. Vom nota cei doi biţi cu Q1 şi Q2. Soluţia presupune schema bloc din figura 6.5.b, unde R este un registru acţionat pe frontul impulsului de ceas. I. Prima variantă de implementare presupune stările: q0=00, q1=10, q2=01, q3=11. Funcţia de tranziţie a semiautomatului este dată în tabelul de mai jos, din care se pot extrage diagramele asociate celor 2 ieşiri ale CLC-ului (fig.6.5.c) în cazul în care R este format din bistabili de tip D. Cele 2 funcţii logice rezultate sunt:

⎩⎨⎧

⋅+⋅+⋅=⋅+=

010110

0111

QQQQAQDQQAQD (6.4)

Tabelul 1 Q1 Q0 A D1= Q1

+ D0= Q0+

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

1

q0

q1

q2

q3

00 (00) [00]

10 (01) [01]

01 (10) [11]

11 (11) [10]

0

0 1

A

A

Fig.6.5.a

CLC

R

A

Q1 Q0

CK

(4) 2

Fig.6.5.b

Page 63: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-13

Pornind de la diagrama precedentă putem completa diagramele ce descriu funcţiile de ieşire ale CLC -ului pentru registrul cu JK-uri. Tranziţiile bistabilului JK între 2 stări cunoscute pot fi comandate astfel:

Q Q+ J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0

Tabelul 2

Q1 Q0 A Q+1 Q+

0 J1 K1 J0 K0 T1 T0

0 0 0 1 0 1 X 0 X 1 0 0 0 1 1 1 1 X 1 X 1 1 0 1 0 0 1 0 X X 0 0 0 0 1 1 1 1 1 X X 0 1 0 1 0 0 0 1 X 1 1 X 1 1 1 0 1 0 1 X 1 1 X 1 1 1 1 0 0 0 X 1 X 1 1 1 1 1 1 0 0 X 1 X 1 1 1

Funcţia CLC pentru registru va fi dată de un sistem de 4 ecuaţii ce rezultă din următoarele diagrame:

Funcţiile obţinute vor fi următoarele:

⎪⎪⎩

⎪⎪⎨

=+=

=+=

10

10

1

01

QKQAJ

1KQAJ

(6.5)

00 01 11 10

0 1 0 X X 1 1 1 X X

Q]Q0 A

J1

00 01 11 10

0 X X 1 1 1 X X 1 1

Q]Q0 A

K1

00 01 11 10

0 X 0 1 X 1 X 0 1 X

Q]Q0 A

K0

00 01 11 10

0 0 X X 1 1 1 X X 1

Q]Q0 A

J0

Fig.6.5.c

Q]Q0

A 00 01 11 10 0 1 0 0 0 1 1 1 0 0

Q]Q0

A 00 01 11 10 0 0 1 0 1 1 1 1 0 1

Page 64: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-14

în mod evident mai uşor de implementat decât cele două funcţii D1 şi D0. Utilizând acelaşi tabel 2 se pot concepe diagramele ce descriu CLC -ul în cazul registrului format din bistabili de tip T. Se va ţine cont de faptul ca tranziţiile în cazul bistabilului de tip T sunt:

Q Q+ T 0 0 0 0 1 1 1 0 1 1 1 0

Conform acestei reguli vor rezulta diagramele:

Funcţiile obţinute sunt:

⎩⎨⎧

+=++=

010

011

QAQTQQAT (6.6)

II. Vom adopta pentru stări o nouă variantă (marcată în paranteze rotunde pe organigramă), după cum urmează: q0=00, q1=01, q2=10, q3=11. Vor rezulta printr-un procedeu similar următoarele trei sisteme de ecuaţii pentru cele trei variante cerute:

⎩⎨⎧

+=++=

0100

01101

QQAQDQQAQAQD (6.7)

⎪⎪⎩

⎪⎪⎨

=+=

=+=

1KQAJ

QKQAJ

0

10

01

01

(6.8)

⎩⎨⎧

++=+=

010

011

QAQTQQAT (6.9)

Se observă că între complexitatea celor trei soluţii se regăseşte aceeaşi relaţie. Este din

nou evidentă inutilitatea folosirii registrelor de tip T, deoarece abordarea automatelor finite ca sisteme de ordinul trei este mai eficientă prin aplicarea soluţiei cu registre de tip JK. III. Vom codifica stările (notate în organigramă în paranteze drepte) după cum urmează: q0=00, q1=01, q2=11, q3=10. Va rezulta următorul sistem de ecuaţii:

00 01 11 10

0 1 0 1 1 1 1 1 1 1

Q]Q0 A

T1

00 01 11 10

0 0 0 1 1 1 1 0 1 1

Q]Q0 A

T0

Page 65: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-15

⎩⎨⎧

++⋅=+=

00110

011

QAQQAQDQAQD (6.10)

⎪⎪⎩

⎪⎪⎨

=⋅=

=+=

10

10

01

01

AQKQAJ

QKQAJ

(6.11)

⎩⎨⎧

+⋅⋅=+=

AQQAQQTQQQAT

01010

1011 (6.12)

Se observă că în acest caz ecuaţiile rezultate sunt mai complexe pentru implementarea

cu JK -uri. Pentru D-uri am obţinut o complexitate similară celei anterioare.

Concluzie. Vom opta pentru implementarea cu JK -uri acelei de-a doua soluţii. Ecuaţiile au fost transcrise după cum urmează:

⎪⎪

⎪⎪

==

=⋅=

1KQAJ

QKQAJ

0

10

01

01

(6.13)

Circuitul rezultat este:

Aplicaţia 6.2. Să se implementeze semiautomatul descris de organigrama din

figura 2, într-o variantă optimă, cu: a. bistabili de tip D; b. bistabili de tip JK.

Page 66: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-16

Soluţie Propunem trei modalităţi de codificare a stărilor semiautomatului enunţat. a. Tabela de tranziţii este:

Q1 Q0 A Q+1 Q+

0 J1 K1 J0 K0 D1 D0

0 0 0 0 1 0 X 1 X 0 1 0 0 1 1 0 1 X 0 X 1 0 0 1 0 0 0 0 X X 1 0 0 0 1 1 1 1 1 X X 0 1 1 1 0 0 1 1 X 0 1 X 1 1 1 0 1 0 1 X 1 1 X 0 1 1 1 0 1 0 X 0 X 1 1 0 1 1 1 1 0 X 0 X 1 1 0

Implementarea cu registre este definită de diagramele Karnaugh din figura de mai jos.

Vor rezulta următoarele sisteme de ecuaţii:

⎩⎨⎧

++=++=

AQQQQAQDAQQQAQD

010100

10111 (6.14)

În mod asemănător se rezolvă şi pentru celelalte codificări ale stărilor, rezultând următorul sistem de ecuaţii:

⎩⎨⎧

+=++=

AQQ)D(AQQQAQ)D(

100

10111 (6.15)

⎩⎨⎧

++=+=

01100

0111

QQAQAQ]D[QQAQ]D[ (6.16)

00 01 11 10

0 0 0 1 1 1 1 1 1 0

Q]Q0 A

D1

00 01 11 10

0 1 0 0 1 1 0 1 0 1

Q]Q0 A

D0

01 (01) [00]

q3

00 (00) [11]

q0

q1 q2

0 1

A

A

A

10 (11) [01]

11 (10) [10]

0 0 1 1

Page 67: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-17

⎩⎨⎧

+=++=+=

AQAQQQAQAQ]D[QAQ]D[

1001100

101 (6.17)

Ultima variantă este cea mai convenabilă. Pentru implementarea acesteia transcriem

ecuaţiile sub forma:

⎪⎩

⎪⎨⎧

+=

+=

AQAQ]D[QAQ]D[

100

101 (6.18)

Implementarea fiind:

b. Pentru implementarea automatului utilizând bistabili de tip JK procedeul este

asemănător cu cel de la punctul a. Diagramele Karnaugh corespunzătoare primei codificări sunt:

Astfel încât, ecuaţiile vor fi de forma:

00 01 11 10

0 0 0 X X 1 1 1 X X

Q]Q0 A

J1

00 01 11 10

0 1 X X 1 1 0 X X 1

Q]Q0 A

J0

00 01 11 10

0 X X 0 0 1 X X 0 1

Q]Q0 A

K1

00 01 11 10

0 X 1 1 X 1 X 0 1 X

Q]Q0 A

K0

Page 68: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-18

⎪⎩

⎪⎨

+====

AQKJAQK

AJ

100

01

1

(6.19)

În mod asemănător vor rezulta pentru celelalte codificări ecuaţiile:

⎪⎪⎩

⎪⎪⎨

+====

10

0

01

1

QA)K(1)J(

AQ)K(A)J(

(6.20)

⎪⎪⎩

⎪⎪⎨

+=+=

=+=

10

10

1

01

QA]K[QA]J[

1]K[QA]J[

(6.21)

Din aceste ecuaţii se observă că ultima variantă are complexitate mărită, iar între primele două neexistând deosebiri prea mari. De aceea, pentru implementare vom opta pentru a doua variantă. Transcriind ecuaţiile vom obţine:

⎪⎪⎩

⎪⎪⎨

===

=

10

0

01

1

AQ)K(1)J(

AQ)K(A)J(

(6.22)

Implementarea este:

Variabila A* este sincronizată cu un bistabil JK folosit ca D ( JK = )

Page 69: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-19

Aplicaţia 6.3. Pentru semiautomatul descris de organigrama din figura 3, se cere: a. implementarea cu bistabili de tip D; b. implementarea cu bistabili de tip JK.

Aplicaţia 6.4. Să se proiecteze automatul definit de graful de tranziţii din figura următoare.

a. cu bistabili D; b. cu bistabili JK.

Aplicaţia 6.5. Să se proiecteze un automat cu graful de tranziţii următor: având proprietatea că pentru orice stare neaparţinând ciclului, stare ce poate apare în momentul iniţial sau ca urmare a unor perturbaţii în funcţionare, se reintră în ciclul de numărare. Aplicaţia 6.6. Să se proiecteze un sistem logic secvenţial cu proprietăţile: - pentru X = 0 generează la ieşire numerele de la 0 la 6 în ordine crescătoare; - pentru X = 1 generează numerele de la 6 la 0 ; - ieşirea Y este 1 pentru fiecare configuraţie care este multiplu de 3.

0

0

1

1

q0

q1

q2

q3

00 (11) 01

(10)

10 (00) 11

(01)

A

A

0 8 12 14 15 13 9 1

5

11

10

4

7 2

36

0 1 2 3 4 5 6 7 8 9

15 14 13 12 11 10

Page 70: Gabriel Predusca - Analiza Si Sinteza Circuitelor Numerice - Curs

CURS 6 – Implementarea automatelor finite elementare

ŞL.drd.ing. PREDUŞCĂ GABRIEL

6-20

Aplicaţia 6.7. Să se proiecteze un automat având tranziţiile definite de: Aplicaţia 6.8. Pentru semiautomatul descris de organigrama din figura de mai jos, se cere implementarea cu bistabili de tip JK. Intrare A este sincronizată cu ceasul semiautomatului.

Aplicaţia 6.9. Să se implementeze cu bistabili JK un automat care pentru X = 0 trece prin stările ale căror coduri binare corespund numerelor 1, 3, 5 şi 7 în ordine crescătoare, iar pentru X=1, trece prin aceleaşi stări în ordine descrescătoare. Aplicaţia 6.10. Să se implementeze cu bistabili JK un automat care pentru X = 0 trece prin stările ale căror coduri binare corespund numerelor 1, 3, 5 şi 7 în ordine crescătoare, iar pentru X=1, trece prin stările ale căror coduri binare corespund numerelor 0, 2, 4 şi 6. Aplicaţia 6.11. Să se proiecteze automatul descris de graful de tranziţii de mai jos: Aplicaţia 6.12. Să se proiecteze automatul definit de graful de următor: a. cu bistabili D; b. cu bistabili JK.

q0

q1

q2 q3

q4

000

001

010 011

100

A

A

40 1 3 2 6 7 5

0 8 12 7 314 15 1

6 11 5 10 413 9 2

9 8 7 6 5 4 3 2 1 0

10

11 13

12

15

14