curs analiza si sinteza dispozitivelor numerice

150
  MINISTERUL EDUCAŢIEI ŞI CERCETĂRII UNIVERSITATEA DIN BACĂU FACULTATEA DE INGINERIE NALIZA şi 10111011010101000100100101110110110 11111000111010101001110101 10100100011110000000110101011 10101001110001010010101 010010001010000101000101010001001010010 101101001001010001001010010001010 10010010101001010001 10001001010010101000101001010 SINTEZA  DISPOZITIVELOR NUMERICE EDITURA ALMA MATER

Upload: fleseru-alexandru

Post on 17-Jul-2015

1.012 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 1/150

 

MINISTERUL EDUCAŢIEI ŞI CERCETĂRII

UNIVERSITATEA DIN BACĂU FACULTATEA DE INGINERIE 

NALIZA şi

10111011010101000100100101110110110

11111000111010101001110101

10100100011110000000110101011

10101001110001010010101

010010001010000101000101010001001010010

101101001001010001001010010001010

10010010101001010001

10001001010010101000101001010 SINTEZA  

DISPOZITIVELOR 

NUMERICE

EDITURA ALMA MATER

Page 2: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 2/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 3

CUPRINS

 paginaCAPITOLUL 0 (zero)

Elemente de algebră binară (algebră logică)

0.1. Introducere 50.2. Axiomele şi teoremele algebrei binare 60.3. Funcţii binare 80.4. Formele canonice ale funcţiilor logice 12 

CAPITOLUL 1

Analiza şi sinteza circuitelor logice combinaţionale

1.1. Introducere 171.2. Elemente de analiză a circuitelor logice combinaţionale 181.3. Sinteza circuitelor logice combinaţionale 271.4. Minimizarea funcţiilor logice combinaţionale 291.4.1. Metoda minimizarii pe baza axiomelor si teoremelor algebrei

  booleene 1.4.2. Metoda diagramelor Karnaugh 291.4.3. Metoda Quine-Mc Cluskey 371.4.4. Minimizarea funcţiilor logice combinaţionale incomplet definite 42

1.4.5. Minimizarea sistemelor de funcţii booleene 431.5. Apariţia hazardului 511.5.1. Eliminarea hazardului cu ajutorul diagramelor Karnaugh 531.6. Analiza circuitelor logice combinaţionale cu ajutorul pachetului de

  programe OrCAD 1.6.1. Proiectarea schemei electronice cu ajutorul programului OrCAD

CAPTURE 551.6.1.1. Începerea unui proiect nou 551.6.1.2. Plasarea componentelor în schema electronică 571.6.1.3. Conectarea componentelor schemei electronice 591.6.1.4. Verificarea corectitudinii realizării schemei electrice 60

1.6.1.5. Plasarea punctelor de test pe schema electronică 611.6.1.6. Stabilirea profilului de simulare 611.6.1.7. Simularea circuitului 621.7. Analiza circuitelor logice combinaţionale cu ajutorul limbajelor 

  pentru descrierea structurii hardware (HDL) 621.7.1. Introducere 621.7.2. Limbajul Verilog HDL 671.7.2.1. Structura unui program Verilog HDL 671.7.2.2. Testarea programelor Verilog HDL 871.7.3. Limbajul VHDL 1001.7.3.1. Structura unui program VHDL 100

1.7.3.2. Testarea programelor VHDL 103

Page 3: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 3/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 4

  CAPITOLUL 2

Analiza şi sinteza circuitelor logice secvenţiale

2.1. Introducere 108

2.2. Tabelul tranziţiilor şi al ieşirilor 1112.3. Graful tranziţiilor 1172.4. Alte modele ale circuitelor secvenţiale 1182.5. Analiza circuitelor logice secvenţiale 1212.6. Sinteza circuitelor logice secvenţiale 1232.7. Circuite basculante bistabile folosite ca elemente de memorie

 pentru circuitele secvenţiale 1232.7.1. Introducere 1232.7.2. Tabelele caracteristice, tabelele excitaţiilor şi ecuaţiile intr ărilor 1242.8. Exemplificarea sintezei unui circuit logic secvenţial 1332.9. Analiza circuitelor logice secvenţiale asistată de calculator 1402.9.1. Simularea circuitelor logice secvenţiale cu ajutorul aplicaţiei

OrCAD 1402.9.2. Simularea circuitelor logice secvenţiale cu ajutorul Verilog HDL 1422.9.3. Simularea circuitelor logice secvenţiale cu ajutorul VHDL 143 

SeminarSeminar 1 145Seminar 2 147Seminar 3Seminar 4

Seminar 5Seminar 6Seminar 7

LaboratorLaborator 1Laborator 2Laborator 3Laborator 4Laborator 5Laborator 6

Laborator 7Laborator 8Laborator 9Laborator 10Laborator 11Laborator 12Laborator 13Laborator 14

Bibliografie

Page 4: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 4/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 5

 

CAPITOLUL 0 (zero)

Elemente de algebră binară (algebră logică)

0.1. Introducere

Primul capitol al acestui curs este capitolul zero şi nu capitolul unu aşa cum seobişnuieşte. Numărul zero a fost folosit din mai multe motive: în primul rând pentru cainformaţia din acest capitol reprezintă o recapitulare a cunoştiinţelor dobândite la altecursuri şi el reaminteşte doar noţiuni ce vor fi folosite şi aici. Cele câteva elemente alealgebrei binare prezentate, au doar scopul să limpezească noţiunile ce apar în capitoleleurmătoare. În al doilea rând, folosirea cifrei zero pentru numerotarea capitolului este

 justificată  şi de faptul că această cifr ă reprezintă primul simbol din orice baza denumeraţie. Ultimul motiv, şi cel mai important, este determinat de faptul că în tehnicanumerică primul indice are valoarea zero şi deci este momentul să ne obişnuim cunumerotarea: 0, 1, 2, … .

Algebra logică numită şi calcul propoziţional, operează cu propoziţii, despre careare sens să afirmăm că sunt adevărate sau false. Din însăşi definirea propoziţiilor rezultă că o propoziţie poate fi adevărată sau falsă. Propoziţiile pot fi simple sau copmuse. Celecompuse se obţin ca rezultat al legăturii propoziţiilor simple, prin intermediul unor conective logice. Adevărul sau falsitatea unei propoziţii compuse este în funcţie devaloarea propoziţiilor simple din care se compune şi de tipul legăturii logice.

În logica simbolică se poate face abstracţie de sensul propoziţiilor, operând curelaţiile de valoare. Convenim ca unei propoziţii adevărate să-i atribuim valoarea binar ă 

unu (1), iar falsitatea acesteia să o notăm cu valoarea binar ă zero (0).Propoziţia compusă a cărei valoare depinde de valorile propoziţiilor simple, putândavea două valori, se numeşte funcţie logică sau binar ă.

Funcţia compusă este complet definită cu ajutorul unui tabel finit în care se trecvalorile funcţiei în corespondenţă cu valorile propoziţiilor simple considerateindependente. O astfel de exprimare a funcţiei compuse este cunoscută sub numele de tabelde adevăr.

Calculul propoziţiilor poate fi extrapolat în tehnică la sistemele automate careutilizează elemente de comutaţie cu două stări. Acestora le putem atribui relaţii de valoare(1 sau 0) binar ă corespunzătoare adevărului (1) sau falsităţii (0) propoziţiilor.

Algebra Boole operează pe mulţimea binar ă:

Page 5: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 5/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 6

{ }1,0x/xB ==   (0.1)

 Pe această mulţime sunt definite trei legi de compoziţie:o complementarea (negaţia), variabila negată “x” o vom nota cu  x ;o disjuncţia, pe care o vom nota cu +;o conjuncţia, pe care o vom nota cu *;

Tabelele de adevăr pentru aceste trei legi de compoziţie sunt (TABELUL 0.1):

x  x  

0 1

1 0

Complementarea(negaţia)

y x x+y

0 0 0

0 1 1

1 0 1

1 1 1Disjuncţia

y x x+y

0 0 0

0 1 0

1 0 0

1 1 1

Conjuncţia

Din tabelele de adevăr prezentate mai sus se constată că operaţia de disjuncţie este similar ă operaţiei de adunare iar cea de conjuncţie cu cea de înmulţire.

O altă observaţie care trebuie f ăcută este faptul că toate relaţiile definite pemulţimea B sunt duale în sensul că se obţin relaţii echivalente dacă schimbăm operaţia dedisjuncţie cu cea de conjuncţie şi “1” în “0” (variabilele directe cu cele negate iar celenegate cu variabilele directe).

0.2. Axiomele şi teoremele algebrei binare

În algebra binar ă sunt valabile 6 axiome şi 5 teoreme de bază. Datorită proprietăţii

de dualitate, atât axiomele cât şi teoremele au două forme de exprimare aşa cum se va ar ătamai departe.

Axiome:1. Mulţimea B este închisă în raport cu operatorii + şi *.

Byx,By*xatunciBy,Bxdaca ∈+∈∈∈ (0.2)2. Asociativitatea.

z)yx()zy(x,z*)y*x()z*y(*xatunci

Bz,By,Bxdaca

++=++=

∈∈∈  (0.3)

3. Comutativitatea.xyyx,x*yy*xatunciBy,Bxdaca +=+=∈∈ (0.4)

4. Distributivitatea.

)zx(*)yx(z*yx,z*xy*x)zy(*xatunci

Bz,By,Bxdaca

++=++=+

∈∈∈  (0.5)

5. Existenţa elementului neutru.xx00x,xx*11*xatunciBxdaca =+=+==∈ (0.6)

6. Existenţa complementului.1xx,0x*xatunciBxdaca =+=∈ (0.7)

  Teoreme:1. Idempotenţa sau tautologia.

xxx,xx*xatunciBxdaca =+=∈ (0.8)

Page 6: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 6/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 7

2. Legile lui unu şi zero.11x,00*xatunciBxdaca =+=∈ (0.9)

3. Dubla negaţie sau involuţia.0xatunciBxdaca =∈   (0.10)

4. Absorbţia.xy*xx,x)yx(*xatunciBy,Bxdaca =+=+∈∈ (0.11)

5. Teorema De Morgan. 

y*xyx,yxy*xatunciBy,Bxdaca =++=∈∈   (0.12)

Verificarea afirmaţiilor f ăcute poate fi realizată prin utilizarea tabelelor de adevăr.De exemplu vom ar ăta în continuare faptul că cele două relaţii (0.5) sunt echivalente.Pentru aceasta vom construi un tabel în care se trec toate valorile posibile pentruvariabilele funcţiei, eventual termenii intermediari care să permită determinarea mai uşoar ă a rezultatului final şi funcţia de determinat.

Tabelul de adevăr pentru funcţia x(y+z) (TABELUL 0.2):

z y x (y+z) x*(y+z)0 0 0 0 00 0 1 0 00 1 0 1 00 1 1 1 11 0 0 1 01 0 1 1 11 1 0 1 01 1 1 1 1

Tabelul de adevăr pentru funcţia x*y+x*z (TABELUL 0.3):

z y x x*y x*z x*y+x*z0 0 0 0 0 00 0 1 0 0 00 1 0 0 0 00 1 1 1 0 11 0 0 0 0 01 0 1 0 1 11 1 0 0 0 01 1 1 1 1 1

Din studiul tabelelor 0.2 şi 0.3 se constată echivalenţa celor două funcţii ceea ce justifică prima egalitate din ecuaţia (0.5).

Tabelul de adevăr pentru funcţia x+y*z (TABELUL 0.4):z y X y*z x+y*z

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

Page 7: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 7/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 8

Tabelul de adevăr pentru funcţia (x+y)*(x+z) (TABELUL 0.5):z y x (x+y) (x+z) (x+y)*(x+z)

0 0 0 0 0 00 0 1 1 1 1

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

Din studiul tabelelor 0.4 şi 0.5 se constată echivalenţa celor două funcţii ceea ce justifică a doua egalitate din ecuaţia (0.5).

De asemenea, dacă într-unul din tabelele 0.2 sau 0.3 se înlocuieşte valoarea “0” cu“1” şi valoarea “1” cu “0” se obţine aceeaşi funcţie cu cea reprezentată în tabelele 0.4 şi

0.5, şi reciproc ceea ce arată proprietatea de dualitate enunţată mai sus.O mulţime B dotată cu legile de compoziţie "*", respectiv "+" care satisfaceaxiomele 1-6, se numeşte latice distributivă. Laticea distributivă care admite teoremele 1-5se numeşte algebr ă booleană.

0.3. Funcţii binare

Aşa cum s-a ar ătat în paragraful anterior, variabilele independente pot avea numaidouă valori: “0” şi “1”.

O funcţie binar ă poate avea un singur termen, mai mulţi termeni apar ţinândmulţimii termenilor ce se pot obţine cu n variabile sau nici un termen.

Cu  n variabile se obţin 2n

=m termeni, de exemplu pentru n=2 se obţin 22

=4termeni: 00, 01, 10, 11.

În general numărul de funcţii NF în cazul a m termeni se calculează astfel:

∑=

==−

=+++=m

0 j

2mmm

1m

0mF

n

22)! jm(! j

!mC...CC N   (0.13)

În lipsa variabilei independente (n=0) se obţin două funcţii: F=1 şi F=0 – funcţiileconstante.

Pentru n=1 se obţin 4 funcţii : F=1, F=0, F=x şi F= x , unde x este variabilaindependentă iar pentru n=2 se obţin 16 funcţii.

Prezentăm în continuare funcţiile logice combinaţionale cu două variabile şi acolo

unde este cazul, por ţile logice care le implementează.

1. Conjuncţia F1 = x*y (x şi y, produs logic)

Tabelul de adevăr y x F1

0 0 0

0 1 0

1 0 0

1 1 1

Simbolul

F1x

y

Denumirea circuitului logic:ŞI (AND)

Page 8: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 8/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 9

2. Disjuncţia F2 = x+y (x sau y, suma logică)

Tabelul de adevăr 

y x F2

0 0 0

0 1 1

1 0 1

1 1 1

Simbolulx

y

F2

Denumirea circuitului logic:SAU (OR)

3. şi 4. Negaţia F3 = x (non x )F4 = y (non y )

Tabelul de adevăr 

x F3 y F40 1 0 1

1 0 1 0

Simbolul

x

F3

 

Denumirea circuitului logic:INVERSOR (INVERTER) 

5. Implicaţia directă yxyxF5 +=→= (x implică y)

Tabelul de adevăr 

y x F5

0 0 1

0 1 0

1 0 1

1 1 1

Circuitul logic nu are o denumireconsacrată 

6. Implicaţia inversă yxxyF6 +=→= (y implică x)

Tabelul de adevăr 

y x F6

0 0 1

0 1 1 Circuitul logic nu are o denumireconsacrată 1 0 0

1 1 1

7. Echivalenţa ( ) ( )

yxF

yx*yxF

)xy(*)yx(F

y~xF

7

7

7

7

⊕=

++=

→→=

=

 

Page 9: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 9/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 10

 

SimbolulTabelul de adevăr 

y x F7

 x

yF7

0 0 10 1 0

Denumirea circuitului logic:COINCIDENŢĂ, COMPARATOR

1 0 0

1 1 1

8. Negarea implicaţiei directe 

yxF

y*xF

yxF

8

8

8

+=

=

→=

(x nu imlică y)

Tabelul de adevăr 

y x F8

0 0 0

0 1 1

1 0 0

1 1 0

Denumirea circuitului logic:INTERDICŢIE, INHIBARE 

yxF

y*xF

xyF

9

9

9

+=

=

→=

9. Negaţia imlicaţiei inverse (y nu implică x)

10. Negarea echivalenţei 

Tabelul de adevăr y x F9

0 0 0

0 1 0

1 0 1

1 1 0

Denumirea circuitului logic:INTERDICŢIE, INHIBARE 

( ) ( )

yxF

yx*yxF

)xy(*)yx(F

y~xF

10

10

10

10

⊕=

++=

→→=

=

  (x nu este echivalent cu y) 

(suma modulo 2)

Page 10: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 10/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 11

 

11. Negarea disjuncţiei 

Tabelul de adevăr 

y X F10

Simbolulx

yF10

0 0 0

0 1 1 Denumirea circuitului logic:SAU EXCLUSIV, SUMA

MODULO DOI

1 0 1

1 1 0

y*xF

yxF11 +=(x sau

11 =y negat)

1

Tabelul de adevăr y x F11

0 0 1

0 1 01 0 0

Simbolx

y

F11

 

Denumirea circuitului logic:SAU-NU (NOR)1 1 0

12. Negarea conjuncţiei 

yxF

y*xF

12

12

+=

(x şi y negat)=

 

Tabelul de adevăr 

y x F12

Simbolx

y

F12

 0 0 1

0 1 1Denumirea circuitului logic:

ŞI-NU (NAND)1 0 1

1 1 0

13. Identitate F13 x= (funcţia ce nu depinde de y)

Tabelul de adevăr y x F13

 Simbol

x

F13

 0 0 0

0 1 1

1 0 0Denumirea circuitului logic:

IDENTITATE1 1 1

Page 11: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 11/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 12

14. Identitate (funcţia ce nu depinde de x)yF14 =

 

6. Funcţie unară F16=1 (circuit închis)

Materializarea funcţiilor definite mai sus conduce la circuite logice, unele cudenumiri consacrate.

Din tabelul funcţiilor de două variabile prezentat anterior, o importanţă deosebită o prezintă următoarele şase funcţii: INHIBAREA, SAU EXCLUSIV, SAU-NU (NICI),COINCIDENŢ , ŞI-NU şi IMPLICARE.

Algebra logicii se dezvoltă plecând de la o grupare de operaţii fundamentale princombinarea cărora se obţin alte operaţii logice. Până acum s-au considerat drept operaţiilogice fundame , Ş

Se pot alege ca opera ulte din operaţiilesimple prezentaExistă 6 posibilit e: opera şi ŞI; operaţiile

COINC

0.4.

e exprima o funcţie logică. Această 

funcţie binaţiilor posibile

Tabelul de adevăr 

y x F14 Simboly

F14

0 0 0

0 1 0

1 0 1 Denumirea circuitului logic:IDENTITATE 1 1 1

15. Funcţie nulară F15=0 (circuit deschis)

A

ntale operaţiile logice SAU I şi NU.

ţii logice fundamentale una sau mai mte anterior.ăţi şi anum ţiile SAU-EXCLUSIV

IDENŢĂ şi ŞI; operaţia SAU-NU; operaţia ŞI-NU; operaţia INHIBARE; operaţiaIMPLICARE.

Se observă că în cazul în care se aleg operaţiile SAU-NU, ŞI-NU, INHIBARE şiIMPLICARE, este necesar ă o singur ă operaţie logică elementar ă sau operaţie logică de

 bază. Din acest motiv aceste operaţii se numesc operaţii universale. Datorită faptului că operaţiile SAU-NU (circuite ECL, MOS) şi ŞI-NU (circuite TTL) necesită, din punct devedere al realizării lor practice, mai puţine circuite decât operaţia de INHIBARE sauIMPLICARE, primele două sunt preferate ultimelor.

Alegerea operaţiilor de bază în algebra booleană nu este unică.În această alegere trebuie să se ţină în primul rând cont de posibilitatea de realizarea unor circuite electronice economice şi cu siguranţă mare în funcţionare. Circuitele ŞI,SAU, NU, SAU-NU, ŞI-NU, sunt frecvent folosite, deoarece pot fi uşor realizate fizic.

Formele canonice ale funcţiilor logice

O funcţie logică de n variabile va avea 2n valori de ieşire corespunzătoare celor 2n combinaţii posibile ale variabilelor de intrare. Acest lucru poate fi reprezentat, aşacum s-a ar ătat, cu ajutorul tabelului de adevăr. Se poate ar ăta insă că există o expresieanalitică unic determinată cu ajutorul căruia se poat

ce conţine cel mult 2n termeni, corespunzător tuturor com

Page 12: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 12/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 13

 pentru

lă logică, numim formă normală disjunctivă a ei o relaţie echivalentă, care este o sumă de produse

i z, acărui tabel de adevăr este TABELUL 0.6.

e la ac i

variabilele de intrare, poate avea două moduri de exprimare, conform principiului dualităţii. Acestea reprezintă formele canonice ale funcţiilor logice numiteforma normală disjunctivă (FND) şi respectiv, forma normală conjunctivă (FNC).

TABELUL 0.6. Fiind dată o relaţie funcţiona

elementare construite cu aceleaşi variabile ca şi relaţia dată iniţial,fiecare produs conţinând toate variabilele posibile (ele saucomplementarele lor) iar formă normală conjunctivă, o relaţieechivalentă care este un produs de sume elementare, construitedeasemenea cu aceleaşi variabile ca şi relaţia dată iniţial, fiecaresumă conţinând toate variabilele posibile (ele sau complementarelelor).Exemplu : consider ăm o funcţie logică de trei variabile : x, y ş

În tabel, valorile funcţiei f(x,y,z) sunt puse la întâmplare, deoarece exemplul serecare. În această situaţie putem scrie forma normală disjunctivă aref 

funr ă ţie

o:

funcţie o

 

( ) z xy z y x ++   (0.14)

i reprezintă acele combinaţii ale variabilelor de intrare pentru carenu (pentru zero se scrie variabila negată iar pentru unu variabila

 yz x y x x ,

e enii funcţiec valo ea u

t

 z + z = y, f 

 unde t rmfun ţia ia ar 

nenega ă:  z y x repr   j t se i num

fiecare

om scrie forma normală disjunctivă pentru

ezintă combinaţia 010 iar f(010)=1). Termenii formei normaleesc şi mintermi (o expresie minterm este o sumă de produse în caredis unc ive ma

 produs conine toate variabilele în formă adevărată sau negată).Pentru a obţine forma normală conjunctivă a funcţiei, bazându-ne pe principiul

dualităţii v )( xyz f  :

 xyz z y x z y x z y x xyz f  +++=)( (0.15)

 sau aplicând teorema dublei negaţii se obţine:

 xyz z y x z y x z y x z y xyz f  +++== ),)( (0.16)

 aplicând teorema De Morgan (relaţia 0.12) extinsă la n variabile, rezult

 x f  ,(

ă :

( )( )( )( ) z y x z y x z y x z y x xyz f  ++++++++=)( (0.17)

Relaţia 0.17 reprezintă forma normală conjunctivă a funcţiei care se poateirect din tabelul de adevăr prin considerarea combinaţiilor variabilelor de intrare pentru

de sume, fiecare sumă conţinând variabilaă dacă aceasta are valoarea zero

 binaţia respectivă. Termenii formei normală conjunctive se mai nume maxtermi (o expresie maxterm este o expresie produs de sume în care fiecare sum

onţine toate variabilele sub formă adevărată sau negată).

y z f(x,y,z)x

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

 obţine

dcare funcţia ia valoarea zero, ca un produsegată dacă aceasta are valoarea unu sau valoarea nenegatn

în com sc şiă 

c

Page 13: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 13/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 14

Forma normală conjunctivă s-a obţinut din forma normală disjunctivă prin plicarea principiului dualităţii şi deci cele două forme de exprimare a funcţiilor logicesunt echivalente.

Se observă că, FND conţine toţi termenii pentru care funcţia ia valoarea logică 1 iar 

zintă numărul variabilelor funcţiei.

:

(0.19)

nde indicii termenilor S exprimă echivalentul zecimal al combinaţiilor cifrelor binarecorespunzător variabilelor pentru care funcţia are valoarea logică zero iar indicele

rmenului  f reprezintă numărul variabilelor funcţiei.

a

FNC conţine toţi termenii pentru care funcţia ia valoarea logică 0.Există şi forma prescurtată de scriere a funcţiilor logice, forme numite : formă canonică normală disjunctivă şi respectiv formă canonică normală conjunctivă.

Pentru exemplul prezentat mai sus forma canonică normală disjunctivă se scrie :

64323 PPPP f  +++=   (0.18)

 unde indicii termenilor P exprimă echivalentul zecimal al combinaţiilor cifrelor binarecorespunzător variabilelor pentru care funcţia are valoarea logică unu iar indiceletermenului  f repre

Pentru cea de-a doua formă de exprimare a unei funcţii logice, forma canonică normală conjunctivă, tot pentru exemplul de mai sus, se poate scrie 

75103 SSSS f  =  

u

teDupă modul în care au fost definiţi termenii P, respectiv S, reiese clar că:

ii SP =  şi ii

 În continuare vor fi prezentate câteva din teoremele aplicate

PS =   (0.20)

funcţiilor logice scrise  b forma canonică P, respectiv S, teoreme utile în analiza şi sinteza dispozitivelor 

numerice.

(0.21)

eorema 2. Suma logică a doi termeni S oarecare este întotdeauna egală cu unitatea, a

  ji ≠=+ ,1 (0.22)

n alt termen prin existenţa a cel puţin a complementului unei variabile, şi cum

su

 Teorema 1. Produsul logic a doi P oarecare este nul, adică:

 ji pentruPP ≠=⋅ ,0 ji

 

T  dică:

S ji pentruS

 Se observă, f ăr ă dificultate, că fiecare termen P sau S din cei posibili ai unei funcţii logiceifer ă de ud

0=⋅ x x , respectiv 1=+ x x (existenţa complementului,irect cele două teoreme enunţate anterior.

axioma 6, relaţia 0.7), rezultă 

. O funcţie logic  n variabile poate fi reprezentată printr-o sumă logică unic

Teorema 3

aă de ă 

termenilor P :

Page 14: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 14/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 15

∑−

=

=12

0

n

i

iin Pa f    (0.23)

 

Teorema 4. O funcţie logică de n variabile poate fi reprezentată printr-un produs logic unica termenilor S :

( )∏ +=−

=

iin Sa   (0.24)

relaţii coeficienţii  ai se numesc numere caracteristice ale unei funcţiigice şi reprezintă valoarea funcţiei logice respective pentru combinaţia i a variabilelor de

intrare. Pentru exemplul de mai sus, numerele caracteristice ale funcţiei logice sunt :a1 = 0, a2 = 1, a3 = 1, a4 = 1, a5 = 0, a6 = 1, a7 = 0.

ă a termenilor P :

12n

 f 0i

 n ultimile douăÎ

loa0 = 0,

Teorema 5. Complementul unei funcţii logice de  n variabile poate fi reprezentat printr-osumă logică unic 

(0.25)∑−

=

=12

0

n

i

iinPa f   

Teorema 6 . Complementul unei funcţii logice de n variabile poate fi reprezentat printr-un produs logic unic a termenilor S :

( )∏

=

iin Sa   (0.26)

e se face apel la teorema lui De Morgan extinsă lavariabile. De exemplu pentru a justifica relaţia 0.25 se scrie relaţia 0.24 sub forma

+=

12n

 f 0i

 entru a demonstra ultimile două teoremP

 n :

( ) ∑∏−

== 00 ii

iin

 

=+=1212 nn

ii SaSa   (0.27)

u, în baza relaţiei 0.20 :

 f 

sa

∑−

=

=12

0

n

i

iinPa f    (0.28)

 

Teorema 7 . Suma logică a 2n termeni distincţi a unei funcţii logice de n variabile este egală u unu :c

 

112

0

=∑−

=

n

i

iP   (0.29)

 

Page 15: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 15/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 16

Teorema 8. Produsul logic al 2n termeni distincţi a unei funcţii logice de n variabile esteegală cu zero :

=

0

12

∏0=

n

S  

 baza teoremelor 3 şi 5 se poate scrie :

ii (0.30)

 În

 (0.31)∑∑∑

=

=

=

=+=+=12

0

12

0

12

0

1nnn

i

i

i

ii

i

iinn PPaPa f  f   

deoarece 1=+i aa i . În acelaşi mod, conform teoremelor 4 şi 6, se poate scrie :

(0.32)( ) ( ) ∏∏∏−

=

=

=

=+⋅+=⋅=12

0

12

0

12

0

0nnn

i

i

i

ii

i

iinn SSaSa f  f   

eoarece 0=⋅ ii aa .d

 

Page 16: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 16/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 17

 

CAPITOLUL 1

Analiza şi sinteza circuitelor logice combinaţionale

1.1. Introducere

Circuitele logice combinaţionale numite şi circuite de comutare combinaţionale,reprezintă circuitele logice cele mai simple, circuite logice de bază, denumite şi circuitelogice de ordinul zero care stau la baza tuturor celorlalte tipuri de ciruite logice.

Reprezentarea schematică a unui circuit logic combinaţional cu n+1 intr ări şi m+1 ieşiri este reprezentat în figura 1.1.

Un circuit logiccombinaţional secaracterizează prin aceea că starea ieşirilor, la un momentdat, depinde numai de stareaintr ărilor la acel moment detimp. Acest lucru este descrisde relaţiile 1.1 în care stareaieşirilor y0, y1, … ,ym 

reprezintă  m+1 funcţii de variabilele de intrare x0, x1, … , xn. Funcţiile care descriu astfelde circuite reprezintă funcţii binare conform celor prezentate in capitolul 1.

y0 = f 0(x0, x1, … , xn),

y1 = f 1(x0, x1, … , xn),…ym = f m(x0, x1, … , xn).

(1.1)

 Circuitele logice combinaţionale pot fi construite cu relee sau cu elemente de

comutere asemănătoare releelor, respectiv cu elemente de comutare având comportareaunor por ţi logice similare celor prezentate in capitolul 2.

O situaţie particular ă importantă este reprezentată de către automatele  programabile care permit modelarea prin program a circuitelor logice secvenţiale şicombinaţionale şi care reprezintă o soluţie convenabilă în cazul circuitelor numericedestinate automatizărilor complexe.

CIRCUIT LOGICCOMBINAŢIONAL

x0 

x1 …xn

y0 

y1 …ym

IN

TRĂ RI

IE

Ş IRI

Fig. 1.1. Schema bloc a unui circuit logic combinaţional

Page 17: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 17/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 18

In cele ce urmează vor fi studiate numai circuitele logice combinaţionale realizatecu por ţi logice care primesc la intrare semnale numerice în logică pozitivă sau logică negativă şi furnizează la ieşire de asemenea semnale numerice într-un anumit tip de logică.

Semnalele numerice în logică pozitivă sunt semnalele numerice la care se asociază 

un nivel ridicat de tensiune cifrei “1” (sau valorii de adevăr ADEVĂRAT) şi un nivelcobor ăt de tensiune cifrei “0” (sau valorii de adevăr FALS). În logica negativă, nivelele detensiune se inversează, se asociază un nivel coborât de tensiune – de obicei o tensiunenegativă cifrei “1” – (sau valorii de adevăr ADEVĂRAT) şi un nivel ridicat de tensiune – de obicei o valoare apropiată de zero volţi – cifrei “0” (sau valorii de adevăr FALS).

1.2. Elemente de analiză a circuitelor logice combinaţionale

Circuitele logice combinaţionale sunt, de regulă, reprezentate grafic, cu ajutorulschemelor logice combinaţionale cu por ţi logice similare cu cea prezentată în figura 1.2. Oastfel de schemă este utilă în analiza funcţionării circuitului dar, un astfel de circuit poate fireprezentat în scheme mai complexe cu ajutorul schemei bloc echivalente din figura 1.1,atunci când funcţionarea circuitului este cunoscută.

În general un circuit logic combinaţional are n+1 intr ări notate cu x0, x1, … , xn şi m+1 ieşiri y0, y1, … ,ym. Intr ările x0, x1, … , xn se aplică unor elemente logice ale căror ieşiri pot fi ieşiri ale reşelei sau intr ări pentru alte elemente logice din reţea.

În figura 1.2. se prezintă un circuit logic cu nouă intr ări şi trei ieşiri.

Fiecare element logic din reţea corespunde unei por ţi logice din circuitul decomutare modelat. În reţelele logice nu se admite legarea ieşirilor elementelor logice decât

 prin intermediul altor elemente logice. Atunci când circuitul de comutare modelat conţine por ţi care au proprietatea funcţiilor logice cablate, se reprezintă simbolic în reţea elementullogic prin care sunt legate din punct de vedere funcţional ieşirile por ţilor respective.

Semnalele aplicate la intrarile unui circuit logic, parcurg, în general, mai multe por ţi până se obţin semnalele de ieşire. Acest lucru se reflectă în reţea prin numărulelementelor logice interpuse între intr ările şi ieşirile reţelei. Maximumul numarului deelemenete logice aflate între intr ările şi ieşirile unei reţele logice dă numărul de nivelurilogice al reţelei. Numerotarea nivelurilor se face, în mod convenţional, de la ieşire spre

intrare (figura 1.3). În reţelele de comutare combinaţionale sunt admise legături inverse,

X8

X4

X2

U3A

SN74S00/SO

1

23

Y1

U1A

SN74S00/SO

1

23

X3

U10A

SN74S86/SO

1

23

U6A

SN74S04

1 2

X0

U8A

SN74S04

1 2

U2A

SN74S00/SO

1

23

U4A

SN74S00/SO

1

23

U11A

SN74S86/SO

1

23

U7A

SN74S04

1 2

Y0X1

U9A

SN74S86/SO

1

23

X5

X7

X6

Y2

U5A

SN74S04

1 2

Fig. 1.2. Circuit realizat cu porţi logice

Page 18: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 18/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 19

adică legarea ieşirii unui element logic la intr ările elementelor logice precedenteacestuia (fig. 1.4), cu condiţia să fie respectată definiţia 1.1. Trebuie menţionat însă că orice reţea cu elemente logice far ă legături inverse este combinaţională, în schimbnumai anumite reţele cu legături inverse satisfac această condiţie. Reţelele cu elemente

logice far ă legatur ă inversă se mai numesc grafuri booleene.Analiza unui circuit trebuie să înceapă cu stabilirea tipului acestuia. Aşa cum s-aar ătat mai sus, dacă circuitul nu are legături inverse atunci el este un circuit logiccombinaţional. În cazul în care circuitul are legături inverse (figura 1.4.), atunci, pentru a

 putea spune că acesta este un circuit logic combinaţional, va trebui să analizăm dependenţasemnalelor de ieşire de cele de intrare şi să ar ătăm că ecuaţia 1.1. este respectată. Nuintotdeauna este foarte uşor să detectăm existenţa unei legături inverse într-un circuit maiales dacă acesta este complicat. Din acest motiv se va prezenta în continuare o regulă princare se poate determina existenţa legăturilor inverse la scheme oricât de complicate.

Existenţa unei legături inverse într-o reţea de comutare cu elemente logice se poate determina folosind următoarea regulă de numerotare a elementelor.

Regula 1.1. 

a. Elementele reţelei ale căror intr ări fac toate parte din mulţimea intr ărilor reţelei,X={x1 x2,...,xn}, se numerotează, într-o ordine arbitrar ă, cu numerele 1 pina la k,

unde k este numărul elementelor ce îndeplinesc această condiţie.

  b. Elementele reţelei ale căror intr ări sunt fie intr ări din mulţimea X, fie ieşiri aleelementelor numerotate, la punctul  a respectiv b, se numerotează în continuarecu numerele   k + 1 pâna la  m, unde   m - k este numărul elementelor ceîndeplinesc această condiţie.

c. Dacă procedând în acest fel s-au putut numerota toate elementele reţelei, adică  m este numărul de elemente logice din reţea, rezultă că reţeaua nu are legăturiinverse. În caz contrar în reţea există cel puţin o legatur ă inversă.

Prin procedura de mai sus se face de fapt o ordonare par ţială a elementelor logice din reţea. Această ordonare nu este posibilă decât atunci când un anumit element

9

3

k

5

X3

10

1

X0

7

0

U3A

74LS02

2

31

1

8X4

U4A

74LS02

2

31

U12A

74LS04/SO

1 2

 m 

U8A

74LS08

1

23

U9A

74LS08

1

23

X1

4

U1A

74LS02

2

31

Y1

n

a

 NIVELUL

6

U5A

74LS08

1

23

11

 b

3

X2

U10A

74LS04/SO

1 2

12

e

c

f

U7A

74LS08

1

23

X6

d

Y0

U2A

74LS02

2

31

4

g

X5

U11A

74LS04/SO

1 2

U6A

74LS08

1

23

2

h

2

i

Figura 1.3. Reţea de comutare f ără legătură inversă 

Page 19: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 19/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 20

nu mai poate primi număr de ordine, deoarece unele din intr ările sale provin de laelemente nenumerotate care succed elementul dat, ceea ce înseamnă că există o legatur ă inversă.

Referindu-ne la schema din figura 1.3, regula de ordonare se aplică astfel :

 por ţile 1  şi  2 se numerotează primele deoarece intr ările acestor por ţi fac parte dinmulţimea intr ărilor circuitului x1şi x2 respectiv x4 şi x5. Urmează apoi elementul care senumerotează cu 3 deoarece acesta are intrarea conectată la un element care a fost dejanumerotat (poarta numerotată cu 1), similar acestei situaţii este cea a elementului care afost numerotat cu  5, iar elementele numerotate cu  4, 6  şi  9 sunt conectate la elementedeja numerotate şi intr ări ale circuitului (poarta 1 şi intrarea x3, poarta 2 şi intrarea x6 şi,respectiv poarta 7  şi intrarea x0). Elementele numerotate cu 7 , 8, 10, 11 şi respectiv 12 

 pot şi ele numerotate succesiv, în această ordine, deoarece intr ările acestor elementesunt conectate la elemente deja numerotate.

Pentru acest exemplu m = 12, toate elementele circuitului au putut fi numerotateşi deci nu există nici o legătur ă inversă iar circuitul este combinaţional, adică starea

ieşirilor la un moment dat nu depinde decât de starea intr ărilor la acel moment (relaţia1.1).

Aplicind regula 1.1, definită mai sus, pentru reţeaua din figura 1.4 se constată că nu este posibilă o ordonare par ţială a tuturor elementelor reţelei şi prin urmare reţeauaare o legatur ă inversă.

Pentru reţelele la care se poate face o ordonare par ţială a elementelor, deci carenu au legaturi inverse, se poate scrie expresia ieşirii fiecarui element logic, în ordineanumerotării acestora, ca o funcţie de comutare de variabilele de intrare ale reţelei, deunde rezultă că şi în expresia ieşirii intr ă numai variabilele de intrare ale reţelei. Funcţiade comutare a unei asemenea reţele depinde deci numai de variabilele de intrare, prinurmare reţeaua este combinaţională. Pentru reţeaua logică din figura 1.3 se obtine :

21 x xa +=   (1.2)

54 x xb +=   (1.3)

21 x xac +==   (1.4)

( ) 3213 x x x xad  ⋅+=⋅=   (1.5)

54 x xbe +==   (1.6)

) 6216 x x x xc f  ⋅+=⋅=   (1.7)

( ) 54323154321 x x x x x x x x x x xed  g  ++⋅+⋅=++⋅+=+=   (1.8)

54 x xeh +==   (1.9)

54323100 x x x x x x x g  xi ++⋅+⋅⋅=⋅=   (1.10)

( ) ) 62154 x x x x x f hk  ⋅+⋅+=⋅=   (1.11)

( ) ( ) ( )11 054323100 +⋅++⋅+⋅=+⋅=+== x x x x x x x x g  g i ym  (1.12)

( ) ( ) 621545432311 x x x x x x x x x x xk  g  yn ⋅+⋅+⋅++⋅+⋅=⋅==  (1.13)

 

Page 20: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 20/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 21

Din relaţia (1.12) rezultă că y0 iar din relaţia (1.13) rezultă că y1 depind numai devariabilele de intrare ale reţelei şi deci reteaua din figura 1.3 este o reţeacombinaţională.

La reţelele care au legături inverse, expresia ieşirii se poate scrie numai dacă se

introduc variabile de intrare secundare datorate legăturilor inverse.Pentru ca o astfel de reţea să fie combinaţională trebuie ca funcţiile de ieşire areţelei să depindă numai de variabilele de intrare principale adică să fie respectată ecuaţia 1.1. şi deci variabilele de intrare secundare sunt neesenţiale. Demonstrareaadestui lucru se poate face prin construirea tabelului de adevăr a funcţiei date, în care setrec toate combinaţiile posibile ale variabilelor de intrare principale cât şi a celor secundare. Dacă din acest tabel rezultă faptul că valorile funcţiei de ieşire a circuituluidepind numai de valorile variabilelor principale iar valoile variabilelor secundare nu aunici o influenţă asupra ieşirii, atunci funcţia analizată este combinaţională.

Din cele ar ătate rezultă că oricarei reţele de comutare combinaţională cu legaturiinverse îi corespunde cel puţin o reţea de comutare combinaţională far ă legătur ă inversă.

Să consider ăm circuitul din figura 1.4. Vom încerca să realizăm o ordonare par ţială a elementelor acestui circuit conform regulii 1.1. Se constată faptul că numerotarea tuturor elementelor circuitului eşuează  şi deci există cel puţin o legătur ă inversă. În această situaţie, pentru a vedea dacă circuitul este combinaţional, seconstruiesc tabelele de adevăr a funcţiilor de ieşire.

Funcţia logică a ieşirii y0 este combinaţională pentru că toate elementele aferenteacestei ieşiri au putut fi numerotate. Funcţia de ieşire y0 rezultă imediat :

2100 x x x y ⋅⋅=   (1.14)

 Pentru ieşirea y1 se construieşte tabelul de adevăr 1.1. în care s-au introdus

variabilele principale x0, x1, x2 şi variabila secundar ă  Xa. După realizarea tabelului, prininspectarea acestuia, ne putem da seama de modul în care o variabilă influenţează ieşirea. Pentru a putea observa mai uşor influenţa variabilei secundare Xa asupra ieşiriiy1, se aşază alăturat valorile de ieşire pentru situaţia când variabila Xa ia valoarea zeroşi valorile de ieşire pentru variabila secundar ă egală cu unu. Dacă variabila secundar ă nu influenţează ieşirea, atunci cele două coloane trebuie să fie identice. 

2

U5D

74LS08/SO

12

1311

U3C

74LS08/SO

9

108

1

U6A

74LS260/SO

123

1213

5

4 Y0

U1A

74LS08/SO

1

23

3

C

?

B

Y1

 A D

Xa

E

X1

X0

?

U4A

74LS08/SO

1

23

U2B

74LS08/SO

4

56

X2

Fig. 1.4. Circuit logic cu conexiune inversă 

Page 21: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 21/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 22

TABELUL 1.1.x2 x1 x0 Xa A=x0x1 B=x1x2 C=x0x2 D=x0x1x2 E=x1x2Xa y1

0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1

0 1 0 0 0 0 0 0 0 10 1 1 0 1 0 0 0 0 01 0 0 0 0 0 0 0 0 11 0 1 0 0 0 0 0 0 11 1 0 0 0 1 1 0 0 01 1 1 0 1 1 1 1 0 0x2 x1 x0 Xa A=x0x1 B=x1x2 C=x0x2 D=x0x1x2 E=x1x2Xa y1

0 0 0 1 0 0 0 0 0 10 0 1 1 0 0 0 0 0 10 1 0 1 0 0 0 0 0 1

0 1 1 1 1 0 0 0 0 01 0 0 1 0 0 0 0 0 11 0 1 1 0 0 0 0 0 11 1 0 1 0 1 1 0 1 01 1 1 1 1 1 1 1 1 0

Se observă că în tabelul 1.1 coloana y1 r ămâne neschimbată atunci când variabila Xa ia valoarea zero sau valoarea unu şi deci această variabilă secundar ă este neesenţială.Putem să scriem acum şi funcţia combinaţională de ieşire y1:

( )

202110

20212102102021101 1

 x x x x x x

 x x x x x x x x x x x x x x x x y

++=

=+++=+++=

  (1.15)

 Având în vedere faptul că reţelele de comutare cu elemente logice, far ă legatur ă 

inversă sunt reprezentative pentru reţelele combinaţionale cu elemente logice, în cele ceurmează se trateaza numai acestea.

 Re ţ elele de comutare combina ţ ionale cu elemente logice cu o singur ă ie şire, la

care fiecare dintre intr ările re ţ elei se aplică la un singur element logic, iar ie şirea unuielement logic poate fi aplicat ă ca intrare la un singur element logic, se nume şte arboreboolean. Arborele boolean este un caz particular al grafului boolean. Un exemplu dearbore boolean este dat in figura 1.5

x1

x4

U1A

7408

1

23

 bU2A

7432

1

23

c

a

y0

x2

U4A

7408

1

23

U3A

7432

1

23x0

x3

 Figura 1.5. Reţea combinaţională sub formă de arbore boolean

Page 22: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 22/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 23

Pentru analiza unui arbore boolean se poate folosi o metodă formală care constă în găsirea unei acoperiri a mulţimii n-uplelor funcţiei logice pentru care aceasta iavaloarea unu.

Se va exemplifica această metodă pe circuitul din figura 1.5. construindu-se

tabelul 1.2. Tabelul construit va conţine toate variabilele principale ale funcţiei (x0, x1,x2, x3, x4,), variabilele secundare (a, b, c) şi ieşirea circuitului (y0).

TABELUL 1.2.x4 x3 x2 x1 x0 a b c y0 Observaţii

1 12 1 1 y0 = a b

x 1 13

1 x 1a = x0 + x1 

1 x 1 xx x 1 11 1 x x4x 1 x 1

 b = x2 + c

x x 1 x 11 1 x x 1x x 1 1 x

5

1 1 x 1 x

c = x3 x4

Tabelul 1.2 se completează astfel: pe rândul unu se trece cifra unu pe coloana y0 simbolizându-se asfel faptul că se vor determina combinaţiile variabilelor de intrare

  pentru care funcţia ia valoarea unu. Pe rândul doi se trec valorile variabilelor de pe

nivelul zero care determină valoarea unu la ieşire. Acestea vor fi: unu pentru variabilasecundar ă  a şi unu pentru varibila secundar ă  b. Deoarece numai această combinaţie avariabilelor  a şi b conduc la valoarea unu a funcţiei de ieşire y0, se trece la rândul treiunde se vor determina combinaţiile variabilelor principale pentru care variabilasecundar ă  a ia valoarea unu. Aşa cum se vede, sunt posibile 2 combinaţii pentruvariabilele principale x0 şi x1: variabila x0 ia valoarea unu şi atunci x1 poate avea oricevaloare (se notează cu x – indiferent) sau, cind x1 ia valoarea unu şi atunci x0 poate aveaorice valoare (x – indiferent). Se trece acum la rândul patru care determină combinaţilevariabilelor care duc la variabila b egala cu unu. Sunt doua posibilităţi: x2 egal cu unu şivariabila c poate avea în acest caz orice valoare sau c egal cu unu şi atunci x2 poate aveaorice valoare. Aceste două posibilităţi se aplică celor două combinaţii determinate la

rândul trei şi rezultă patru combinaţii posibile.La rândul cinci se explicitează variabila  c pentru care nu există decât doua

 posibilităţi: variabila c poate lua orice valoare şi atunci şi x3 şi x4 pot lua orice valoaresau variabila c ia valoarea unu li atunci x3 = x4 = 1.

În momentul in care au fost explicitate toate variabilele secundare, completareatabelului a fost terminată şi sa găsit o acoperire a funcţiei pentru care aceasta ia valoareaunu. Funcţia poate fi scrisă ca o sumă de produse a combinaţiilor găsite, din care seelimină variabilele principale notate cu x (care pot avea orice valoare) şi se notează cuvariabila directă variabila principală egală cu unu şi cu variabila negată cea egală cuzero în tabel. Pentru exemplul dat se obţine (forma normală disjunctivă):

Page 23: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 23/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 24

13412034020 x x x x x x x x x x y +++=   (1.16)

 Printr-o metodă similar ă – căutându-se combinaţiile variabilelor principale

 pentru care funcţia este egală cu zero – se poate determina funcţia de ieşire sub forma

unui produs de sume.Pentru a exemplifica acest lucru vom considera schema din figura 1.6. Vom

căuta de data aceasta o acoperire a n-uplelor funcţiei logice pentru care aceasta iavaloarea zero. Se construieşte tabelul 1.2 similar tabelului 1.1. în care se trec variabilele

 principale şi cele secundare pe coloane iar pe rânduri combinaţiile acestora pentru carefuncţia ia valoarea zero.

TABELUL 1.3.x5 x4 x3 x2 x1 x0 a b c d y0 Observaţii

1 0

2 1 1 cd  y =0  0 x 1

3x 0 1 54 x xc =  

0 x 1 xx 0 1 x0 x x 1

4

x 0 x 1

bad  +=  

0 x x x 1x 0 x x 10 x 1 1 x

5

x 0 1 1 x

23 x xb =  

0 x x x 1 1x 0 x x 1 10 x 1 1 x x

6

x 0 1 1 x x

10 x xa =  

În rândul 6 completarea tabelului se încheie deoarece combinaţiile tuturor variabilelor principale au fost precizate. În acest moment putem scrie ecuaţia funcţiei deieşire ca un produs de sume în care variabilele de intrare care iau valoarea zero suntscrise direct iar cele care iau valoarea unu sunt scrise negat (ecuaţia 1.18, forma normală conjunctivă):

X1

U7A

14093

1

23

Y0

U5A

14081

1

23

X5

 b

aU3A

14081

1

23

X4

X0

X2

U8A

14011

1

2

3

X3

dU6A

14071

1

23

c

 Figura 1.6. Arbore boolean

Page 24: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 24/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 25

( ) ( ) ( ) ( )2342350140150 x x x x x x x x x x x x y ++++++++=   (1.18)

 Verificarea corectitudinii rezultatului se poate face prin intermediul unui

  program care să genereze toate combinaţiile posibile ale variabilelor principale, să calculeze valorile ecuaţiei (1.18) şi să le compare cu valorile obţinute pentru funcţia deieşire a circuitului din figura 1.6 a cărui ecuaţie poate fi scrisă imediat conform por ţilor logice şi conexiunilor ar ătate în figur ă:

( ) 5432100 x x x x x x y +=   (1.19)

 În continuare se prezintă un program scris în limbaj de programare PASCAL

 pentru compararea ecuaţiei (1.18) cu ecuaţia (1.19). S-a ales limbjul PASCAL datorită faptului că este foarte asemănător cu limbajul pseudocod şi programele pot fi foarte uşor înţelese chiar şi f ăr ă cunoaşterea limbajului.

PROGRAMUL 1.1.Program logic1;{se verifica daca ecuatia determinata pentru arbore boolean este corecta}

var y1,y2,x0,x1,x2,x3,x4,x5:boolean;

 beginfor x5:= false to true dofor x4:= false to true dofor x3:= false to true do

for x2:= false to true dofor x1:= false to true dofor x0:= false to true do begin{ecuatia 1.19}

y1:=not (((x0 and x1) or (x2 and x3)) and ( not (x4 and x5)));{ecuatia 1.18}

y2:=(x5 or not x1 or not x0) and (x4 or not x1 or not x0) and (x5 or not x3 or not x2) and (x4 or notx3 or not x2);

if y1<>y2 then begin

writeln('Cele doua ecuatii nu sunt egale! Apasati ENTER');readln;

halt(1);end;end;writeln('Cele doua ecuatii sunt egale. Apasati ENTER');readln;end.

În cazul general al reţelelor sub formă de graf boolean se aplică aceeaşi procedur ă cu singura deosebire că intr ările, respectiv ieşirile elementelor logice care seaplică la mai multe elemente logice se consider ă de mai multe ori (notate cu indici saucu prim, secund, ter ţ  ş.a.m.d.), iar apoi se impune condiţia ca valorile obţinute să fieegale, respectiv se elimină subcuburile corespunzătoare liniilor pentru care variabilele

cu acelaşi nume nu au aceeaşi valoare.

Page 25: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 25/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 26

Vom exemplifica acest lucru pentru graful boolean din figura 1.7. care va fianalizat în tabelul 1.4.

În tabelul 1.4, datorită faptului că variabila principală x2 se aplică la intrarea a

două elemente logice, vom considera suplimentar variabilele x2’ şi x2’’ şi, similar, pentru variabila secundar ă  a care la rândul ei se aplică la intările altor două elementelogice, vom considera, de asemenea variabilele secundare a’ şi a” .

TABELUL 1.4.x3 x2 x'2 x"2 x1 x0 a a' a" b c y0 Observaţii

1 11 x

2x 1

y0 = b + c

x x x 13

1 1 1 xc = a” x2” x3 

x x 1 1 x41 1 x x 1

 b = x0 a’

x x 1 15

1 1 x 1a = a’ = a”

x x x 1 1x 1 x x 11 x 1 1 x

6

1 1 1 x x

a = x1 + x2’

x x 1 1x 1 x 1

1 1 1 x7

1 1 x x

x2 = x2’ =

x2”

Până la rândul cinci completarea tabelului se face în modul discutat deja mai sus.În rândul cinci trebuie alese valorile pentru care a = a’ = a”. Sunt două situaţii: când a’ =1 şi a” = x şi când a’ = x şi a” = 1 adică sunt posibile urmatoarele cazuri a’ = 1şi a” = 0sau a’ = 1 şi a” = 1, respectiv a’ = 0 şi a” = 1 şi a’ = 1 şi a” = 1 (deoarece simbolul  x semnifică „orice valoare” adică zero sau unu). Evident, singura soluţie posibila este a =a’ = a” = 1. Acelaşi raţionament este f ăcut pe rândul şapte când pentru x2’ = x şi x2” = xrezultă x2 = x în celelalte situaţii, ca şi pe rândul cinci, soluţia este x2 = x2’ = x2” = 0.

Putem acum să scriem acum forma normală disjunctivă a funcţiei de ieşire:

U1A 2 3  1 

a''x2'' 

a  Y0 

a'

U3A

1

2

3

X1 

c

X2 

X0 

U2A2

3

X3 

 b

x2' U4A

1

2

13

12

 Figura 1.7. Reţea de comutare sub formă de graf boolean

Page 26: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 26/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 27

( )

230201

12302012312302010 1

 x x x x x x

 x x x x x x x x x x x x x x x x y

++=

=+++=+++=  (1.20)

 

1.3. Sinteza circuitelor logice combinaţionaleProblema sintezei circuitelor logice combinaţionale constă în realizarea fizică a

unei funcţii logice combinaţionale dată sub forma unui tabel de adevăr sau a unei funcţiicanonice.

Datorită faptului că există mai multe expresii echivalente pentru o funcţie logică,  problema sintezei circuitelor logice va avea şi ea mai multe soluţii. În practică interesează în general acea soluţie care corespunde circuitului realizabil cu cost cât maimic, dar pot exista şi alte criterii cum ar fi cele de protecţie a informaţiei, siguranţă înfuncţionare etc.

Din acest punct de vedere sunt importante procedeele de minimizare a funcţiilor 

logice combinaţionale care duc la găsirea celei mai avantajoase expresii pentru funcţiacombinaţională dată.De multe ori poate interesa realizarea funcţiei logice

combinaţionale cu ajutorul unui singur tip de poartă logică. Aşacum se ştie, există operaţii universale cu ajutorul cărora pot fiscrise in totalitate funcţiile logice. În continuarea se va ar ătamodul de realizare al unei funcţii logice al cărui tabel de adevăr este dat în tabelul 1.5. cu ajutorul por ţii logice ŞI-NU (NAND) acărei funcţie este o operaţie universală.Pentru funcţia logică a cărei tabel de adevăr este dat în tabelul1.5. putem scrie forma canonică normală disjunctivă:

01201201201275323 x x x x x x x x x x x x P  P  P  P  f  +++=+++=  (1.21)

 sau forma canonică formal conjunctivă:

( ) ( ) ( ) ( )012012012012

64103

 x x x x x x x x x x x x

S S S S  f 

++++++++=

==  (1.22)

 

Plecând de la forma normală disjunctivă realizarea fizică a circuitului este ceadin figura 1.8.Pentru a realiza funcţia a cărei ecuaţie este dată de relaţia (1.21) numai cu por ţi

ŞI-NU, facem apel la teorema lui De Morgan extinsă la  n variabile şi ecuaţia (1.21)devine :

0120120120120 x x x x x x x x x x x x y ⋅⋅⋅=  (1.23)

 

TABELUL 1.5.x2 x1 x0 y0

0 0 0 0 0

1 0 0 1 02 0 1 0 1

3 0 1 1 1

4 1 0 0 0

5 1 0 1 1

6 1 1 0 07 1 1 1 1

Page 27: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 27/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 28

Ecuaţie, care, aşa cum se vede, poate fi realizată fizic numai cu por ţi ŞI-NU.Pentru ca întreaga realizare fizică să conţină numai por ţi logice ŞI-NU, inversoarelefolosite în figura 1.8. pentru obţinerea variabilelor de intrare negate, se vor înlocui cu

 por ţi ŞI-NU cu intr ările scurtcircuitate. Conform tabelului de adevăr al acestei funcţii,dacă pe toate intr ările por ţii se aplică aceeaşi valoare atunci se obţine un circuitinversor.

Rezultatul acestor transformări este prezentat în figura 1.9.Aşa cum rezultă din figura 1.9. pentru implementarea fizică a unei funcţii logice

combinaţionale, pe baza funcţiilor canonice, este necesar un număr relativ ridicat deelemente logice. Din acest motiv este important să se găsească procedee de simplificarea ecuaţiilor ce descriu funcţiile de ieşire ale circuitelor logice combinaţionale în vedereareducerii numărului de por ţi logice.

x0

x0

x2

x1

x1

x2

P2

x0

128

9P3

x1

P5

1 2

P7

x2

f3 = y0

x0

x2

x1

128

9

1 2

x2

x1

23

45

1

128

9

x0

x1

x0

1 2

x2

x1128

9

x0

x2

 Figura 1.8. Realizarea fizică a funcţiei (3.21) cu ajutorul porţilor logice.

12

1312

2

34

x2

x2

x1

12

1312

x0

x0

12

1312

x0

x0

x1x2

x2

x0

x1

x1

P2

12

45

6

x2

2

34

2

34

P3

x0

P5

x1

P712

1312

f3 = y0

x2

x2

x0

x1

x1

 Figura 1.9. Funcţie logică combinaţională realizată numai cu porţi ŞI-NU

Page 28: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 28/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 29

1.4. Minimizarea funcţiilor logice combinaţionale

Se vor prezenta în continuare principalele metode de minimizare a funcţiilor logicecombinaţionale care, pe baza formelor canonice normale disjunctive sau normale

conjunctive, permit obţinerea unor forme mai simple a funcţiei, realizabile la un cost maiscăzut (cu un număr mai mic de por ţi logice mai simple).

1.4.1. Metoda minimizarii pe baza axiomelor si teoremelor algebrei booleene

Folosind axiomele şi teoremele algebrei booleene (paragraful 1.2), o funcţie booleană dată sub forma canonică disjunctivă sau sub forma canonică conjunctivă poatefi scrisă în cazul general sub o altă formă cu număr mai mic de termeni, respectiv factorielementari căreia îi corespunde o reţea cu cost mai redus. Această metodă deminimizare a funcţiei de comutare necesită din partea proiectantului multă îndemânare,ingeniozitate şi experienţă, motiv pentru care nu poate fi aplicată cu succes decât după o

 practică îndelungată în proiectarea circuitelor de comutare. Unul dintre principaleledezavantaje ale metodei îl constituie faptul că obţinându-se prin calcule o anumitaformă a funcţiei nu se poate stabili cu uşurinţă dacă este forma minimă sau se mai poatesimplifica.

Pentru exemplificare vom considera un exemplu foarte simplu:

( ) 01201210020 x x x x x x x x x x y +++=   (1.24)

 aplicând teorema absorbţiei se obţine:

012012020 x x x x x x x x y ++=   (1.25) grupăm acum ultimii doi termeni:

( )1102020 x x x x x x y ++=   (1.26)

 şi aplicăm axioma existenţei complementului:

( ) 022002020 x x x x x x x x y =+=+=   (1.27)

  Acest exemplu simplu indică faptul că prelucrarea unei funcţii poate duce lasimplificarea considerabilă a acesteia. În activitatea de simplificare a funcţiei logice uniitermeni pot fi multiplicaţi, bazându-ne pe teorema idempotenţei, în scopul grupăriiconvenabile a acestora şi reducerea unor variabile.

1.4.2. Metoda diagramelor Karnaugh

Folosirea unei forme speciale a diagramelor Venn, în scopul simplificarii cuajutorul acestora a funcţiilor logice combinaţionale a fost sugerată pentru prima oar ă decătre E. W. Veitch. La scurt timp M. Karnaugh propune de asemenea o formă 

modificată a diagramelor Venn cu acelaşi scop. Astfel au rezultat diagramele denumite

Page 29: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 29/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 30

diagrame Karnaugh. Diagramele Karnaugh sunt folosite curent pentru reprezentareafuncţiilor booleene cu numar relativ mic de variabile.

Aceste diagrame sunt utile pentru minimizarea funcţiilor booleene deoarece permit evidenţierea cu uşurinţă a unor identităţi de forma:

 x xy =+  

 x y x xy =+  

 y x y x x +=+  

(1.28)

 În general, o diagramă Karnaugh pentru o funcţie booleana de  n variabile se

desenează sub forma unui pătrat sau dreptunghi, împăr ţit în 2n compartimente, fiecarecompartiment fiind rezervat unui termen canonic al funcţiei, respectiv unuia dintre cele2n n-uple ale funcţiei sau vârfuri ale cubului n-dimensional din reprezentarea geometrică a funcţiei.

În acest fel, o diagramă Karnaugh va fi reprezentată printr-un tabel cu m linii şi p coloane care îndeplinesc condiţia  m x  p = 2n iar  m +  p =  n. Capetele de tabel vor conţine combinaţiile posibile pentru variabilele funcţiei scrise în cod Gray. Aşezareavariabilelor pe linii şi coloane poate fi f ăcută în mai multe feluri, singura condiţie decare trebuie să se ţină seama este completarea corectă a tabelului. De asemenea laminimizarea funcţiei va trebui să se ţină seama de faptul că o diagramă Karnaugh este osuprafaţă închisă  şi deci marginea de sus şi marginea de jos a tabelului precum şimarginea din stânga şi marginea din dreapta ale acestuia sunt adiacente (sunt lipite).

În continuare vom exemplifica modul de realizare a diagramei Karnaugh pentruo funcţie de patru variabile.

Vom considera tabelul de adevăr al funcţiei tabelul 1.6 (în acest tabel valorile

funcţiei sunt alese la întâmplare).

TABELUL 1.6.x3 x2 x1 x0 y0 x3 x2 x1 x0 y0 x3 x2 x1 x0 y0 x3 x2 x1 x0 y0

0 0 0 0 0 f(0)=0 4 0 1 0 0 f(4)=1 8 1 0 0 0 f(8)=0 12 1 1 0 0 f(12)=11 0 0 0 1 f(1)=1 5 0 1 0 1 f(5)=0 9 1 0 0 1 f(9)=0 13 1 1 0 1 f(13)=02 0 0 1 0 f(2)=1 6 0 1 1 0 f(6)=1 10 1 0 1 0 f(10)=1 14 1 1 1 0 f(14)=13 0 0 1 1 f(3)=0 7 0 1 1 1 f(7)=0 11 1 0 1 1 f(11)=1 15 1 1 1 1 f(15)=0

 

Conform acestui, tabel forma normală disjunctivă a funcţiei este:f 4 = P1 + P2 + P4 + P6 + P10 + P11 + P12 + P14 (1.29)

 Tabelele Karnaugh posibil de construit pentru funcţia (1.29) sunt prezentete în

figura 1.10.Este evident faptul că există şi alte posibilităţi de aşezare a variabilelor pe liniile

şi coloanele tabelului în afar ă de cele ar ătate în figura 1.10.Tabelul se completează cu valorile funcţiei (zero sau unu) corespunzătoare

combinatiei variabilelor de intrare de pe linia şi coloana respectivă (figura 1.10 d.).

Page 30: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 30/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 31

 Codul Gray (codul binar reflectat), cod ce poartă numele celui care l-a imaginat,

a fost construit pe principiul ca două secvenţe vecine să difere într-o singur ă poziţie binar ă. Secvenţele codului Gray pot fi deduse din cele ale codului binar pe bazaurmătoarelor relaţii:

g0 = b0 ⊕ b1,g1 = b1 ⊕ b2,g2 = b2 ⊕ b3,g3 = b3 ,

(1.30)

 unde g0, g1, g2, g3, sunt poziţiile unei secvenţe Gray scrise de la dreapta spre stânga, iar 

 b0, b1, b2, b3, sunt poziţiile codului binar scrise în ordinea ponderilor.Pentru exemplificare să consider ăm cifra 6 scrisă în cod binar:

 b3 b2 b1 b0 0 1 1 0

Figura 1.10. a. b. c. Posibilităţi de realizare a tabelului Karnaugh pentru ofuncţie de patru variabile.d. Tabelul Karnaugh pentru funcţia descrisă de ecuaţia (1.29).

x1x0

x3x2

00 01 11 10

00 f(0) f(1) f(3) f(2)

01 f(4) f(5) f(7) f(6)

11 f(12) f(13) f(15) f(14)

10 f(8) f(9) f(11) f(10)

a.

x3x2

x1x000 01 11 10

00 f(0) f(4) f(12) f(8)

01 f(1) f(5) f(13) f(9)11 f(3) f(7) f(15) f(11)

10 f(2) f(6) f(14) f(10)

b.

x0

x3x2x1 

0 1

000 f(0) f(1)

001 f(2) f(3)

011 f(6) f(7)

010 f(4) f(5)

110 f(12) f(13)

111 f(14) f(15)

101 f(10) f(11)100 f(8) f(9)

c. 

x1x0

x3x200 01 11 10

00 0 0 1 1 3 0 2 1

01 4 1 5 0 7 0 6 1

11 121 130 150 141

10 8 0 9 0 111 101

d.

x1

x2

x3

x0

Page 31: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 31/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 32

Pe baza relaţiilor (1.30) vom deduce succesiv valorile cifrelor binare dinsecvenţa de cod Gray:

g0 = b0 ⊕ b1 = 0 ⊕ 1 = 1,

g1 = b1 ⊕ b2 = 1 ⊕ 1 = 0,g2 = b2 ⊕ b3 = 1 ⊕ 0 = 1,g3 = b3 = 0.

Prin urmare, secvenţa Gray corespunzătoare cifrei 6 va fi:

g3 g2 g1 g0 0 1 0 1

Putem deduce de asemenea şi relaţiile de transformare din cod Gray în cod binar. Acestea sunt:

 b0 = g0 ⊕ g1 ⊕ g2 ⊕ g3,

 b1 = g1 ⊕ g2 ⊕ g3,

 b2 = g2 ⊕ g3, b3 = g3,

(1.31)

 Valorile cifrelor binare sunt uşor de calculat dacă facem observaţia că 1 ⊕ 1 = 0.

Rezultă că este suficient să număr ăm cifrele binare de unu din relaţia de calcul. Dacă acestea sunt în număr par, atunci rezultatul este zero, iar daca sunt în număr impar rezultatul este unu.

Pentru exemplificare vom considera numărul în cod Gray corespunzător cifrei 6verificând dacă se obţine acelaşi rezultat:

g1 g2 g1 g0 0 1 0 1

Folosind relaţiile de mai sus se obţine:

 b0 = g0 ⊕ g1 ⊕ g2 ⊕ g3 = 1 ⊕ 0 ⊕ 1 ⊕ 0 = 0,

 b1 = g1 ⊕ g2 ⊕ g3 = 0 ⊕ 1 ⊕ 0 = 1,

 b2 = g2 ⊕ g3 = 1 ⊕ 0 = 1,

 b3 = g3 = 0.

Deci numărul binar obţinut este:

 b3 b2 b1 b0 0 1 1 0

adică cifra 6 de la care am pornit.0 diagramă Karnaugh este astfel organizată încât două compartimente vecine, pe

o linie sau pe o coloana, corespund la doi termeni canonici care difer ă numai printr-osingur ă variabilă, care apare într-unul dintre ei negată, iar în celalălt directă, respectiv la

Page 32: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 32/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 33

două n-uple adiacente. Se consider ă vecine şi compartimentele aflate la capetele opuseale unei linii, respectiv coloane (marginile diagramei).

Pentru a putea reprezenta uşor funcţii date în mod convenţional prin indiciitermenilor canonici, se poate nota fiecare compartiment cu indicele termenului canonic

corespondent, ţinând cont de o anumită ordine a variabilelor.De obicei, diagramele pentru mai mult de patru variabile se construiesc dindiagrame de patru variabile, considerate diagrame elementare. Se pot construi însă diagrame Karnaugh pentru numar mai mare de variabile şi considerând ca diagrameelementare diagramele de trei variabile. În cazul diagramelor pentru mai mult de patruvariabile, două compartimente se consider ă vecine şi atunci când ocupă aceeaşi poziţieîn două diagrame elementare vecine, adică în două diagrame elementare alăturate sauaflate la extremitaţi pe o aceeaşi linie sau coloană.

Diagramele Karnaugh pentru mai multe variabile se pot construi şi sub forma uneisingure diagrame elementare dacă se foloseşte pentru notarea rândurilor  şi coloanelor codul Gray (figura 1.11). În acest fel se asigur ă că oricare două compartimente alăturate

sau aflate la extremităţile unei linii sau coloane să fie adiacente.

După ce tabelul a fost completat, prin scrierea valorii unu în celulelecorespunzătoare termenilor canonici ai funcţiei, dată sub forma normală disjunctivă, se poate trece la minimizarea funcţiei.

Doi termeni canonici care difer ă numai prin aceea că într-unul din aceştia una dinvariabile apare negată, iar în celălalt nenegată, apar în tabelul Karnaugh în celule vecine,deci se recunoaşte uşor că sunt adiacenţi. Aceşti doi termeni se pot înlocui cu un termennormal în care variabila, prin care cei doi termeni canonici difer ă, lipseşte.

Să consider ăm exemplul prezentat mai sus (figura 1.10 d). Dacă luăm termeniicanonici corespunzători celulelor numerotate cu 4 şi 12 (care sunt P4 şi P12), putem scrie:

( ) 0120123301230123 x x x x x x x x x x x x x x x x =+=+   (1.32)

 

Figura 1.11. Tabelele Karnaugh pentru a. funcţii cu 5 variabileb. funcţii cu 6 variabile.

x0x1x2

x3x4 000 001 011 010 110 111 101 100

00 f(0) f(4) f(6) f(2) f(3) f(7) f(5) f(1)

01 f(16) f(20) f(22) f(18) f(19) f(23) f(21) f(17)

11 f(24) f(28) f(30) f(26) f(27) f(31) f(29) f(25)

10 f(8) f(12) f(14) f(10) f(11) f(15) f(13) f(9)

a.

x0x1x2 x3x4x5

000 001 011 010 110 111 101 100

000 f(0) f(4) f(6) f(2) f(3) f(7) f(5) f(1)

001 f(32) f(36) f(38) f(34) f(35) f(39) f(37) f(33)011 f(48) f(52) f(54) f(50) f(51) f(55) f(53) f(49)

010 f(16) f(20) f(22) f(18) f(19) f(23) f(21) f(17)

110 f(24) f(28) f(30) f(26) f(27) f(31) f(29) f(25)

111 f(86) f(90) f(92) f(88) f(89) f(93) f(91) f(87)

101 f(40) f(44) f(46) f(42) f(43) f(47) f(45) f(41)

100 f(8) f(12) f(14) f(10) f(11) f(15) f(13) f(9)

b.

Page 33: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 33/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 34

În reprezentarea geometrică a unei funcţii booleene, doi termeni canonici careindeplinesc condiţia de mai sus corespund la două noduri adiacente, deci definesc o laturaa cubului n-dimensional. Din acest motiv se spune că două compartimente vecine sauadiacente pe diagrama Karnaugh reprezintă un subcub 1-dimensional. Un grup de patru

compartimente dintre care fiecare este vecin cu alte două compartimente din acelaşi grup,formează un subcub 2-dimensional. În acest caz cei patru termeni canonici corespunzătoriacestor compartimente au o parte comună formată din doua variabile. În baza axiomeiexistenţei elementului neutru, acesti patru termeni pot fi inlocuiţi cu partea lor comună. Deexemplu în figura 1.10. d. termenii canonici P2, P6, P14, şi P10 se grupează aşa cum se arată în ecuaţia următoare:

( )( ) ( )[ ] 0101223223

0123232323

0123012301230123

 x x x x x x x x x x

 x x x x x x x x x x

 x x x x x x x x x x x x x x x x

=+++=

=+++=

=+++

  (1.33)

 În cazul general, termenii canonici care formează un subcub bidimensional se pot

înlocui cu un termen normal având cu doua variabile mai puţin decit termenii canonici. Peo diagramă de patru variabile se pot forma şi subcuburi tridimensionale care cuprind optcompartimente astfel grupate încât fiecare din ele este vecin cu alte trei din acelasi grup.

În figura 1.12. sunt date câteva exemple de formare a subcuburilor.

Figura 1.12.  a.

Figura 1.12.  b.

Figura 1.12.  c.

1

1

x1

x2

x0

x31 1 

x1

x2

x0

x3

1

1

x1

x2

x0

x3

 

1 1

x1

x2

x0

x3

 1 11 1

x1

x2

x0

x3

1 1 

1 1

 

x1

x2

x0

x3

1 1

1 1

x1

x2

x0

x3

 1111

x1

x2

x0

x3

 1 11 11 11 1

x1

x2

x0

x31 1 1 11 1 1 1

 

x1

x2

x0

x3

 1 1 1 1

 

1 1 1 1 

x1

x2

x0

x3

Page 34: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 34/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 35

Figura 1.12.  d.

Figura 1.12. Reprezentarea pe diagrame Karnaugh a subcuburilora. unidimensionaleb. bidimensionalec. tridimensionaled. eronate

Determinarea termenului echivalent unui subcub se poate face în felul următor:ne deplasăm de-a lungul suprafeţei subcubului şi observăm care sunt variabilele care-şischimbă valoarea în interiorul suprafeţei subcubului iar acele variabile se elimină dintermenul final. Termenul final, echivalent subcubului, va conţine toate variabilele carenu-şi schimbă valoarea în interiorul suprafeţei acelui subcub. Un subcub 1-dimensional

  permite eliminarea unei variabile, un subcub 2-dimensional va permite eliminarea adouă variabile şi aşa mai departe. Pentru o funcţie cu  n variabile subcubul dedimensiune maximă este (n-1)-dimensional, cu excepţia cazului când este vorba defuncţia unar ă (f ≡ 1) şi avem un subcub n-dimensional.

Pe o diagramă care reprezintă o anumită funcţie booleană se pot forma în modular ătat mai sus subcuburi de diverse dimensiuni. Un subcub care nu este inclus într-unsubcub de dimensiune mai mare se numeste implicant prim al funcţiei date. Formând

suma booleana a tuturor implicanţilor primi ai unei funcţii date se obţine o formă disjunctivă a acesteia, care în cazul general este mult mai simplă decât forma canonică disjunctivă a aceleiaşi funcţii. Pentru a găsi implicanţii primi ai unei funcţii reprezentată 

 pe diagrama Karnaugh, compartimentele marcate cu unu trebuie astfel grupate încât să se obţină subcuburi cu dimensiunea cea mai mare posibilă. Astfel, pe o diagramă de patru variabile se va căuta să se formeze în primul rând subcuburi tridimensionale, apoiîn ordine, subcuburi bidimensionale şi unidimensionale.

Pentru exemplificare vom considera funcţia dată de ecuaţia 1.29 pentru carediagrama Karnaugh este cea prezentată în figura 1.10. d. Subcuburile ce pot fi formate

 pe această diagramă sunt ar ătate în figura 1.13.

1 1 11

x1

x2

x0

x3

11

11

x1

x2

x0

x3

11 11

x1

x2

x0

x3

 1

11

1

x1

x2

x0

x3

 

x1x0

x3x200 01 11 10

00 0 1 0 1*

01 1* 0 0 1

11 1 0 0 1

10 0 0 1* 1

Figura 1.13. Diagrama Karnaugh pentru funcţia dată de ecuaţia 1.28

01 x x

0123 x x x x

012 x x x

123 x x x

Page 35: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 35/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 36

 Nu toţi implicanţii primi ai unei funcţii sunt necesari pentru definirea acesteia.Unii dintre implicanţii primi pot fi termeni redundanţi la care se poate renunţa, obţinândastfel o formă mai simplă a funcţiei. Prin urmare, se pune problema alegerii unui număr minim de implicanţi primi din mulţimea implicanţilor primi ai unei funcţii booleene

care să includă însă toţi termenii canonici ai funcţiei. Problema alegerii acestui set deimplicanţi este o problemă de acoperire cu cost minim. Expresia unei funcţii booleene încare intr ă un număr minim din implicanţii săi primi se numeşte forma minimă disjunctivă a funcţiei. Dacă un termen canonic al funcţiei este inclus într-un singur implicant prim, din mulţimea de implicanţi primi ai funcţiei, acela devine implicant

  prim esenţial şi trebuie să apar ă obligatoriu în forma minimă disjunctiva a funcţiei.Pentru găsirea formei minime disjunctive trebuie deci determinant în primul rândimplicanţii primi esentiali. Pentru aceasta se marchează pe diagramă într-un modspecial, de exemplu cu asterisc, acele celule notate cu unu care sunt incluse într-unsingur implicant prim (figura 1.13). Trebuie menţionat însă faptul că în figura 1.13. nuau fost marcaţi toţi implicanţii primi ai funcţiei, dar pentru claritate s-a renunţat la

marcarea unei păr ţi ai acestora. Implicanţii primi care conţin compartimente marcate cuasterisc devin esenţiali. Compartimentele însemnate cu unu, r ămase neacoperite de cătreimplicanţii primi esenţiali, se cauta să se acopere folosind un număr cât mai mic dinimplicanţii funcţiei care au mai r ămas. Din cele prezentate mai sus rezultă că formaminimă disjunctivă a funcţiei dată de relaţia (1.29) este:

0123123012014 x x x x x x x x x x x x f  +++=   (1.34)

 Pentru a vedea care din formele: normală disjunctivă sau normală conjunctivă 

ofer ă forma de cost minim, trebuie să găsim şi forma minimizată normală conjunctivă.

0 metodă simplă de determinare a formei minime conjunctive este aceea acăutarii formei minime disjunctive pentru negata funcţiei date şi negarea acesteia.Pentru exemplificare se ia tot funcţia dată prin diagrama Karnaugh din figura 1.13. Negata acestei funcţii este dată prin compartimentele marcate cu zero. Aplicând metoda

de minimizare prezentată, pentru functia 4 f  , unde 4 f  este dată de relaţia (1.29), se

obţine pentru această formă, relaţia (1.35), determinată cu ajutorul diagramei din figura1.14.

020130130124 x x x x x x x x x x x f  +++=   (1.35)

112 x x x

013 x x x

02 x x

013 x x x

 

x1x0

x3x2 00 01 11 1000 *0 1 *0 1

01 1 *0 0 1

11 1 0 0 1

10 0 *0 1 1

Figura 1.14. Determinarea formei minime normal conjunctive

Page 36: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 36/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 37

de unde rezultă forma normală conjunctivă a formei cu ecuaţia (1.29):

( ) ( ) ( ) ( )0201301301244 x x x x x x x x x x x f  f  +++++++==   (1.36)

 Concluzie. Folosind metoda diagrameolor Karnaugh se poate obţine forma

minimă disjunctivă sau conjunctivă astfel:

1) se construieşte diagrama ;2) se caută implicanţii primi ;3) se determină implicanţii primi esenţiali ;4) termenii canonici care nu sunt incluşi în implicanţii primi esenţiali se

acoper ă cu un număr cât mai mic de implicanţi primi ;5) forma minimă normală disjunctivă sau conjunctivă va conţine toţi

implicanţii primi esenţiali şi implicanţii primi neesenţiali ce conţin

termeni canonici ce nu sunt incluşi în implicanţii primi esenţiali.Aşa cum s-a ar ătat, metoda diagramelor Karnaugh, deşi este o metodă foarte

simplă  şi eficientă de minimizare a funcţiilor logice, ea nu poate fi aplicată decâtfuncţiilor cu un număr redus de variabile (cel mult şapte-opt).

Pentru minimizarea funcţiilor cu un număr mai mare de variabile se recurge laalte metode, algebrice sau tabelare, una dintre acestea fiind descrisă în paragrafulurmător.

1.4.3. Metoda Quine-Mc Cluskey

Metoda Quine-Mc Cluskey este o metodă algebrică de minimizare a funcţiilor  booleene cu un număr mare de variabile, pentru care metoda diagramelor Karnaugh suntgreu de utilizat.

Această metodă, care se bazează pe acelaşi principii ca şi metoda diagramelor Karnaugh, este mai uşor de aplicat funcţiilor cu număr mare de variabile deoarecemetoda presupune construcţia succesivă a unor tabele pâna la determinarea formeiminime a funcţiei. Algoritmul care stă la baza metodei Quine-Mc Cluskey poate fifoarte uşor programat ceea ce permite minimizarea automată a funcţiilor de maridimensiuni.

Metoda se aplică în doi paşi:

1. în primul pas se determină implicanţii primi ai funcţiei ;2. în pasul al doilea se determină implicanţii primi esenţiali care să dea o

acoperire de cost minim a funcţiei.

Prezentăm în continuare algoritmul de determinare a implicanţilor primi a uneifuncţii logice combinaţionale dată sub forma normală disjunctivă.

Algoritmul 1.1.

a) Se porneşte de la forma canonică disjunctivă a funcţiei în care termeniicanonici sunt daţi fie sub forma unui produs de variabile fie prin notaţia simbolică.

Page 37: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 37/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 38

Fiecare termen canonic este reprezentat apoi sub forma unui număr binar, prinn uplul de zerouri şi unităţi corespondente termenului respectiv.

 b) Termenii canonici astfel înscrişi se împart în grupe, în funcţie de pondereaacestora, adică de numărul cifrelor unu cuprinse în upul respectiv.

c) Grupele de termeni canonici sunt aranjate pe o coloană, în ordinea crescătoarea ponderilor.d) Se compar ă fiecare termen al unei grupe cu toţi termenii grupei de pondere

mai mare cu o unitate. Dacă numerele binare respective sunt adiacente, cei doi termenise pot asocia formând un cub 1 dimensional, notat printr un număr binar care are pe

 poziţia prin care cei doi termeni componenţi difer ă, un simbol « x », ceea ce semnfică faptul că variabila corespondentă acelei poziţii lipşeşte; cei doi termeni care au formatsubcubul rezultat se înscrie pe o nouă coloană. Toţi termenii normali (subcuburile 1  dimenionale) rezultaţi în urma compar ării a două grupe din coloana temenilor canoniciformează o grupă în coloana subcuburilor 1 dimensionale. Prin urmare, coloanacuburilor 1 dimensionale va conţine în cazul general cu o grupă mai puţin decât

coloana termenilor canonici (a cuburilor 0 dimensionale).e) Se ia n=1. Se compar ă fiecare termen a unei grupe din coloana sucuburilor 1

dimensionale cu toţi termenii grupei cu pondere mai mare cu o unitate. Pentru ca doiasemenea termeni să se poată asocia formând un subcub (n+1) dimensional trebuie caîn ambii termenii simbolurile « x » să fie pe aceleaşi poziţii. Doi termeni careîndeplinesc această condiţie şi sunt adiacenţi se asociază formând un subcub(n+1) dimensional care se notează cu un nuămăr binar în care apare încă un « x » pe

 poziţia prin care cei doi termeni difer ă. Termenii care formează acest subcub se bifează,iar subcubul (n+1) dimensional se înscrie pe o nouă coloană, coloana subcuburilor (n+1) dimensional, care în cazul general are o grupă ai puţin decât cloana subcuburilor n dimensionale. Dacă se obţine de mai multe ori un anumit termen acesta se consider ă o singur ă dată.

f) Se măreşte n cu o unitate şi se repetă punctul e) până când subcuburile ultimeicoloane nu se mai pot asocia în scoul formării unui subcub de dimensiune superioar ă.

Termenii r ămaşi nebifaţi în coloanele rezultate formează grupul implicanţiilor  primi ai funcţiei considerate.

Pentru exemplificare vom considera funcţia logică combinaţională a căreiecuaţie sub forma canonică normală disjunctivă este prezentată în (1.37) :

31302827262422191817

151311987642105

 P  P  P  P  P  P  P  P  P  P 

 P  P  P  P  P  P  P  P  P  P  P  f 

++++++++++

+++++++++++=  (1.37)

 Pentru claritatea exemplului s-a ales o funcţie de complexitate relativ redusă 

care ar putea fi minimizată şi cu ajutorul giagramei Karnaugh.Se întocmeşte tabelul subcuburilor 0-dimensionale (tabelul 1.7) pe baza formei

normale disjunctive a funcţiei sau pe baza tabelului de adevăr a acesteia şi cel alsubcuburilor 1-dimensionale (tabelul 1.8) pe baza tabelului 1.7.

După cum se poate observa, în tabelul 1.7 toţi termenii sunt bifaţi, ceea ceînseamnă că fiecare termen a putut fi grupat cu cel puţin un alt termen şi deci nici untermen din acest tabel nu va apare în forma minimă a funcţiei.

Pe baza tebelului 1.8 se construieşte tabelul 1.9., tabelul subcuburilor 2-dimensionale, grupând termenii care au simbolul « x » pe aceeaşi poziţie şi care difer ă 

Page 38: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 38/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 39

numai printr-o cifr ă binar ă. În acest tabel s-au notat între paranteze termenii care serepetă.

După completareatabelului 1.9., algoritmulde căutare a implicanţilor 

 primi se incheie deoarecenici un termen din acesttabel nu mai poate figrupat.

Observaţie: doitermeni canonici dincoloana subcuburilor 

zero dimensionali se potasocia dacă diferenţa între indicele termenului din grupa cu ponderea i 1 este un număr întreg, pozitiv şi egal cu putere a lui doi. Puterea lui 2 indică poziţia din numărul binar 

 pe care apare simbolul « x ».În cazul cloanelor subcuburilor de dimensiune mai mare ca zero, pentru ca două 

subcubri f ăcând parte din grupa a căror pondere difer ă cu o unitate să se poată asocia,treabuie ca diferenţa între indicii termenilor canonici incluşi în subcubul din grupasuperioar ă  şi indicii termenilor canonici corespondenţi ai subcuburilor din grupainferioar ă să fie o aceaşi putere a lui doi. De exemplu, pentru subcubul de pe primulrând din grupa a doua avem : 11 – 9 = 2 şi 15 – 13 = 2.

Expresia ce poate fi scrisă în acest moment pentru funcţia dată (ecuaţia 1.37), cu

ajutorul implicanţilor primi găsiţi, se obţine înlocuind, în termenii r ămaşi nebifaţi în

TABELUL 1.7Subcuburi 0-dimensionale

Grupa Indici x4x3x2x1x0 

0 0 0 0 0 0 0 

1

1248

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

2

69171824

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

3

7111319222628

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

1 1 1 0 0 

4152730

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

5 31 1 1 1 1 1 

TABELUL 1.9 Subcuburi 2-dimensionale

Grupa Indici x4x3x2x1x0 

0,18,9

0 x 0 0 x

0,24,6

0 0 x x 0

0,42,6

(0 0 x x 0)

0

0,81,9

(0 x 0 0 x)

2,618,22

x 0 x 1 0

1 2,186,22

(x 0 x 1 0)

9,1113,15

0 1 x x 1

9,1311,15

(0 1 x x 1)

18,2226,30

1 x x 1 0

18,2619,27

1 x 0 1 x

24,2628,30

1 1 x x 0

2

24,2826,30 (1 1 x x 0)

11,1527,31

x 1 x 1 1

11,2715,31

(x 1 x 1 1)

26,2730,31

1 1 x 1 x

26,3027,31

(1 1 x 1 x)

3

28,2730,31

1 1 1 x x

TABELUL 1.8 Subcuburi 1-dimensionale

Grupa Indici x4x3x2x1x0 

0

0,10,20,40,8

0 0 0 0 x  0 0 0 x 0  0 0 x 0 0  0 x 0 0 0  

1

1,91,172,62,184,68,9

8,24

0 x 0 0 1  x 0 0 0 10 0 x 1 0  x 0 0 1 0  0 0 1 x 0  0 1 0 0 x  

x 1 0 0 0

2

6,76,229,119,1317,1918,1918,2218,2624,2624,28

0 0 1 1 xx 0 1 1 0  0 1 0 x 1  0 1 x 0 1  1 0 0 x 11 0 0 1 x  1 0 x 1 0  1 x 0 1 0  1 1 0 x 0  1 1 x 0 0  

3

7,1511,15

11,2713,1519,2722,3026,2726,3028,2728,30

0 x 1 1 10 1 x 1 1  

x 1 0 1 1  0 1 1 x 1  1 x 0 1 1  1 x 1 1 0  1 1 0 1 x  1 1 x 1 0  1 1 1 0 x  1 1 1 x 0  

415,3127,3130,31

x 1 1 1 1  1 1 x 1 1  1 1 1 1 x  

Page 39: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 39/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 40

tabel, zerourile cu variabila corespunzătoare poziţiei respective negată, unităţile cuvariabila corespunzătoare poziţiei respective nenegată  şi omiţând variabilelecorespunzătoare poziţiilor pe care se află simbolul « x » (ecuaţia 1.38).

234134013034

124014034013034124

012402341234012301235

 x x x x x x x x x x x x

 x x x x x x x x x x x x x x x x x x

 x x x x x x x x x x x x x x x x x x x x f 

+++

+++++++

+++++=

  (1.38)

 Pentru a găsi forma minimă disjunctivă a unei funcţii trebuie aleşi numai acei

împlicanţii primi care includ toţi termenii canonici ai funcţiei şi conduc la o formă afuncţiei realizată cu cost minim. Implicanţii primi care respectă această condiţieformează acoperirea cu cost minim. Pentru găsirea acoperirii cu cost minim trebuiecăutate toate acoperirile posibile pentru funcţia dată din care se alege acoperirea careîndeplineşte condiţia de cost minim faţă de un anumit criteriu de cost.

De obicei, acoperirea minimală, adică acoperirea cu număr minim de elemente,satisface condiţia de cost.

Algoritmul de obţinere a acopperiri cu cost minim, plecând de la mulţimeaimplicanţilor primi, obţinuţi în etapa anterioar ă, este următorul:

Algoritmul 1.2. 

a) Se construieşte un tabel al implicanţilor primi, având drept cap de linieimplicanţii primi ai funcţiei şi cap de coloană termenii canonici ai funcţiei. Laintersecţia unei linii cu coloană se pune un semn, de exemplu asterisc, dacă implicantul

 prim de pe linia respectivă include termenul canonic de pe coloana respectivă. Pentruexemplul considerat mai sus (ecuaţia 1.37) se obţine tabelul 1.10.  b) Se inspectează tabelul construit la punctul a). Dacă pe o anumită coloană 

există un singur semn, ceea ce înseamnă că termenul canonic de pe acea coloană esteinclus într un singur implicant prim, atunci implicantul prim de pe linia însemnată devine implicant prim esenţial şi intr ă obligatoriu în forma minimă a funcţiei. Seconstruieşte un nou tabel, al implicanţilor primi neesenţiali care rezultă eliminând dintabelul implicanţilor primi liniile cu implicanţi primi esenţiali şi coloanele cu termeniicanonici incluşi în aceştia. Pentru a găsi mai uşor aceste coloane se încercuiesc toatesemnele de pe linia unui implicant prim esenţial şi se elimină apoi toate coloanele cusemne încercuite. De asemenea, se elimină liniile pe care nu au mai r ămas semne şi

coloanele care au semne pe acelaşi rânduri ca şi o altă coloană din tabelul implicanţilor  primi neesenţiali, adică, dacă mai mulţi termeni canonici sunt incluşi în exact aceeaşiimplicanţi primi neesenţiali, se reţine un singur reprezentant al acestora, deoarece oriceimplicant care îl include pe acesta va include automat şi pe cei omişi (tabelul 1.11.)

c) Se inspecteză tabelul implicanţiilor primi neesenţiali în scopul găsirii uneiacoperiri cu cost minim, pentru toţi termenii canonici r ămaşi în acest tabel. În unelecazuri se pot găsi mai multe acoperiri care satisfac această condiţie, fiecare avândacelaşi cost. În astfel de situaţii funcţia are mai multe forme minime disjunctive.

d)Făcând suma booleană a implicanţilor primi esenţiali găsiţi la punctul b) şi acelor neesenţiali găsiţi la punctul c) se obţine forma minimă disjunctivă a funcţiei date.

Page 40: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 40/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 41

TABELUL 1.10.Termeni canoniciImplicanţi

 primix4x3x2x1x0 

Indici0 1 2 4 6 7 8 9 11 13 151718 19 22242627283031

Observaţii

x 0 0 0 1 1,17 * *

x 1 0 0 0 8,24 * *0 0 1 1 x  6,7  * *1 0 0 x 1 17,19 * *0 x 1 1 1  7,15  * *0 x 0 0 x 0,1,8,9 * * * *0 0 x x 0 0,2,4,6 * * * * Ex 0 x 1 0 2,6,18,22 * * * *0 1 x x 1 9,11,13,15 * * * * E1 x x 1 0 18,22,26,30 * * * *1 x 0 1 x 18,26,19,27 * * * *1 1 x x 0 24,26,28,30 * * * *x 1 x 1 1 11,15,27,31 * * * *

1 1 x 1 x 26,27,30,31 * * * *1 1 1 x x 28,27,30,31 * * * *

Conform tabelului 1.10., pentru funcţia a cărei ecuaţie este dată relaţia (1.27)există doi implicanţi primi esenţiali. Aceşti termeni vor trebui să apar ă obligatoriu înexpresia minimă normală disjunctivă a funcţiei.

Căutăm acum o acoperire minimă a celorlalţi termeni canonici ai funcţiei şiconstruim tabelul 1.11. conform regulii prezentate la punctul b al algoritmului 1.2.

TABELUL 1.11.Termeni canonici ObservaţiiImplicanţi

 primix4x3x2x1x0 Indici 1 7 8 1718 1922242627283031

x 0 0 0 1 1,17 * * Ax 1 0 0 0 8,24 * * A0 0 1 1 x 6,7 * A1 0 0 x 1 17,19 * *0 x 1 1 1 7,15 *0 x 0 0 x 0,1,8,9 * *x 0 x 1 0 2,6,18,22 * * A1 x x 1 0 18,22,26,30 * * * *1 x 0 1 x 18,26,19,27 * * * * A1 1 x x 0 24,26,28,30 * * * *x 1 x 1 1 11,15,27,31 * *1 1 x 1 x 26,27,30,31 * * * *1 1 1 x x 28,27,30,31 * * * * A

Dacă din tabelul 1.11. se iau implicanţii primi de pe rândurile notate cu  A seobţine o acoperire a funcţiei. Aceasă acoperire nu este singura, existând posibilitatea dea selecta alţi implicanţi primi pentru a obţine o acoperire a funcţiei. Se va alege aceaacoperire a funcţiei, care, în funcţie de criteriul ales, dă acoperirea de cost minim.

Pentru exemplu considerat, consider ănd acoperirea din tabelul 1.11., rezultă :

234124013

1234012301230340345

 x x x x x x x x x

 x x x x x x x x x x x x x x x x x x f 

+++

+++++=  (1.39)

Page 41: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 41/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 42

1.4.4. Minimizarea funcţiilor logice combinaţionale incomplet definite 

Se consider ă că o funcţie logică combinaţională este incomplet definită dacă  pentru anumite combinaţii a variabilelor de intrare valoarea funcţiei poate fi oricare (nu

interesează dacă pentru anumite combinaţii ale variabilelor de intrare, valoarea funcţieieste zero sau unu). Aceste valori se notează în tabelul de adevăr a funcţiei respective cuun anumit simbol (de exemplu litera „u”).

Prezentăm în continuare un astfel de exemplu a unei funcţii logicecombinaţionale de patru variabile (tabelul 1.12).

TABELUL 1.12nr.crt.

x3 x2 x1 x0 y0nr.crt.

x3 x2 x1 x0 y0nr.crt.

x3 x2 x1 x0 y0nr.crt.

x3 x2 x1 x0 y0

0 0 0 0 0 1 4 0 1 0 0 1 8 1 0 0 0 u 12 1 1 0 0 11 0 0 0 1 1 5 0 1 0 1 u 9 1 0 0 1 u 13 1 1 0 1 0

2 0 0 1 0 1 6 0 1 1 0 1 10 1 0 1 0 1 14 1 1 1 0 13 0 0 1 1 u 7 0 1 1 1 u 11 1 0 1 1 1 15 1 1 1 1 0

Această funcţie este descrisă de relaţiile (1.40).

0123012301230123

012301230123012301234

 x x x x x x x x x x x x x x x x

 x x x x x x x x x x x x x x x x x x x x f 

++++

+++++=  (1.40a)

u x x x x x x x x x x x x x x x x x x x x ===== 01230123012301230123   (1.40b)

 

unde relaţia (1.40a) reprezintă forma normală disjunctivă a păr ţii definite din funcţie, iar relaţia (1.40b) precizează că restul combinaţiilor de valori ale variabulelor de intrare,corespunzătoare păr ţii nedefinite din funcţie, nu apar în funcţionare, prin urmare pot ficonsiderate combinaţii indiferente.

Pentru minimizarea acestei funcţii se întocmeşte tabelul din figura 1.15.

Forma normală disjunctivă minimă a funcţiei incomplet definite (1.40) este dată în ecuaţia (1.41).

23

01

0134

x x x x x x x f  +++=   (1.41)

 x1x0

x3x200 01 11 10

00 1 1 u 1

01 1 u u 1

11 1 0 0 110 u u 1 1

Figura 1.15. Diagrama Karnaugh pentru funcţia (1.40).

3 x

01 x x

23 x x

01 x x

Page 42: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 42/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 43

Având în vedere faptul că funcţia este incomplet definită se poate găsi şi o altă acoperire a funcţiei (figura 1.16).

Funcţia obţinută, în acest caz, este (ecuaţia 1.42):

12301213014 x x x x x x x x x x f  +++=   (1.42)

 Este important de reţinut faptul că pentru combinaţiile notate cu « u » nu trbuie

asicurată o acoperire deoarece aceste valori sunt indiferente (pot fi zero sau unu). Dinacest motiv se pot găsi mai multe acoperiri ale funcţiei. Se va considera expresiaminimizată a funcţiei, acea expresie care va corespunde unui anumit criteriu adoptat.

În cazul când minimizarea funcţiei combinaţionale par ţial definită se facefolosind metoda Quine-Mc Cluskey, trebuie să consider ăm unele modificări şi anume seadaugă subcuburilor 0-dimensionale şi termenii canonici corespunzători combinaţiilor indiferente. Nu se vor considera însă subcuburile 1-dimensionale care ar rezulta princombinarea între ei a termenilor indiferenţi ci numai cele care rezultă prin combinareaacestora cu alte subcuburi 0-dimensionale. De asemenea nu se va ţine cont de aceştitermeni canonici în tabelul implicanţilor primi, deoarece nu trebuie acoperiţi.

1.4.5. Minimizarea sistemelor de funcţii booleene

Circuitele logice combinaţionale cu n intr ări (x0, x1, … , xn) şi m ieşiri (y0, y1, …,ym) pot fi sintetizate considerând fiecare ieşire separat, ca o funcţie independentă de  n variabile (graf boolean). Pe baza formei canonice, sau a tabelului de adevăr, aplicînd una

dintre metodele de sinteză, se obţine câte o realizarea fizică pentru fiecare ieşire, în finalacestea fiind puse împreună. Acest lucru se face de obicei atunci când metoda de sinteză nu impune minimizarea funcţiilor. Astfel de metode vor fi discutate aici în capitoleleurmătoare.

În cazul în care sinteza se face cu ajutorul por ţilor logice, este necesar să se obţină forma minimă a unui sistem de funcţii booleene de forma (1.1).

Formele minime pentru un sistem de funcţii booleene sunt acele expresii booleene disjunctive sau conjuctive în care apar un numar minim de termeni, respectivfactori normali diferiţi, având un numar minim de literale (variabile de intrare). Pentruobţinerea formelor minime ale unui sistem de funcţii booleene dat, se procedează laminimizarea corelată a funcţiilor acestuia, adică la determinarea setului minim de

implicanţi primi care acoper ă toţi termenii canonici ai tuturor funcţiilor sistemului.

x1x0

x3x200 01 11 10

00 1 1 u 1

01 1 u u 111 1 0 0 1

10 u u 1 1

Figura 1.16. Diagrama Karnaugh pentru funcţia (1.40).

01 x x

123 x x x

13 x x

012 x x x

Page 43: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 43/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 44

Una dintre metodele de minimizare corelată a mai multor funcţii booleene, f 1, f 2,… f n se bazează pe determinarea implicanţilor primi ai funcţiilor f 1, f 2, … f n  şi aifuncţiilor produs f 1f 2, f 1f 3, …, f n-1f n, f 1f 2f 3, f 1f 3f 4, f n-2f n-1f n, …, f 1f 2f 3·…· f n. Având acestset de implicanţi primi, se calculează acoperirile posibile pentru fiecare dintre funcţii iar 

apoi se alege cea mai avantajoasă combinaţie de acoperiri din punct de vedere alcostului, care reprezintă acoperirea minimala a sistemului.Pentru obţinerea acoperirii minimale după această metodă se parcurg

urmatoarele etape:

Regula 1.2. 

a) Se calculează funcţiile produs. De exemplu, se cere minimizarea sistemului defuncţii:

( )

( )

( )∑∑∑

=

=

=

7,6,5,2,0

6,5,4,1

7,6,5,1

23

13

03

 f 

 f 

 f 

  (1.43)

unde sub semnul sumei booleene s-au dat indicii termenilor canonici prezenţi înforma canonică disjunctivă a funcţiei.În prima etapă se calculează funcţiile produs:

Functiile (1.44) conţin termenii canonici comuni pentru cele două, respectiv treifuncţii inmulţite logic.

( )

( )

( )( )∑

∑∑

=⋅⋅=⋅

=⋅

=⋅

6,56,5

7,6,5

6,5,1

23

13

03

2

3

1

3

23

03

13

03

 f  f  f 

 f  f 

 f  f 

 f  f 

  (1.44)

 

x1x0

x2 00 01 1110

0 0 1 0 01 0 1 1 1

03 f   

x1x0

x2 00011110

0 0 1 0 01 1 1 0 1

 13 f   

x1x0

x2 0001 1110

0 1 0 0 11 0 1 1 1

23 f   

x1x0

x2 00 01 1110

0 0 1 0 01 0 1 0 1

13

03 f  f  ⋅  

x1x0

x2 00011110

0 0 0 0 01 0 1 1 1

 2

30

3 f  f  ⋅  

x1x0

x2 0001 1110

0 0 0 0 01 0 1 0 1

23

13

03

23

13

 f  f  f 

 f  f 

⋅⋅=

=⋅ 

Figura 1.17. Minimizarea sistemelor de func ii booleene

Page 44: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 44/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 45

 b) Se determină implicanţii primi ai fiecăreia dintre funcţiile boleene (1.43) şi(1.44).

În cazul exemplului considerat, pentru determinarea implicanţilor primi ai

acestor funcţii se folosesc diagramele Karnaugh din figura 1.17. Din această figur ă se obţin, pentru funcţiile considerate, implicanţii primi din tabelul 1.13. Înacest tabel sunt trecute funcţiile booleene şi produsele dintre acestea, acoperireaobţinută prin selectarea acelor subcuburi care conţin termenii formei normaldisjunctive şi care nu mai sunt conţinuţi în alte subcuburi şi termenii r ămaşinegrupaţi. De asemenea în tabel se trec indicii termenilor canonici ce formează fiecare subcub, expresia termenului nou obţinut şi notaţia adoptată pentru aceştitermeni (vezi punctul c.).

TABELUL 1.13. Implicanţi primi Implicanţi primi

Funcţia Indici Expresie Notaţie Funcţia Indici Expresie Notaţie1 2 3 4 1 2 3 4

1,5 01 x x   - 1,5 01 x x   e

5,7 02 x x   -

13

03 f  f  ⋅  

6 012 x x x   -0

3 f   

7,6 12 x x   - 5,7 02 x x   d

1,5 01 x x   i2

30

3 f  f  ⋅  7,6 12 x x   c

13 f   

4,6 02 x x   h 5 012 x x x    b

5,7 02 x x   -

2,6 01 x x   g23 f   0,2 02 x x   f 

231303

23

13

 f  f  f 

 f  f 

⋅⋅

=⋅

6 012 x x x   a

c) Se notează simbolic implicanţii primi ai sistemului, pe coloana 4 a tabelului1.13, începând cu ultimul implicant prim al ultimei funcţii produs. Implicanţii

 primi care apar de mai multe ori se notează o singur ă dată.

d) Se intocmeşte un tabel al acoperirilor funcţiilor sistemului, în care se înscriu pelinii toţi implicanţii primi găsiţi la punctul b), iar pe coloane termenii canonici aifiecareia dintre funcţiile sistemului, luate în ordine. Tabelul 1.14 reprezintă tabelul

acoperirilor sistemului de funcţii (1.43).

e) Se completează tabelul acoperirilor, marcând, de exemplu cu un asterisc,coloana termenilor canonici ai funcţiilor sistemului, în dreptul linieiimplicantului prim în care aceştia sunt incluşi. Trebuie menţionat că acest lucrueste posibil numai dacă implicantul prim respectiv este implicant prim al funcţieiconsiderate sau al unei funcţii produs al acesteia. Pentru a respecta această condiţie s-a prevazut in tabelul 1.14 o coloană în care se specifică funcţiile înacoperirile cărora poate intra fiecare implicant prim.

Page 45: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 45/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 46

 

TABELUL 1.14. Implicanţi primi Termeni canonici

Funcţia 13 f  Funcţia 23 f  Funcţia 33 f    Notaţie Indici Funcţii1 5 6 7 1 4 5 6 0 2 5 6 7

a 6 23

13

03 ,, f  f  f  * * *

 b 5 23

13

03 ,, f  f  f  * * *

c 7,6 23

03 , f  f    * * * *

d 5,7 23

03 , f  f    * * * *

e 1,5 13

03 , f  f    * * * *

f  0,2 23 f    * *

g 2,6 23 f    * *

h 4,6 13 f    * *

i 1,5 13 f    * *

f) Pe baza tabelului 1.14 se determină acoperirile fiecărei funcţii, conform celor aratate în paragraful 1.4.3. Pentru exemplul considerat, acoperirea functiei 1

3 f   

notata )13 f  A , este :

) 21

0

3A Aedaec f  A +=+=  

(1.45) De asemenea:

211

3 B Behhi f  A +=+=   (1.46)

 iar:

) 43212

3 C C C C abcf adf cbf dfg  f  A +++=+++=   (1.47) 

Prin urmare, pentru funcţia0

3 f  s-au găsit două acoperiri, pentru1

3 f  de asemeneadouă acoperiri, iar pentru 2

3 f  patru acoperiri. Pentru a forma o acoperire a

sistemului se ia câte una din acoperirile fiecarei funcţii. Pentru a găsi acoperireaminimală a sistemului se continuă cu punctul urmator.

g) Se scriu toate acoperirile posibile ale sistemului de funcţii şi se alege dintreacestea acoperirea cu număr minim de elemente. Numarul acoperirilor posibileeste dat de produsul numerelor acoperirilor fiecăreia dintre funcţii.

Page 46: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 46/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 47

TABELUL 1.15. 

  Nr. crt. AcoperireElementeleacoperirii

 Numărulelementelor 

Variabile deintrare

1

23456789101112

13141516

A1B1C1 

A1B1C2A1B1C3

A1B1C4

A1B2C1

A1B2C2

A1B2C3

A1B2C4

A2B1C1

A2B1C2

A2B1C3

A2B1C4

A2B2C1

A2B2C2

A2B2C3

A2B2C4 

echidfg

echicbf echiadf echiabcf echdfgechcbf echadf echabf edahifgedahicbf edahif 

edahibcf 

edahfgedahcbf edahf 

edahbcf 

7

77866667868

6757

14

1515181213131415181318

13161116

Pentru exemplul luat există 2x2x4 = 16 acoperiri (enumerate in tabelul 1.15). Numărul elementelor unei acoperiri a sistemului este egal cu numarul implicanţilor   primi distincţi care intr ă în acoperirile tuturor funcţiilor din sistem. Din tabelul 1.15rezultă că pentru sistemul de funcţii considerat, poate fi luată ca acoperire minimală 

 poziţia a cincisprezecea, cu cinci elemente, ce conţin unsprezece variabile de intrare. Numărul de variabile de intrare a termenilor conţinuţi de forma normal disjunctivă aunei funcţii indică numărul de intr ări ai por ţii logice ce implementează termenulrespectiv. Pe baza acoperirii minimale gasită la punctul g) se scriu expresiile minime alesistemului de funcţii.

Pentru exemplul tratat, corespunzator acoperirii se obtin expresiile (1.48).

012020222

3

020111

3

012020100

3

 x x x x x x x y f 

 x x x x y f 

 x x x x x x x y f 

++==

+==

++==

  (1.48)

 

Realizarea fizică a sistemului de ecuaţii (1.48) este prezentată în figura 1.18.Verificarea soluţiei obţinute poate fi f ăcută cu ajutorul unui program în limbaj

PASCAL în care se compar ă valorile funcţiilor canonice cu cele minimizate. Dacă   pentru fiecare combinaţie posibilă a variabilelor de intrare cele două veloricorespunzătoare aceleiaşi funcţii în forma canonică  şi în forma inimizată sunt egale,atunci putem spune că s-a obţinut o soluţie corectă. Acest mod de verificare reprezintă de fapt construirea automată a tabelelor de adevăr ale funcţiilor date şi comparareaacestora.

PROGRAMUL 1.2. Program logic2;

{se verifica daca forma minima a

Page 47: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 47/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 48

unui sistem de ecuatii de functii logice este corect}

var y0_c,y1_c,y2_c,y0_m,y1_m,y2_m,x0,x1,x2:boolean;

 beginfor x2:= false to true do

for x1:= false to true dofor x0:= false to true do begin{se compara forma canonica a functiei cu cea minimizata}{forma canonica - ecuatiile (1.43)}

y0_c := ((not x2) and (not x1) and x0) or (x2 and (not x1) and x0) or (x2 and x1 and (not x0)) or (x2 and x1 and x0);y1_c := ((not x2) and (not x1) and x0) or (x2 and (not x1) and (not x0)) or (x2 and (not x1) and x0) or (x2 and x1 and (not x0));y2_c := ((not x2) and (not x1) and (not x0)) or ((not x2) and x1 and (not x0)) or (x2 and (not x1) and x0) or (x2 and x1 and (not x0)) or (x2 and x1 and x0);

{forma minima - ecuatiile (1.48)}y0_m := ((not x1) and x0) or (x2 and x0) or (x2 and x1 and (not x0));y1_m := ((not x1) and x0) or (x2 and (not x0));y2_m := (x2 and x0) or ((not x2) and (not x0)) or (x2 and x1 and (not x0));

if (y0_c<>y0_m) or (y1_c<>y1_m) or (y2_c<>y2_m) then begin

writeln('Ecuatiile nu sunt egale! Apasati ENTER');readln;halt(1);

end;end;writeln('Ecuatiile sunt egale. Apasati ENTER');readln;end.

Y2

U3A

7408

1

23e

U16A

7432

1

23

h

U11A

7432

1

23

X0

U6A

7404

1 2

U12A

7408

1

23

U4A

7411

1122

13

U13A

7404

1 2

f

Y1

Y0

X1

U14A

7432

1

23

a

X2

d

U5A

7404

1 2

U2A

7408

1

23

U10A

7408

1

23

U17A

7432

1

23

Figura 1.18. Realizarea fizică a sistemului de ecuaţii (1.24).

Page 48: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 48/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 49

O altă posibilitate de verificare a soluţiei obţinute este cea de compararea aformelor de undă obţinute la ieşirea circuitului logic combinaţional atunci când laintrarea acestuia combinaţiile posibile ale variabilelor de intrare se scced cu o anumită frecvenţă. Aşa cum se observă, citind un tabel de adevăr pe verticală, variabila de rang

minim (x0 – variabila cu rangul zero) îşi schimbă valoarea cu frecvenţa cea mai mare.Vom nota această frecvenţă cu f 0. În acest caz variabila de rang maxim îşi schimbă valoarea cu frecvenţa f n = f 0 / 2n, unde n este rangul variabilei.

Pentru exemplificare vom considera tabelul de adevăr a sistemului funcţiilor logice combinaţionale (tabelul 1.16) dat de ecuaţiile (1.43).

Dacă stabilim o anumită durată de timpΔt în care semnalul corespunzător intr ării derang minim x0 se schimbă (ia succesiv valoareazero şi valoarea unu – perioada semnalului),atunci duratele se vor dubla la fiecare trecerespre o variabilă de rang superior; de exemplu:

  pentru x1 vom avea 2Δt, pentru x2 vom avea4Δt, ş.a.m.d. Astfel, dacă notăm cu f 0 frecvenţasemnalului x0, atunci frecvenţa semnalului x1 va fi f 1=f 0/2, frecvenţa semnalului x2 va fif 2=f 1/2=f 0/4 etc.

Aplicănd un astfel de set de semnale laintrare se vor obţine la ieşire semnalecorespunzătoare evoluţiei în timp a funcţieilogice combinaţionale. Asfel de semnale sunt

mult utilizate în analiza circuitelor cu dispozitive digitale şi din acest motiv această 

tehnică va fi prezentată în capitolele următoare.În figura 1.19 sunt prezentate semnalele de intrare x0, x1 şi x2 şi semnalele deieşire y0, y1 şi y2 ale sistemului de funcţii (1.43). Datorită timpului finit de propagare asemnalelor prin por ţile logice, modificarea ieşirii se face cu o anumită întârziere faţă demodificarea semnalelor de intrare în funcţie de caracteristicile definite pentru por ţilelogice utilizate. Mai întâi vom considera o variaţie lentă a semnalelor pentru caîntârzierile să nu se manifeste şi circuitul să se comporte ca unul ideal (figura 1.19).

Comparativ cu figura 1.19, în figura 1.20 se observă că la frecvenţe mari, cu

ordinul de mărime al perioadei comparativ cu timpul de întârziere al por ţilor logice,apariţia unei deplasări spre dreapta (o întârziere) cu t pHL pe axa timpului a semnalului deieşire. De asemenea trebuie semnalat faptul că la ieşire pot apărea comutări ce nu sunt întabelul de adevăr al funcţiei (zona notată cu A – apariţia unei valori zero a funcţiei y1 – în figura 1.20). Acest fenomen numit hazard nu poate fi detectat decât la analiza

TABELUL 1.16. Variabile

deintrare

Funcţii deieşireNr.crt.

x2x1x0 y2 y1 y0

0 0 0 0 0 0 11 0 0 1 1 1 0

2 0 1 0 0 0 1

3 0 1 1 0 0 0

4 1 0 0 0 1 0

5 1 0 1 1 1 1

6 1 1 0 1 1 1

7 1 1 1 1 0 1

Figura 1.19. Semnalele circuitului descris de ecuaţiile (1.43) la frecvenţă scăzută.

Page 49: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 49/150

Page 50: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 50/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 51

 

În figura 1.23. se poate vedea faptul că formele de undă de ieşire y0C, y1C respectiv y2C corespunzătoare ecuaţiilor canonice (1.43) sunt identice cu formele deundă y0M, y1M respectiv y2M corespunzătoare ecuaţiilor minimizate. Acest lucrudemonstrează faptul că minimizarea sistemului de funcţii logice (1.43) a fost f ăcută corect.Din analiza în domeniul timp a circuitului obţinut s-a constatat apariţia hazardului lafrecvenţe ridicate pe ieşirea y1. Evitarea apariţiei hazardului va fi discutată în capitolulurmător.

1.5. Apariţia hazardului

Fenomenul apariţiei unor comutări neaşteptate la ieşirea unui circuit logiccombinaţional, datorate modificării stării uneia sau mai multor intr ări ale circuitului, senumeşte hazard.

Hazardul se datorează în general timpului de propagare şi timpului de comutaţieal por ţilor logice reale.

Studiul circuitelor logice se face în regim staţionar când astfel de fenomene nu

 pot fi detectate sau în regim tranzitoriu când se pune în evidenţă apariţia hazardului.

1

1

U2F

7404

13 12

0

0

U3D

7432

12

13

11

Y1M

1

0

0

U4D

7408

12

13

11

d

U2E

7404

11 10

U4C

7408

9

10

8

U3C

7432

9

10

8

U3A

7432

1

2

3

1

0

f

a

1

0

CLK

A1OFFTIME = 1.25s

ONTIME = 1.25s

DELAY = 0

STARTVAL = 0

OPPVAL = 1

CLK

B1OFFTIME = 2.5s

ONTIME = 2.5s

DELAY = 0

STARTVAL = 0

OPPVAL = 1

h

V

U3B

7432

4

5

6

U2C

7404

5 6

0

1

U4B

7408

4

5

6e

U1A

7411

1

122

13

CLK

C1OFFTIME = 5s

ONTIME = 5s

DELAY = 0

STARTVAL = 0

OPPVAL = 1

1

U2A

7404

1 2

1

0

1

U2B

7404

3 4

V

V

X2

0

U4A

7408

1

2

3

Y2M

X1

0

U2D

7404

9 8

V

0

V

V

0

1

Y0M

X0

0

Figura 1.22. Circuitul realizat cu porţi logice a sistemului funţiilor logicedisjunctive minimizate (1.24)

Figura 1.23. Rezultatul simulării circuitelor din figura 1.21. şi 1.22.

Page 51: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 51/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 52

Rezultă imediat că o soluţie de combatere a hazardului este sincronizarea circuituluicombinaţional cu ajutorul unui semnal de tact care să permită modificarea ieşiriicircuitului numai după ce ieşirea acestuia s-a stabilizat (componenta tranzitorie asemnalului de ieşire a dispărut).

Analiza în regim staţionar se face de regulă în scopul verificării circuitului din  punct de vedere logic, iar analiza în regim tranzitoriu se face în scopul studieriicomportării în timp a circuitului.

La circuitele logice combinaţionale putem întâlni două tipuri de hazard :

a. hazardul static caracterizat prin apariţia unui singur impuls la ieşireacircuitului logic combinaţional ca rezultat al schimbării stării uneiintr ări. Hazardul static este de două feluri:

a.1. hazardul static-1 la care ieşirea circuitului logiccombinaţional trebuie să fie unu dar apare o tranziţie scurtă înzero ca rezultat al schimbării stării unei intr ări; acest tip de hazard

apare în cazul circuitelor construite cu por ţi AND şi OR pe bazafuncţiilor canonice disjunctive;a.2. hazardul static-0 la care ieşirea circuitului logiccombinaţional trebuie să fie zero dar apare o tranziţie scurtă înunu ca rezultat al schimbării stării unei intr ări; acest tip de hazardapare în cazul circuitelor construite cu por ţi OR  şi AND pe bazafuncţiilor canonice conjuctive;

  b. hazardul dinamic la care ieşirea circuitului comută de mai multe ori laschimbarea stării unei singure intr ări. Acest tip de hazard nu este

 posibil în cazul circuitelor construite numai cu por ţi AND şi OR .

Hazardul static poate fi detectat şi eliminat cu ajutorul diagramelor Karnaugh. Pentru exemplificare vom considera circuitul din figura 1.24. Inversoarele U5A,

U6A şi U7A nu fac parte din circuit, ele sunt folosite la simulare împreună generatoarele de semnal digital x0,x1 şi x2 în aşa fel încât semnalul aplicat circuitului să înceapă cu starea zero.

Acest circuit construit cu por ţi AND şi OR , care evident are la bază o ecuaţiecanonică de tip disjunctiv, prezintă un hazard static 1 atunci când x2=1, x0=1 şi x1 comută din unu în zero.

Să presupunem că toate por ţile logice ale circuitului din figura 1.24 au acelaşitimp de propagare Δt. În această situaţie putem desena un detaliu al diagramei de timp(figura 1.25) a circuitului din figura 1.24.

U4A

7432

1

23

0

0

0

V

0

1

V

CLK

X2

V1

1

U5A

7404

1 2

U1A

7408

1

23

0

1

Y0CLK

X1

CLK

X0 0U7A

7404

1 2

VU2A

7408

1

23

U6A

7404

1 2

U8A

7404

1 2

 Figura 1.24. Circuitul pentru explicarea fenomenului de hazard.

12 x x

01 x x

Page 52: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 52/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 53

 Comutarea semnalului de intrare x1 din unu în zero duce la comutarea din zero

în unu a semnalului 1 x după timpul Δt datorită întârzierii prin poarta U8A. Semnalul x1 se aplică împreună cu semnalul x0 por ţii U2A care comută în zero după Δt (timpul

necesar trecerii semnalului prin această poartă). Luând ca referinţă momentul comutăriisemnalului x1 din unu în zero, comutarea por ţii U2A din unu în zero se face după Δt.

Similar, poarta U1A care era în zero datorită semnalului 1 x va comuta în unu după untimp egal cu Δt (timpul de întârziere a por ţiiU1A). Dacă ne raportăm la aceeaşi referinţă,momentul comutării semnalului x1 din unu înzero, comutarea por ţii U1A se va face după 2Δt. Reamintim că semnalele x0  şi x2 auvaloarea unu. Datorită diferentei de timp egală cu Δt a comutării celor două por ţi apare un

impuls la ieşire cu valoarea zero cu durata Δt,impuls ce nu ar trebui să apar ă dacă por ţile ar fi ideale.

În figura 1.26 se prezintă rezultatulsimulării circuitului din figura 1.24.

1.5.1. Eliminarea hazardului cu ajutorul diagramelor Karnaugh

Hazardul static-1Hazardul static-1 apare atunci când o variabilă de intrare directă  şi

complementul acesteia sunt conectate la două por ţi AND diferite.Atunci cînd folosim o diagramă Karnaugh, identificarea hazardului se poate face

 prin identificarea subcuburilor adiacente ce cuprind termeni canonici diferiţi ai funcţiei.

Pentru exemplificare scriem ecuaţia canonică disjunctivă pentru circuitul dinfigura 1.24.

01120 x x x x y +=   (1.49)

 Tabelul Karnaugh corespunzător acestei ecuaţiieste cel din figura 1.27.a. Din tabelul Karnaugh se

observă că tranziţia de la suprafaţa 12 x x la

suprafaţa 01 x x se face prin tranziţia variabilei x1.

Pentru eliminarea hazardului static-1 se adaugă unsubcub suplimentar (implicant prim) care să 

Figura 1.25. Diagrama de timpexplicativă pentru apari ia hazardului

Figura 1.26. Rezultatul simulării circuitului din figura 1.24.

hazard static-0

hazard static-1

x1x0 x2

00 01 11 10

0 0 0 1 01 1 1 1 0

Figura 1.27.a. Tabelul Karnaugh

Page 53: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 53/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 54

conecteze cele două suprafeţe, asa cum este ar ătat în figura 1.27.b.

Ecuaţia normală disjunctivă pentru cu hazardul

eliminat este:

0201120 x x x x x x y ++=   (1.50)

 Circuitul obţinut, corespunzător ecuaţiei (1.27.b) este cel din figura 1.28 iar 

rezultatele simulării în figura 1.29.

Aşa cum se observă din figura 1.29 hazardul static-1 din semnalul de ieşire y0 este eliminat..

O altă posibilitate de eliminare a hazardului este cea de modificare a întârzierilor în circuit prin adăugarea sau eliminarea de por ţi. De exemplu în figura 1.28. se poate

renunţa la inversorul U8A semnalul 1 x  putând fi cules direct de la intrarea por ţii U6A.În acest caz se poate renunţa la poarta U3A. Din acest exemplu rezultă importanţa

deosebită a simulării funcţionării circuitelor logice, activitate ce poate scurtaconsiderabil timpul de proiectare şi punere la punct a unui circuit.

Hazardul static-0 Hazardul static-0 apare la circuitele compuse din por ţi logice OR-AND, descrise

de ecuaţii normale conjunctive, atunci când o variabilă de intrare directă  şicomplementul acesteia sunt conectate la două por ţi OR diferite.

Eliminarea hazardului-0 se face printr-o metodă duală celei de eliminare ahazardului static-1 cu ajutorul diagramelor Karnaugh. Hazardul static-0 poate fiidentificat acolo unde, în diagrama Karnaugh, apar suprafeţe adiacente, formate dinzerouri, care acoper ă sume de termeni diferiţi. Eliminarea hazardului se va face prin

x1x0 x2

00 01 11 10

0 0 0 1 01 1 1 1 0Figura 1.27.b. Tabelul Karnaugh

Figura 1.29. Rezultatele simulării circuitului din figura 3.51.

U5A

7404

1 2CLK

X2

1

1

0

U9A

7404

1 2

0

U1A

7408

1

230

0

0

0U7A

7404

1 21

0

CLK

X00

U6A

7404

1 2

U2A

7408

1

23

Y0

U4A

7427

12

1312

U8A

7404

1 2

CLK

X1

1

U3A

7408

1

23

 Figura 1.28. Eliminarea hazardului.

Page 54: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 54/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 55

inserarea unui subcub suplimentar (implicant prim) care reprezintă o sumă de termeni aifuncţiei şi care acoper ă tranziţia variabilei care produce hazardul.

De asemenea se poate utiliza metoda modificării corespunzătoare a întărzierilor  prin adăugarea şi eliminarea de por ţi şi simularea circuitului.

1.6. Analiza circuitelor logice combinaţionale cu ajutorul pachetului deprograme OrCAD

Acest capitol nu este destinat învăţării lucrului cu mediul OrCAD. Vor fi date doar indicaţii succinte privind analiza unui circuit digital începând de la proiectarea schemei şiîncheind cu simularea acesteia. Din acest motiv, pentru învăţarea lucrului în OrCAD vor trebui consultate manualele dedicate acestui scop.

Produsul OrCAD reprezintă o colecţie de aplicaţii construite conform fluxuluide proiectare ingineresc. OrCAD CIS (Component Information System) reprezintă ocomponentă opţională a sistemului OrCAD ce este folosită împreună cu OrCADCapture. OrCAD CIS permite managementul proprietăţilor componentelor electronice,necesare fiecărei etape, pe durata proiectării schemei electrice, până la realizareacablajului imprimat. Cu ajutorul acestui sistem proiectele realizate şi cele viitoare suntactualizate cu informaţiile existente la producătorii componentelor electronice şi în

 bazele de date prin intermediul reţelei Internet.Principalele componentele ale sistemului OrCAD cu ajutorul cărora se

realizează proiectarea unui circuit electric, începând cu proiectarea schemei electrice şiterminând cu simularea acesteia şi proiectarea cablajului imprimat sunt:

o OrCAD Capture sau OrCAD Capture CIS – destinat proiectării

schemelor electrice,o OrCAD Express sau OrCAD Express CIS – destinat proiectării

dispozitivelor logice digitale şi a dispozitivelor logice programabile,o OrCAD Layout – destinat proiectării cablajelor imprimate,o OrCAD Pspice – destinat simulării circuitelor electrice analogice,o OrCAD PSpice A/D – destinat simulării circuitelor electrice

analogice, digitale şi mixte analogice şi digitale.

Pentru simularea unui circuit logic combinaţional realizat cu por ţi logice estenecesar ă mai întâi realizarea circuitului electric cu ajutorul componentei OrCADCapture. Se va explica în continuare

modul de realizare şi de simulare aschemei din figura 1.24 cu ajutorul pachetului de programe OrCAD ver. 9.1.

1.6.1. Proiectarea schemei electronicecu ajutorul programului OrCADCAPTURE

1.6.1.1.Începerea unui proiect nou

Pentru începerea unui proiect nou,se porneşte programul OrCAD Capture şi

se selectează din meniul principal File,Figura 1.30. Definirea unui proiect nou.

Page 55: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 55/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 56

apoi New după care se selectează opţiunea Project. Se deschide o fereastr ă pentrucrearea unui proiect nou, ca în figura 1.30.

În această fereastr ă trebuie scris numele proiectului (aici a fost ales numele „test1”), se

alege tipul de proiect „Analog or Mixed SignalCircuit Wizard” prin selectarea acestei opţiunişi apoi directorul unde se va găsi noul proiect(aici „E:\Proiecte”) după care se apasă pe

 butonul Ok .Apare o nouă fereastr ă ca cea din figura

1.31 în care se cere includerea bibliotecilor Pspice care se vor folosi în acest proiect.Încluderea bibliotecilor suplimentare se poate

face şi pe parcursul elabor ării schemei electrice deci în această fază putem să selectăm

doar o parte din bibliotecile de componente folosite. Bibliotecile de componente Pspice(cu extensia .olb) conţin, pe lângă simbolulcomponentei folosite şi modelul aesteia (definitconform regulilor programului SPICE) folosit lasimulare.

Vom selecta biblioteca 7400.olb după care seapasă butonul Add>> pentru a adăuga această 

 bibliotecă iar în final se apasă butonul Finish.Terminarea definirii proiectului nou determină 

apariţia mai multor ferestre în spaţiul programuluiOrCAD Capture: fereastra pentru gestiunea

  proiectului care are numele proiectului, fereastra  pentru desenarea schemei cu numele / -

Figura 1.31. Selectarea bibliotecilorproiectului.

Figura 1.32. Deschiderea unui proiect în OrCAD Capture.

Fereastra pentrudesenarea schemei

Fereastrapentru

gestionareaproiectului

Fereastra de mesaje

Meniul principal

Figura 1.33. Fereastra pentrugestiune a proiectului

Page 56: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 56/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 57

(SCHEMATIC : PAGE1) şi fereastra de mesaje cu numele Session Log (figura 1.32).

1.6.1.2.Plasarea componentelor în schema electronică 

Pentru plasarea componentelor în schema electrică se selectează fereastra pentrudesenarea schemei (/ - (SCHEMATIC : PAGE1)). Dacă această fereastr ă nu esteafişată se face dublu clic pe pictograma acesteia din fereastra de gestiune a proiectuluiar ătată în figura 1.33. (pentru desf ăşurarea structurii proiectului se va face clic pesimbolul „+”). În continuare, atunci când nu se specifică altfel, prin expresia „se face(dublu) clic” se înţelege acţionarea butonului din stânga a mausului.

Plasarea componentelor în schema electrică se poate face selectând opţiuneaPlace din meniul principal după carese selectează opţiunea Part din meniul desf ăşurat

sau se selectează pictograma din bara de unelte (figura 1.34).

La selectarea acestei opţiuni este afişată fereastra din figura 1.35. În această fereastr ă este posibil să adăugăm biblioteci noi – cu opţiunea   Add Library… (dacă aceastea n-au fost adăugate la definirea proiectului – figura 1.31), să eliminăm o

 bibliotecă de componente – cu opţiunea   Remove Library, dacă aceasta nu mai estenecesar ă, sau să căutăm o componentă în biblioteci cu ajutorul opţiunii Part Search… ce permite o căutare complexă.

Reamintim aici faptul că simularea unei scheme electrice necesită existenţamodelelor SPICE ale componentelor respective. Din acest motiv o schemă destinată 

simulării se va realiza exclusiv cu ajutorul componentelor aflate în bibliotecile cuextensia „.olb”.

Pentru realizarea schemei electrice a circuitului din figura 1.24 se vor plasa pedesen por ţile logice. Din acest motiv se va selecta biblioteca „7400” în fereastra

 bibliotecilor folosite în proiectul respectiv iar din fereastra componentelor se vor selectasuccesiv componentele: „7404”, „7408” şi respectiv „7432”.

După selectarea unei componente se apasă butonul OK al ferestrei de selecţiei acomponentei şi simbolul grafic al acesteia apare solidar cu cursorul mausului. Pentru

 plasarea componentei se face clic pe butonul din stânga al mausului. Pentru încheierea

operaţiei de plasare a unui tip de componentă se face clic pe butonul din dreapta al

Figura 1.34. Bara de unelte.

Figura 1.35. Fereastra de selecţie a componentei ce va fi plasată în schema electrică 

Fereastra bibliotecilor folosite înproiectul respectiv

Fereastra componentelor aflate în bibliotecile selectate

Simbolul grafic alcomponentei selectate

Page 57: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 57/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 58

mausului iar în meniul desf ăşurat se selectează  End Mode. Tot în acest meniu suntopţiuni pentru rotirea componentei, aşezarea în oglindă etc. necesare editării schemei.

Pentru plasarea unei noi componente se selectează din nou opţiunea de plasare aunei componente iar operaţiunea se repetă.

După aşezarea tuturor por ţilor logice conform desenului 1.24 se vor plasa laintrarea circuitului generatoarele de semnal. Pentru acesta, în fereastra de selec ţie acomponentei, în fereastra de selecţie a bibliotecii, se va selecta bibliotecaSOURCE.OLB. Din această bibliotecă se va selecta componenta DigClock .

Componenta DigClock este o sursă de semnal digital care este folosit de obiceica semnal de ceas reprezentat de un semnal dreptunghiular periodic. După plasareacomponentei în schema electrică, dacă se face dublu clic pe imaginea acesteia sedeschide fereastra editorului proprietăţilor componentei (Property Editor) în care se

  pot preciza: timpul după care apare prima tranziţie a ceasului (parametrul DELAY),timpul cât durează nivelul ridicat (high), în fiecare perioadă a semnalului de ceas(parametrul ONTIME), timpul cât durează nivelul scăzut (low), în fiecare perioadă a

semnalului de ceas (parametrul OFFTIME), starea nivelului scăzut a semnalului deceas - Low state, implicit aceasta este zero – (parametrul STARTVAL) şi stareanivelului ridicat a semnalului de ceas - High state, implicit aceasta este unu – (parametrul OPPVAL), aşa cum este ar ătat în figura 1.36.

Cele trei semnale de ceas aplicate la intrarea circuitului trebuie să aibă frecvenţele în următoarea relaţie:

210 42 x x x f  f  f  ==   (1.51)

 în aşa fel încât la intrarea circuitului să fiegenerate toate combinaţiile posibile alevariabilelor de intrare conform celor 

 prezentate în paragraful 1.4.5.Pentru aceasta se vor face modificările

 prezentate în tabelul 1.17, în fereastra editorului proprietăţilor componentelor.

Pentru modificarea textului asociat uneicomponente se face dublu clic pe acesta, fapt cedetermină deschiderea ferestrei de afişare a

 proprietăţilor (fereastra   Display Properties – figura 1.37) sau se face clic dreapta şi din

mesajul afişat se selectează opţiunea Edit

Figura 1.36. Fereastra editorului proprietăţilor.

TABEL 1.17.Semnal OFFTIME ONTIME

x0 .125uS .125uS

x1 .25uS .25uS

x2 .5uS .5uS

Figura 1.37. Fereastra de afişare aproprietăţilor textului

Page 58: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 58/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 59

Properties… . În această fereastr ă se fac modificările textului, a dimensiunilor acestuiaetc. Pentru exemplul nostru se va modifica textul în: x0, x1 şi respectiv x2 şi se vor şterge celelalte linii de text. Textul se poate şterge prin selectarea acestuia (clic pe text)şi apăsarea tastei Del.

Datorită faptului că semnalul de ceas porneşte cu starea unu a semnalului, înschemă s-au prevăzut inversoarele U5A, U6A şi U6A (figura 1.24) pentru aducereasemnalului într-o formă convenabilă în corespondenţă cu tabelul de adevăr. Acest lucruse putea realiza şi direct din editorul proprietăţilor componentei însă, având în vederefaptul că, în general, într-un circuit logic combinaţional sunt necesare atât semnalele deintrare directe cât şi cele negate, s-a preferat această soluţie.

În sfâr şit, schemei i se mai adaugă un conector de ieşire. Pentru aceasta seselectează din meniul principal Place opţiunea Hierarchical Port sau se selectează 

  pictograma din bara de unelte. În fereastracare se deschide (figura 1.38) se selectează 

 biblioteca CAPSYM  si din această bibliotecă alegem conectorul  PORTLEFT-L. După  plasarea conectorului se face dublu clic pe textulasociat acestuia care se schimbă în Y0. După 

  plasarea conectorului, activitatea de plasare acomponentelor conform figurii 1.24 se încheie.În continuare componentele trebuie conectateîntre ele prin intermediul legăturilor electrice.

1.6.1.3.Conectarea componentelor schemei electronice

Pentru conectarea componentelor unei scheme electrice în OrCAD CAPTUREexistă mai multe posibilităţi. Opţiunile disponibile în meniul Place sunt: Wire pentru

  plasarea unui traseu electric, cu pictograma în bara de unelte,Bus pentru plasareaunei magistrale în schema electronică, pentru care pictograma în bara de unelte este

, Junction pentru conectarea între ele două trasee electrice (Wire) sau magistrale

(Bus), cu pictograma şi în sfâr şit, Bus entry pentru conectarea magistralei la

componente cu pictograma .În exemplul nostru nu vom avea nevoie decât de trasee electrice (Wire).

Conform schemei prezentate în figura 1.24, pentru a realiza o conexiune electrică seselectează opţiunea Wire din meniul Place sau se selectează pictogramacorespunzătoare din bara de unelte. Se plasează indicatorul mausului în primul punct alconexiunii şi se face clic. Se deplasează indicatorul mausului în punctul următor alconexiunii şi se face din nou clic. În acest fel s-a realizat o conexiune între două puncteşi se poate trece la conexiunea următoare. Pentru a realiza o conexiune corectă aceastatrebuie să fie f ăcută în vârful punctului de conectare f ăr ă suprapuneri cu terminalulcomponentei conectate. Pentru încheierea activităţii de conectare a componentelor, seface clic dreapta şi se selectează End Wire din meniul desf ăşurat.

Pentru plasarea unor etichete traseelor electrice se selectează opţiunea Place din

meniul principal după care se selectează Net Alias… sau se selectează pictograma

Figura 1.38. Fereastra pentruselectarea conectorului

Page 59: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 59/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 60

din bara de unelte. Ca rezultat al acestei acţiuni se afişează o fereastr ă de editare aetichetei pentru unul din traseele electrice. După apăsarea butonului OK , plasareaetichetei se face poziţionând cursorul cu eticheta pe unul din traseele electrice şi f ăcândclic pe acesta.

Utilizarea etichetelor poate fi folositoare, spre exemplu, pentru identificareasemnalelor care circulă între anumite puncte ale schemei electrice. Aceste etichete vor apărea şi pe graficele de semnal construite de simulatorul OrCAD PSPICE.

După conectarea tuturor componentelor se poate face o primă verificare acorectitudinii realizării schemei electrice.

1.6.1.4.Verificarea corectitudinii realizării schemei electrice

Pentru verificarea corectitudinii realizării unei scheme electrice se va selecta înfereastra de gestionare a proiectului (figura 1.33) schema electronică aflată în desenul

 PAGE1. După acesta, în meniul Tools apărut în meniul principal se selectează opţiunea

Design Rules Check… care determină apariţia ferestrei de stabilire a regulilor deverificare a schemei electrice. În această fereastr ă opţiunile implicite sunt suficiente şi

  pentru lansarea verificării se va apăsa butonul OK . În fereastra Session Log vor fiafişate următoarele mesaje:

********************************************************************************** Design Rules Check *********************************************************************************

Checking Pins and Pin Connections

--------------------------------------------------Checking Schematic: SCHEMATIC1--------------------------------------------------Checking Electrical Rules

Checking for Unconnected Nets

Checking for Invalid References

Checking for Duplicate References

Aceste mesaje indică faptul că schema electrică este corectă. În situaţia în careapare o eroare la desenarea schemei, această eroare este semnalată printr-un mesaj şi seafişează coordonatele punctului în care apare eroarea.

După ce desenarea schemei circuitului electronic a fost încheiată, se poate trecela simularea funcţionării circuitului în vederea analizei comportării acestuia şi, apoi, la

 proiectarea cablajului imprimat.Pentru simulare se foloseşte componenta pachetului de programe OrCAD

PSPICE. Pregatirea simulării circuitului electronic presupune stabilirea punctelor de testşi stabilirea profilului simulării.

Page 60: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 60/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 61

1.6.1.5. Plasarea punctelor de test pe schema electronică 

Punctele de test sunt punctele din schema electrică unde utilizatorul doreşte să vizualizeze anumiţi parametri.

Din programul OrCAD CAPTURE se selectează din meniul principal opţiuneaPSpice iar din meniul desf ăşurat, opţiunea Markers.Opţiunea Markers permite alegerea punctelor de test de tip Voltage Level 

(nivel de tensiune), Voltage Differential (diferenţă de tensiune), Current Into Pin (curentul printr-un terminal) şi Advanced care permite o serie de măsur ători complexe.De asemenea, opţiunea Markers permite afişarea tuturor punctelor de măsur ă peschemă (Show All), ascunderea acestora (Hide All), ştergerea (Delete All) şi listareaacestora (List …). Deoarece în urma simulării dorim să urmărim forma tensiunii(nivelele logice) în anumite puncte se va selecta Voltage Level. Simbolul sondei demăsur ă care apare solidar cu indicatorul mausului se plasează la capătul terminalelor unde se doreşte afişarea, în simulatorul PSpice, a formelor de undă ale tensiunii.

Conform figurii 1.24, punctele de măsur ă se vor plasa la terminalele componentelor:U5A:2, U6A:2, U7A:2 şi U4A:3.

1.6.1.6.Stabilirea profilului de simulare

Pentru realizarea unei simulări trebuie stabilitacum un profil de simulare. Pentru aceasta se selectează din meniul principal PSpice după care se selectează dinmeniul desf ăşurat New Simulation Profile. Aparefereastra din figura 1.39 prin intermediul căreia ni sesolicită numele profilului de simulare. Vom scrie încaseta text  Name:, spre exemplu, numele „test1” şi seapasă butonul Create. În fereastra profilului de simulare„test1” afisată pe ecran se pot stabili caracteristicile unei

simulări conform opţiunilor afişate de fereastr ă (figura 1.40): General  , Analysis , 

 Include Files , Libraries , Stimulus , Options , Data Collection  şi Probe Window. Pentruexemplul nostru sunt suficiente opţiunile implicite. Totuşi se va verifica dacă înfereastra afişată pentru opţiunea Analysis sunt stabilite setările afişate în figura 1.40.

Durata simulării se stabileste înfuncţie de perioada semnalelor de intrarestabilite la configurarea componentei

DigClock  (paragraful 1.6.1.2). Semnalulde intrare cu frecvenţa cea mai scăzută (perioada cea mai mare) este semnalul x2 care, conform tabelului 1.17, are o

 perioadă de 2 x 0,5 μs = 1 μs. Pentru aavea graficul unei perioade complete aacestui semnal stabilim timpul desimulare (  Run to time) egal cu perioadaacestuia.

Pentru o singur ă schemă electrică se pot stabili mai multe profile de

Figura 1.39. Fereastrapentru stabilirea numelui

profilului de simulare

Figura 1.40. Fereastra profilului de simulare“test1”

Page 61: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 61/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 62

simulare diferite în funcţie de necesităţile utilizatorului stabilind nume diferite pentruaceste profile.

1.6.1.7. Simularea circuitului

Se poate trece acum la simularea circuitului logic combinaţional. Pentru aceastase selectează opţiunea PSpice din meniul principal, după care se selectează comandaRun. După selectarea acestei comenzi, programul OrCAD PSPICE este lansat înexecuţie şi sunt afişate pe ecran graficele corespunzătoare variaţiilor de tensiune în

 punctele de test (figura 1.50).În urma simulării circuitelor logice combinaţionale se pot realiza observaţii

asupra comportării circuitului în domeniul timp, corespondenţa între formele de undă,apariţia hazardului, comportarea statică  şi dinamică a circuitului, analiza dispersiei parametrilor componentelor, influenţa temperaturii şi multe altele.Dacă în urma simulării circuitului rezultatele sunt bune se poate trece la realizarea fizică 

a acestuia.

1.7. Analiza circuitelor logice combinaţionale cu ajutorul limbajelorpentru descrierea structurii hardware (HDL)

1.7.1. Introducere

Realizarea circuitelor digitale simple presupune parcurgerea mai multor etape,dintre care cele mai importante sunt:

o

descrierea informală a funcţionării circuitului;o transpunerea descrierii circuitului în ecuaţii logice;o aplicarea metodelor de simplificare şi optimizare a funcţiilor logice;o sinteza schemei electrice a circuitului cu ajutorul por ţilor logice şi a

 bistabililor;o simularea funcţionării circuitului şi corectarea eventualelor erori;o realizarea fizică a circuitului.

Dacă circuitul digital este de complexitate mai mare, o metodă de realizare desutilizată presupune descompunerea circuitului în blocuri funcţionale, testarea separată aacestora şi apoi, după stabilirea relaţiilor ierarhice între acestea, testarea ansamblului

compus din blocuri funcţionale. De regulă o astfel de metodă poate fi aplicată lacircuitele compuse din până la aproximativ şase sute de por ţi.Creşterea complexităţii sistemelor numerice odată cu dezvoltarea tehnologiei

digitale a dus la imposibilitatea folosirii metodelor clasice de proiectare şi realizare aacestora.

Sistemele numerice actuale sunt extrem de complexe. La nivelul celor mai micidetalii, ele constau în sute de miloane de elemente de tipul tranzistoarelor sau al por ţilor.De aceea, pentru sistemele numerice mari, proiectarea la nivelul por ţilor este practicimposibilă. Schema devine un paienjenis de conexiuni, care nu mai aratafunctionalitatea proiectului. 

Incepand cu 1970, inginerii de calculatoare si inginerii electronisti au apelat la

HDL (Hardware Description Language) care reprezintă, aşa cum arată  şi numele

Page 62: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 62/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 63

acestora, limbaje de programare destinate descrierii formale a circuitelor electronice.Aceste limbaje pot descrie funcţionarea, structura, permit simularea, iar în final creareastructurii fizice a circuitelor electronice.

Structura fizică obţinută se refer ă la tehnologia de realizare a circuitului integrat

deoarece un astfel de circuit nu mai poate fi realizat cu componente discrete.Un limbaj care indică modul de conectare a elementelor componente ale unuicircuit electronic şi relaţiile ierarhice care există între diversele blocuri ale circuituluisunt considerate ca limbaje pentru descrierea reţelelor (netlist). Spre deosebire deacestea, limbajele destinate descrierii formale a structurilor fizice electronice(hardware), trebuie să conţină atât expresii pentru redarea comportării în domeniul timpcât şi expresii destinate redării simultaneităţilor, caracteristici ce reprezintă principaleleatribute ale unei structuri fizice de acest tip.

HDL sunt folosite pentru descrierea diferitelor componente fizice ale unui circuitelectronic cu ajutorul anumitor secvenţe de program. Aceste secvenţe de program pot fiutilizate prin intermediul unui simulator pentru analiza comportării în timp a circuitului

electronic înainte de realizarea fizică a acestuia. Simulatoarele pot fi utilizate pentrucircuite digitale (circuite la care semnalele au o evoluţie discretă în timp), pentrucircuite analogice (cu evoluţie continuă în timp) sau circuite mixte analogice şi digitale,

 pentru fiecare dintre aceste tipuri de circuit existând limbaje descriptive adecvate.Scrierea secvenţei de program corespunzătoare unui anumit circuit electronic nu

înseamnă că, pe baza acestui cod, se poate genera automat, cu ajutorul unui software desinteză, structura fizică a circuitului. Un program de sinteză poate doar realizaconvertirea codului corespunzător descrierii structurii fizice şi efectuarea unor optimizări locale dar nu poate realiza implementări eficiente pe baza unor descrieridefectuase sau incomplete. Făr ă o înţelegere profundă a modului de funcţionarecorespunzător circuitului proiectat limbajele pentru descrierea structurilor fizice potconduce la realizări nejustificat de complexe şi, de multe ori, la imposibilitateaimplementării circuitului.

În general, limbajele de programare de uz general precum C, PASCAL, JAVAetc, nu sunt potrivite utilizării ca HDL datorită faptului că nu există facilităţi pentrudescrierea comportării în timp şi a simultaneităţilor, programarea în astfel de limbaje

  presupunând un effort suplimentar din pertea programatorului. Din acest motiv s-audezvoltat limbaje specializate, adecvate acestui scop, care permit o descriere simplă astructurii hardware.

Limbajele destinate descrierii structurilor fizice digitale au apărut din necesitatea proiectării sistemelor extrem de complexe. Complexitatea sistemelor digitale impune

utilizarea mai mutor tipuri de informaţii în procesul de realizare a circuitului integrat.Acelaşi sistem digital este descris în diferite moduri şi este examinat din mai multe perspective. HDL reprezintă un sistem din trei puncte de vedere:

o din punct de vedere comportamental;o din punct de vedere structural;o din punct de vedere fizic.

Descrierea comportamental ă consider ă sistemul ca o cutie neagr ă la care seignor ă modul de realizare a structurii interne. În acest caz descrierea se concentrează asupra relaţiilor între semnalele de intrare şi ieşire, indicându-se r ăspunsul de ieşire

  pentru un anumit set de semnale aplicate la intrare. Există mai mute căi pentru

Page 63: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 63/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 64

descrierea relaţiilor dintre semnalele de intrare şi ieşire şi din acest motiv arareoridescrierea comportamentală este unică.

Descrierea  structural ă  se refer ă la modul de realizare a structurii interne a

sistemului. Descrierea se face prin specificarea componentelor utilizate şi modul în careacestea sunt conectate. Această descriere reprezintă mai mult sau mai putin schemasistemului care furnizează informaţii asupra conexiunilor (netlist).

Descrierea  fizică se refer ă la caracteristicile fizice ale sistemului şi adaugă informaţii suplimentare la descrierea structurală. Sunt specificate dimensiunilecomponentelor, poziţia acestora pe cablajul imprimat sau în structura de siliciu acircuitului integrat şi poziţia traseelor electrice destinate conexiunilor.

Pe un circuit integrat putem avea sute de milioane de tranzistoare interconectateîntre ele în vederea obţinerii sistemului digital. Este imposibil pentru un operator umanşi chiar unui calculator să prelucreze un volul de date atât de mare. Din acest motiv, în

scopul gestionării corecte a volumului foarte mare de date descrierea sistemului derealizat se face pe mai multe nivle de abstractizare. O abstractizare semnifică în acestcaz un model simplificat a sistemului. Cele mai multe detalii se întâlnesc laabstractizările de pe nivelul de jos care sunt cele mai apropiate de structura fizică reală iar cele mai puţine detalii pe nivelul cel mai înalt.

La sistemele digitale se folosesc următoarele patru nivele de abstractizare:

o nivelul tranzistor;o nivelul poartă logică;o nivelul registrului de transfer (Register-transfer-level sau RT-level);o nivelul procesor.

Împăr ţirea pe aceste nivele se bazează în primul rând pe elementele bloc de bază utilizate la realizarea circuitelor numerice: tranzistorul, por ţile logice, modulelefuncţionale şi respectiv procesorul.

Abstractizarea la nivel de tranzistor reprezintă abstractizarea pe nivelul cel maiscăzut. La acest nivel, elementele de bază sunt tranzistoarele, rezistenţele electrice,capacitâţile şi aşa mai departe. Descrierea comportării se face în mod obişnuit cuajutorul unui set de ecuaţii diferenţiale sau cu ajutorul unor diagrame curent-tensiune. În

această situaţie pot fi folosite programe de simulare a sistemelor analogice pentru aobţine caracteristicile de intrare-ieşire.La acest nivel, descrierea fizică reprezintă schema detaliată ce conţine

componentele şi conexiunile între acestea.

Abstractizarea la nivel de poartă reprezintă următorul nivel de abstractizare. Laacest nivel elementele constructive ale schemei sunt reprezentate de către circuitecombinaţionale (por ţi logice elementare, multiplexoare etc) şi circuite secvenţiale(circuite de memorare – latch – şi bistabili).

La acest nivel se iau în considerare numai două valori a semnalelor,corespunzătoare celor două valori logice logice „unu” şi „zero”. Întâlnim deci, pe acest

nivel, o primă abstractizare importantă şi anume conversia unui sistem analogic într-un

Page 64: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 64/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 65

sistem digital. Trebuie reţinut însă faptul că, în realitate, semnalele şi circuitele sunt încontinuare continui. Cu ajutorul acestei abstractizări, descrierea comportării intrare-ieşire se poate face cu prin intermediul ecuaţiilor algebrei logice (ecuaţii booleene)renunţându-se la ecuaţiile diferenţiale care sunt cu mult mai complexe şi mai dificil de

folosit. De asemenea informaţiile în domeniul timp sunt simplificate. Se foloseşte osingur ă informaţie şi anume timpul de propagare (paragraful 2.3.3.) sau timpul deîntârziere (delay time – propagation delay) pentru specificarea caracteristicilor îndomeniul timp a por ţii.

Abstractizarea la nivelul registrului de transfer (RTL) se bazează pe modulefuncţionale construite din elemente logice simple. Aceste module funcţionale suntreprezentate de către sumatoare, comparatoare registre, multiplexoare etc. Acest nivelde abstractizare poate fi considerat un nivel de abstractizare la nivel de modul.

Pentru descrierea comportamentală la acest nivel se folosec expresii generale

 pentru precizarea modului de funcţionare şi a fluxului de date. Pentru descrierea unuisistem proiectat cu ajutorul metodologiei RT se foloseşte maşina cu stări finite extinsă (extended finite state machine – FSM).

O caracteristică importantă a descrierii la nivelul registrului de transfer oreprezintă folosirea unui semnal de ceas comun la componentele de memorare. Datorită existenţei acestui semnal, se realizează sincronizarea semnalelor şi timpul de întârziereeste înlocuit cu un număr de perioade de ceas.

Abstractizarea la nivel de procesor  este reprezentată de blocuri funcţionale ceconţin procesoare, memorie, magistrale şi alte elemente asemănătoare. Descriereafuncţională a sistemului este similar ă cu un program scris într-un limbaj de programarede nivel înalt.

Utilizarea limbajelor descriptive a structurilor fizice (HDL) simplifică număruletapelor necesare elabor ării unui circuit digital:

o descrierea informală a funcţionării circuitului;o specificaţii în HDL;o simularea funcţionării circuitului şi corectarea eventualelor erori;o realizarea fizică a circuitului.

Limbajele descriptive a structurii fizice sunt folosite în principal la dispozitive

logice programabile (Programmable Logic Devices – PLDs) de diferite complexităţi dela PLD simple la cele mai complexe (CPLD) şi arii programabile de por ţi logice FieldProgrammable Gate Arrays (FPGAs).

Descrierea dispozitivelor simple poate fi f ăcută cu limbaje precum Abel, Palasmşi Cupl iar a celor complexe cu Verilog (numit şi Verilog HDL) şi VHDL (VHSICHardware Description Language), unde VHSIC reprezintă acronimul de la Very-High-S peed Integrated Circuit.

Verilog a fost lansat în 1985 de către Gateway System Corporation, care a fost preluată de către Cadence Design Systems, Inc.’s Systems Division. Pâna în 1990, când aluat fiinţă Open Verilog International (OVI), Verilog HDL a fost proprietatea companieiCadence. Ulterior, Cadence a plasat Verilog în Domeniul Public, cu speranţa deschiderii

unei pieţe de produse software legate de Verilog HDL, în condiţiile în care acesta se va

Page 65: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 65/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 66

 bucura de o largă r ăspândire.Verilog HDL permite proiectantului de hardware să descrie proiectele, atât la un

înalt nivel de abstractizare, cum ar fi cel al arhitecturii sau comportamental, cât şi laniveluri mai joase de implementare (nivelurile por ţii şi comutatorului), conducând la

măştile/şabloanele pentru circuitele integrate pe scar ă foarte largă (Very Large ScaleIntegration) şi la fabricarea circuitului.Standardul IEEE, pentru VHDL, a apărut în 1987, în timp ce standardul IEEE,

  pentru Verilog, a fost elaborat în 1995. VHDL este asemănător cu limbajul Ada iar Verilog este asemănător limbajului C, care este foarte r ăspândit în rândurile inginerilor electronişti şi de calculatoare.

VHDL a fost solicitat iniţial companiilor furnizoare, de către DepartamentulApăr ării al Statelor Unite (US Department of Defense), pentru documentarea circuitelor integrate destinate aplicaţiilor specifice (ASIC - application-specific integrated circuit). Cualte cuvinte, VHDL a fost elaborat ca o alternativă la voluminoasele documentaţiiînsoţitoare ce conţineau detalii specifice de implementare. Până la ideea de simulare a

acestor « documentatii » nu a fost decât un pas şi au fost create simulatoare care să poată citi fişierele VHDL. Următorul pas a fost cel al dezvoltării sintetizatoarelor logice care pe

  baza fişierelor VHDL puteau furniza la ieşire specificaţiile pentru realizarea fizică acircuitului.

Simularea unui circuit electronic reprezintă o etapă în procesul de elaborare aacestuia în scopul verificării şi optimizării circuitului înainte de realizarea fizică.Prin intermediul procesului de simulare se verifică, la orice nivel de abstractizare,caracteristicile funcţionale ale modelului. În acest scop se folosesc simulatoare cum suntde exemplu: OrCAD Simulate, ModelSim, VCS, Verilog-XL, Veriwell, Finsim,iVerilog, VeriDOS etc.

Simulatorul testează dacă sunt îndeplinite, de către codul RTL, cerinţelefuncţionale din specificaţie, verificându-se dacă toate blocurile RTL sunt corecte din

 punct de vedere funcţional. Pentru aceasta trebuie scris un fişier de test (testbench) caregenerează semnalul de tact (clk), semnalul de reset şi vectorii de test necesari. Cele maimulte simulatoare afişează formele de undă de ieşire ale circuitului testat în aşa fel încâtsă ne putem da seama dacă circuitul funcţionează corect. Dacă circuitul este foartecomplex atunci fişierul de test va vonţine şi semnalele de ieşire aşteptate astfel încâtverificarea să se facă automat.

În figura 1.41. este prezentat modul de testare a unui circuit digital.

1 2 3Comparator 

logic

Circuit digital

reset

clock

   s   e   m   n   a    l   e    d   e

    t   e   s    t

n s  e mn  a l    e  d  e 

i    e    ş i   r  e 

m

Figura 1.41. Testarea cu ajutorul simulatorului

Fişier de test(testbench)

Page 66: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 66/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 67

Simularea în domeniul timp (timing simulation) se face după sinteză, după realizarea traseelor electrice şi plasarea componentelor. La această simulare sunt luate înconsiderare întâzierile introduse de por ţile logice şi de către traseele electrice şi se verifică funcţionarea la frecvenţa semnalului de ceas (SDF Simulation – Standard Delay Format

Simulation, Gate Simulation).

1.7.2. Limbajul Verilog HDL

În acest paragraf nu se face o descriere completă a limbajului Verilog. Vor fidescrise doar acele elemente ale limbajului care vor permite descrierea unui circuit realizatcu por ţi logice, în vederea simulării. Aceste aspecte acoper ă doar o parte a limbajului.Pentru o descriere completă a limbajului Verilog HDL se pot examina lucr ările date la

 bibliografie, cât şi standardul IEEE.În acest paragraf se vor prezenta gradat noţiunile de bază ale limbajului şi modul de

 pregătire a unei simulări în aşa fel încât să se poată înţelege principiile care stau la baza

simulării circuitelor logice combinaţionale cu ajutorul limbajulul Verilog HDL.

1.7.2.1. Structura unui program Verilog HDL

Elementul de bază al limbajului Verilog este modulul . Un sistem numeric poatefi descris cu ajutorul unui singur modul sau cu ajutorul a mai multor module în func ţiede strategia aleasă de către proiectant.

Modulele reprezintă păr ţi hardware, ce pot descrie o gamă largă de structurifizice, începând cu por ţi logice simple şi tranzistoare şi terminând cu sisteme complexecum ar fi, de exemplu, microprocesoarele.

Fiecare modul este compus dintr-o interfaţă, corpul modulului şi elementesuplimentare adăugate opţional.

Structura unui modul este următoarea:

 module <nume_modul> (<lista de porturi>);delimitator modul (început modul)

------------------------------------------------------------------------------------<declararea porturilor> interfa ţ a <declararea parametrilor>

------------------------------------------------------------------------------------<directive include> elemente externe suplimentare 

------------------------------------------------------------------------------------<declararea variabilelor> corpul modulului <atribuiri><instanţe ale module de nivel scăzut><blocuri initial  şi always><sarcini şi funcţii>

-------------------------------------------------------------------------------------endmodule 

delimitator modul (sfâr  şit modul)

Cuvintele rezervate module şi endmodule delimitează modulul.

Page 67: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 67/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 68

 După cuvântul rezervat  module urmează <nume_modul> ce reprezintă un

identificator care, în mod unic, denumeşte modulul.Identificatorii Verilog (inclusiv numele modulelor) trebuie să respecte

următoarele reguli:

o identificatorul poate fi compus numai din litere, cifre, simboul dollar “ $“, şi liniuţa de subliniere (underscore) “ _ ";

o identificatorul trebuie să înceapă cu o liter ă sau cu liniuţa de subliniere;o nu sunt permise spaţiile în numele unui identificator;o Verilog face distincţie între caracterele mari şi mici, deci acelaşi nume

scris cu litere mari şi litere mici reprezintă identificatori diferiţi;o cuvintele rezervate nu pot fi folosite ca identificatori.

După numele modulului urmează lista de porturi, scrisă între paranteze rotunde.

Această listă este în strânsă legătur ă cu descrierea porturilor în interfaţa modulului. Înacestă listă sunt enumerate porturile modulului, care sunt folosite pentru conectarea cualte module, separate prin virgulă. În interfaţa modulului se face declararea acestor 

 porturi prin specificarea direcţiei acestora : porturi de intrare (input), ieşire (output) sauintrare/ieşire (inout),

Sectiunea <declararea parametrilor> din interfaţă, specifică obiectele de tip dateca registre (reg), memorii si fire (wire), cât şi construcţiile procedurale ca function şitask care vor fi explicate mai târziu.Elementele externe suplimentare sunt declarate cu ajutorul directivelor include.

Un exemplu genearal al unui modul în care sunt precizate interfaţa şi elementeleexterne suplimentare este prezentat în continuare.

module ModulOarecare (…);input …;output …;inout …;‘include “…”…endmodule

La scrierea unui program, de mare importanţă este adăugarea comentariilor, care

să explice codul scris şi care să nu fie luate în considerare de către compilator. LimbajulVerilog permite introducerea comentariilor astfel: folosind două simboluri slash (//) se poate scrie comentariul pe o linie, sf ăr şitul comentariului fiind marcat de sfâr şitul linieişi comentariul pe bloc, care poate fi scris pe mai multe linii şi care este delimitat laînceput cu /* iar la sfâr şit cu */. Regulile de folosire a comentariilor sunt aceleaşi ca şi

 pentru limbajele de nivel înalt.Pentru a exemplifica modul de realizare al interfeţei unui modul, vom considera

unitatea logică şi aritmetică din figura 1.42.Conform porturilor sistemului reprezentat de unitatea logică  şi aritmetică,

interfaţa modulului corespunzător acesteia este ar ătat în exemplul 1.

Page 68: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 68/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 69

 EXEMPLUL1

module ALU (Result, Cout, Equal, In1, In2,OpSel, Cin, Mode) ;output [3:0] Result; // rezultatul operaţieioutput Cout; // ieşire depăşire (Carry out)output Equal; // când este 1, In1 = In2input [3:0] In1; // primul operandinput [3:0] In2; // al doilea operandinput [3:0] OpSel; // selectarea operaţieiinput Cin; // intrare depăşire (Carry in)

input Mode; // modul aritmetic/logic, aritmetic când este 0/* Urmează corpul modulului care va fi descris mai târziu;acestă parte a modulului poate conţine toate cele cincielemente ale corpului modulului sau numai o parte dintreacestea */. . .endmodule

Corpul modulului conţine descrierea structurii fizice la care se refer ă modulul.Cele cinci elemente ale corpului modulului pot fi scrise în orice ordine cu o singur ă restricţie: nici un articol nu poate fi folosit înainte de a fi definit. Există trei moduridiferite prin care un sistem poate fi descris cu ajutorul modulelor : descriereacomportamentală, descrierea structurală sau cea a fluxului de date.

Descrierea structurală exprimă comportarea unui sistem numeric (modul) ca o conectareierarhică de submodule. La baza ierarhiei componentele trebuie să fie primitive saumodule specificate anterior. Primitivele Verilog sunt por ţi logice elementare şitranzistoare de trecere (comutatoare).

Descrierea prin fluxul de date reprezintă o listă de expresii care arată modul de prelucrare a semnalelor de ieşire în aşa fel încăt să se obţină la ieşire valorile dorite,similar cu descrierea cu ajutorul ecua

ţiilor logice. Expresiile se pot baza pe o gam

ălarg

ă 

UNITATE LOGICĂ ŞI ARITMETICĂ (ULA)

In1 In2 OpSel Mode

Result Equal

COut CIn

Figura 1.42. Semnalele de intrare şi de ieşire a unei unităţi logice şi aritmetice

Page 69: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 69/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 70

de operatori cum sunt : operatori logici, prelucr ări la nivel de bit, operatori aritmetici,operatori condiţionali etc.

Descriere comportamentală  defineşte comportarea unui sistem numeric (modul)

folosind descrierea algoritmică cu ajutorul construcţiilor similare limbajelor de programare tradiţionale.Pentru exemplificarea celor trei moduri de descriere ale unui sistem vom consideraschema din figura 1.43.

Circuitul din figura 1.43 reprezintă un multiplexor cu patruintr ări (In0, In1, In2 şi In3), o ieşire (Out) şi două intr ări decomandă (Sel0 şi Sel1). Funcţionarea acestui circut estesimilar ă cu cea a unui comutator comandat: în funcţie devaloarea binar ă aplicată pe intr ările de comandă (Sel0 şi Sel1)una din intr ările de semnal (In0, In1, In2 sau In3) este conectată la ieşire (Out). Tabelul de adevăr al multiplexorului cu patru

intr ări este tabelul 1.18.În continuare, se prezintă pe rând, posibilitatea de scriere în limbajul Verilog, a

modulului corespunzător circuitului din figura 1.43 în cele trei stilulri posibile:structural, a fluxului de date şi respectiv comportamental.

Descrierea structurală 

EXEMPLUL 2

module mux_4_to_1 (Out, In0, In1, In2, In3, Sel1, Sel0);

output Out;input In0, In1, In2, In3, Sel0, Sel1;

wire NotSel0, NotSel1;wire Y0, Y1, Y2, Y3;

not (NotSel0, Sel0);not (NotSel1, Sel1);

nand (Y0, In0, NotSel1, NotSel0);

TABELUL 1.18.

Sel1 Sel0 Out

0 0 In0

0 1 In1

1 0 In2

1 1 In3

Out

In2U5A

7410

1122

13

Y1In1

Sel1

Y2

U7A

7420

6

12

45

Y3

NotSel0

Sel0

U1A

7404

1 2

U2A

7404

1 2

U4A

7410

1122

13

In0

In3

U6A

7410

1122

13

U3A

7410

1122

13

Y0

NotSel1

 Figura 1.43. Circuitul multiplexor cu patru intrări

Page 70: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 70/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 71

  nand (Y1, In1, NotSel1, Sel0);nand (Y2, In2, Sel1, NotSel0);nand (Y3, In3, Sel1, Sel0);nand (Out, Y0, Y1, Y2, Y3);

endmodule 

Descrierea prin fluxul de date

Analizând fluxul datelor circuitului din figura 1.43 putem construi diagrama desemnal din figura 1.44. Acestă diagramă indică modul în care sunt prelucrate, din punct devedere logic, semnalele de intrare în scopul obţinerii semnalului de ieşire.

EXEMPLUL 3

module mux_4_to_1 (Out, In0, In1, In2, In3, Sel1, Sel0);

output Out;input In0, In1, In2, In3, Sel0, Sel1;

assign Out = ~[~(~Sel1 & ~Sel0 & In0) & ~(~Sel1 & Sel0 & In1) &

~(Sel1 & ~Sel0 & In2) & ~(Sel1 & Sel0 In3)];

endmodule 

 Notaţiile operanzilor din linia assign sunt cele corespunzătoare limbajului C.

Descrierea comportamentală 

Conform descrierii modului de funcţionare a circuitului f ăcută mai sus, putemconstrui o schemă echivalentă a acestuia ca cea prezentată în figura 1.45. Circuitul esteechivalent cu un comutator cu patru poziţii comandat de semnalele Sel1 şi Sel2.

Out 

In3

In0

Sel1

Sel0

In2

In1

“NU”logic

“NU”logic

“SI-NU”

logic

“SI-NU”logic

“SI-NU”logic

“SI-NU”logic

“SI-NU”logic

Figura 1.44. Fluxul datelor pentru circuitul din figura 1.43.

Page 71: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 71/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 72

 

Stilul comportamental descrie circuitul în funcţie de comportarea acestuia,

descriind acţiunile pe care circuitul le execută în timpul funcţionării. Acţiunile suntspecificate în cadrul blocurilor comportamentale initial  şi always care sunt compusedin instrucţiuni secvenţiale şi concurente. De multe ori este suficient să se trenscriedescrierea comportamentală a circuitului într-un limbaj de nivel înalt în limbajulspecific Verilog respectând regulile de sintaxă ale acestuia.

Forma comportamentală a modulului corespunzător circuitului din figura 1.43este dată în exemplul 4.

EXEMPLUL 4

module mux_4_to_1 (Out, In0, In1, In2, In3, Sel1, Sel0);

output Out;input In0, In1, In2, In3, Sel0, Sel1;reg Out;

always @ (Sel1 or Sel0 or In0 or In1 or In2 or In3)begin

case ((Sel1, Sel0))’b00 : Out = In0;’b01 : Out = In1;’b10 : Out = In2;

’b11 : Out = In3;efault : Out = 1’bx;

endcaseend

endmodule 

Semantica construcţiei unui module în Verilog este diferită de cea asubrutinelor, procedurilor  şi a funcţiilor din alte limbaje. Un modul nu este chematniciodat ă. Un modul are o instanţă la începutul unui program şi este prezent pe întreagadurată a programului. O instanţă a unui modul Verilog este utilizată ca model al unui

In1

In2

In3

In4

Sel1, Sel2

Out

Figura 1.45. Principiul de funcţionare al multiplexorului

Page 72: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 72/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 73

circuit hardware la care se presupune că nu se efectuează modificări de cablaj. Lafiecare instanţă a modulului, acesteia i se da un nume.

De exemplu NAND1 şi NAND2 sunt nume de instanţe ale por ţii NAND, înexemplul de mai jos (exemolul 5). În acest exemplu este dată o specificare din punct de

vedere a fluxului de date a unui modul NAND. Ieşirea out este negaţia produsului andal intr ărilor in1 şi in2.

EXEMPLUL 5

// Modelul corespuzator fluxului de date al portii NAND.module NAND (out, in1, in2);output out;input in1, in2;// instructiune de atribuire continuaassign out = ~(in1 & in2);

endmodule

Porturile in1, in2 şi out sunt etichetele pe fire. Atribuirea continuă  assignurmăreşte în permanenţă eventualele modificări ale variabilelor din membrul drept,

 pentru reevaluarea expresiei şi pentru propagarea rezultatului în membrul stâng (out).Instrucţiunea de atribuire continuă este utilizată pentru a modela circuitele

combinationale la care ieşirile se modifică ca urmare a modificărilor intr ărilor.Specificarea structurală a unui modul AND (exemplul 6), obţinut ca urmare a

conectării ieşirii unei por ţi NAND la cele două intr ări ale altei por ţi NAND (cea de-adoua poartă folosită ca inversor – vezi şi paragraful 1.3).

EXEMPLUL 6

module AND (out, in1, in2);// Modelul structural al unei porti AND formata din doua porti NANDoutput out;input in1, in2;wire w1;// doua instante ale modulului NAND

 NAND NAND1(in1, in2, w1); NAND NAND2(w1, w1, out);

endmoduleAcest modul are două instanţe ale lui NAND, numite NAND1 şi NAND2,

conectate printr-un fir intern w1. Forma generală pentru invocarea unei instanţe este următoarea:

<nume_modul > <lista de parametri > <numele instantei> (<lista de porturi>);

unde <lista de parametri> are valorile parametrilor, care sunt transferate către instanţă.Un exemplu de parametru transferat ar fi intârzierea pe o poartă.

Urmatorul modul (exemplul 7) reprezintă un modul de nivel înalt, care stabileşte

anumite seturi de date şi care asigur ă monitorizarea variabilelor.

Page 73: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 73/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 74

EXEMPLUL 7

module test_AND;// Modul de nivel inalt pentru testarea altor doua module.

reg a, b;wire out1, out2;initial begin // Datele de test

a = 0; b = 0;#1 a = 1;#1 b = 1;#1 a = 0;

endinitial begin // Activarea monitorizarii

$monitor("Time=%0d a=%b b=%b out1=%b out2=%b",$time, a, b, out1, out2);

end// Instantele modulelor AND si NANDAND gate1(a, b, out2);

 NAND gate2(a, b, out1);endmodule

De notat că valorile a şi b trebuie menţinute pe toată durata oper ării. De aceeaeste necesar ă utilizarea unor registre de câte un bit. Variabilele de tip reg stochează ultima valoare care le-a fost atribuită procedural. Firul, wire, nu are capacitatea dememorare. El poate fi comandat în mod continuu, de exemplu, prin instrucţiunea deatribuire continuă sau prin ieşirea unui modul.

Dacă firele de intrare nu sunt conectate, ele vor lua valoarea x – necunoscută.Atribuirile continue folosesc cuvantul cheie assign în timp ce atribuirile

 procedurale au forma :<variabila reg > = <expresie> ;

unde <variabila reg>  trebuie să fie un registru sau o memorie. Atribuirile procedurale pot apărea numai în construcţiile initial şi always.

Instrucţiunile din blocul primei construcţii initial vor fi executate secvenţial,dintre care unele vor fi întârziate de #1 cu o unitate de timp simulat. Construcţia always

se comportă în acelaşi mod ca şi construcţia initial cu excepţia că ea ciclează la infinit(pană la terminarea simulării).Construcţiile initial şi always sunt utilizate pentru modelarea logicii secventiale

(automate cu stări finite).Verilog face o importantă distincţie între atribuirile procedurale şi atribuirea

continuă assign.Atribuirile procedurale modifică starea unui registru, adică a logicii secventiale,

în timp ce atribuirea continuă este utilizată pentru a modela logica combinaţională.Atribuirile continue comandă variabile de tip wire şi sunt evaluate şi actualizate atuncicând un operand de intrare işi modifică valoarea. Este important de înţeles şi dememorat aceste diferenţe.

Page 74: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 74/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 75

Toate cele trei module vor fi plasate într-un fişier, care va fi executat de cătresimulator pentru a produce urmatoarea ieşire:

Time=0 a=0 b=0 out1=1 out2=0Time=1 a=1 b=0 out1=1 out2=0

Time=2 a=1 b=1 out1=0 out2=1Time=3 a=0 b=1 out1=1 out2=0Întrucât simulatorul iese din cadrul evenimentelor, nu a mai fost necesar ă oprirea

explicită a simulării.În Verilog semnalele pot avea patru valori distincte: 1 – corespunzător valorii

logice “adevărat”, 0 – corespunzător valorii logice “fals”, x – corespuzător unei valorilogice oarecare (necunoscute) şi z – corespunzător stării de înaltă impedanţă. Acestesemnale nu pot apar ţine decât uneia din cele două clase: reţea sau registru.

Reţeaua reprezintă conexiunile între elementele fizice, nu are nici un fel decapacitate de stocare iar valoarea semnalului de pe reţea depinde numai de valoareasemnalului de sursă. O reţea are starea de înaltă impedanţă dacă nu este conectată la nici o

sursă de semnal.Pe de altă parte, registrele pot stoca semnalul de o anumită valoare chiar şi atunci

când sunt deconectate. O valoare atribuită unui registru este păstrată de acesta până când îieste atribuită o nouă valoare. Ca urmare, un registru joacă acelaşi rol ca şi o variabilă dintr-un limbaj de programare. Trebuie reţinut faptul că registrul Verilog difer ă de un registrunumeric deoarece registrul Verilog nu are nici o legătur ă cu semnalul de ceas.

Cele mai multe semnale dintr-un sistem sunt de tip reţea deoarece reprezintă semnale trimise de ieşirile unor dispozitive către intr ările altor dispozitive. Numele(cuvintele rezervate) folosite în limbajul Verilog pentru semnalele de tip reţea vor fidescrise pe scurt în continuare.

Prima categorie este reprezentată de semnalele, cel mai frecvent utilizate, de tipwire şi tri. Semnalele de tip wire sunt folosite în reţelele cu o singur ă sursă iar semnalelede tip tri sunt folosite în reţelele cu surse multiple. Cele două nume desemnează practicacelaşi tip de reţea şi sunt folosite numai în scopul clarităţii programului sursă.

  Numele de wand/triand  şi wor/trior repezintă cea de-a doua categorie desemnale de tip reţea care sunt folosite pentru a desemna reţele ale căror trasee realizează funcţii logice cablate (capitolul 2.5). Cuvântul rezervat wand/triand este desemnat pentruspecificarea funcţiei „şi – and” cablată (figura 1.46) iar wor/trior specifică funcţia „sau – or” cablată (figura 1.47). Şi în acest caz prefixul w- respectiv tri- sunt folosite doar în scop

 pur funcţional, pentru creşterea clarităţii.Cea de-a treia categorie de semnale de tip reţea sunt reprezentate de numele

+V

R

… 

K1

K2

Kn

Out

Figura 1.46. Funcţia logică „şi”

cablată 

+V

R

… 

K1

K2

KnOut

Figura 1.47. Funcţia logică „sau”

cablată 

Page 75: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 75/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 76

rezervate supply0, supply1, tri0, tri1, trireg care facilitează descrierea elementelor speciale ale reţelelor specificaţiilor de nivel scăzut cum sunt tranzistoarele sau por ţilerealizate în diverse tehnologii. Această categorie de semnale nu interesează aici deoareceele nu fac parte din obiectivul propus şi anume acela de simulare a circuitelor logice

combinaţionale.Ca şi celelalte elemente ale limbajului verilog şi semnalele trebuie declarate înaintede a fi folosite. Sintaxa declar ării unui semnal este foarte simplă:

<tipul semnalului> <nume semnal> ;unde <tipul semnalului> poate fi unul din cuvintele rezervate precizate mai sus: wire,wand etc. iar <nume semnal> este un nume ales de programator, nume ce trebuie să respecte regulile de scriere ale identificatorilor Verilog precizate la începutul acestuicapitol (descrierea structurii modulului). Linia declar ării semnalului se termină, ca şicelelalte linii, cu punct şi virgulă (;).

Într-un sistem descris cu ajutorul programului semnalele de tip reţea pot fi semnalescalare corespunzătoare unei singure conexiuni sau semnale vectoriale corespunzătoare

magistralelor formate din mai multe conexiuni electrice. Cel mai adesea semnalelevectoriale se întâlnesc în sistemele complexe similare cu cel descris în figura 1.42.

Aşa cum se vede în exemplul 1, un sistem poate avea semnale scalare: Cout, Equal , Cin şi Mode şi semnale vectoriale: Result, In1, In2 şi OpSel .

Declararea semnalului vectorial se face în felul următor:wire [MSB : LSB] <numele_vectorului>;

unde MSB (Most Significant Bit – cel mai semnificativ bit) este indicele bitului de rangmaxim al vectorului iar LSB (Least Significant Bit – cel mai puţin semnificativ bit) esteindicele bitului de rang minim al vectorului. În limbajul Verilog indicii sunt nume întregi

  pozitive sau negative iar valoarea MSB poate fi mai mică decât LSB ceea ce este puţincontradictoriu dacă ne gândim la modul de definire al acestor biţi la reprezentareainformaţiei. Calculul dimensiunii vectorului se face cu relaţia următoare:

dimensiune = | MSB – LSB|dimensiunea reprezentând numărul de biţi sau numărul de circuite ale vectorului(magistralei).

 Numele vectorului respectă aceleaşi reguli cu ceilalţi identificatori Verilog.De asemenea semnalele pot fi interne sau externe unui modul. Semnalele externe

  permit modulului să comunice cu celelalte module iar semnalele interne asigur ă funcţionarea modulului. Diferenţa între semnalele interne şi cele externe constă în modulîn care acestea sunt declarate. Semnalele interne sunt declarate cu ajutorul identificatorilor semnalelor iar semnalele externe sunt declarate prin intermediul porturilor modulului.

Specificarea porturilor unui modul se face prin intermediul a două elemente:o numele portului aflat în lista porturilor ce urmează numelui modulului

din delimitatorul modulului. Lista numelor porturilor se pune între paranteze rotunde, numele porturilor fiind separate prin virgulă. Lista sefoloseşte atunci când o instanţă a modulului se găseşte într-ospecificaţie ierarhică cum ar fi de exemplu atunci când modulul estefolosit pentru o componentă aflată la nuvelul de bază (vezi exemplul 5şi exemplul 6);

o declararea portului prin care se specifică direcţia, dimensiunea (lăţimeavectorului) şi numele portului. Aceste declaraţii se află în interfaţa

Page 76: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 76/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 77

modulului (partea de început a acestuia) iar declararea porturilor estesimilar ă cu cea a semnalelor interne:

<cuvânt_rezervat> [dimensiunea vectorului] <identificator> ;Diferenţa de esenţă între semnalele externe şi cele interne constă în

cuvântul_rezervat din declaraţia de mai sus: pentru porturi cuvântul rezervat semnifică  sensul semnalului iar pentru semnale interne cuvântul rezervat semnifică tipul semnalului.

În Verilog porturile sunt în mod implicit considerate drept reţele de tip wire. Acestlucru este convenabil în cazul circuitelor combinaţionale, dar în cazul circuitelor secvenţiale vor fi necesare anumite completări care vor fi discutate atunci când vom studiaacest tip de circuite.

Pentru descrierea circuitelor combinaţionale, cel mai potrivit tip de descriere estecel structural deoarece acest tip de descriere este cel mai apropiat de structura fizică acircuitului (schema electrică a circuitului). Deoarece limbajul Verilog conţine un set de

 por ţi logice predefinite (numite primitive) este posibil ca orice circuit logic combinaţionalsă fie descris cu ajutorul acestor primitive. Primitivele limbajului Verilog sunt în număr de

 paisprezece şi ele pot fi folosite în descrierea structurală a circuitului. Cele paisprezece primitive se împart în patru categorii:

o  por ţi logice cu mai multe intr ări (ce conţin şase primitive pentru por ţile logice: and – şi, nand – şi negat, nor – sau negat, or – sau, xnor – sau exclusiv negat şi xor – sau exclusiv; aceste

 por ţi logice pot avea orice număr de intr ări şi numai o singur ă ieşire);

o  por ţi logice cu mai multe ieşiri (ce conţin două primitive buf – circuitul de amplificare şi not - inversorul; oricare din aceste

 por ţi are o singur ă intrare şi un număr nelimitat de ieşiri;o  por ţi logice cu trei stări (reprezintă circuite tampon – buffer – ce

  pot fi activate cu una din valorile logice „zero” sau respectiv„unu”: bufif0 şi respectiv bufif1 sau circuite inversoare cu treistări ce pot fi activate cu una din valorile logice „zero” saurespectiv „unu”: notif0 şi respectiv notif1;

o  por ţi logice cu etajul final în gol (pull gates).

Pentru a exemplifica modul de scriere a unui modul folosind descrierea structurală cu ajutorul primitivelor, consider ăm sumatorul complet de un bit din figura 1.48.

A

U7A

7404

1 2

U2A

74136

1

23

U1A

74136

1

23

U3A

7408

1

23

BandCin

U6A

7427

12

1312

 NCout

U5A

7408

1

23

Cout

 AandCin

 AxorB

Sum

 AandB

B

Cin

U4A

7408

1

23

 Figura 1.48. Sumatorul complet de un bit.

Page 77: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 77/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 78

Pentru acest circuit se poate scrie modulul:

EXEMPLUL 8

module FullAdd_1Bit (Sum, Count, A, B, Cin);output Sum, Count;input A, B, Cin;wire AxorB, AandB, AandCin, BandCin, NCout;

xor #5 HalfSum (AxorB, A, B);and #4 (AandB, A, B);xor FullSum (Sum, AxorB, Cin);and #4 And_2 (AandCin, A, Cin);and #4 And_3 (AandCin, B, Cin);nor (NCout, AandB, AandCin, BandCin);

not (Cout, NCout);

endmodule 

În exemplul 8 utilizarea unei primitive se face prin specificarea numelui acesteia – de exemplu « xor », timpul de propagare (eventual) – de exemplu « #5 », un nume pentru

 poartă (eventual) – de exemplu « HalfSum » şi lista semnalelor de la ieşire şi de intrare(lista conexiunilor la poarta respectivă) – de exemplu « (AxorB, A, B) », linia încheiindu-se cu punct şi virgulă.

Ordinea în care sunt scrise instanţele primitivelor în interiorul modulului nu arenici o importanţă, scrierea în ordine fiind necesar ă doar din punct de vedera a clarităţii.

În cazul în care se foloseşte descrierea prin transformările fluxului de date trebuiesă discutăm, pentru început, despre expresiile din Verilog.

Cu excepţia câtorva sisteme f ăr ă împortanţă, semnalul de intrare sufer ă anumitetransformări în scopul gener ării semnalului de ieşire dorit. Acest procces poare fi descrisastfel:

ieşirea prelucrarea (intr ării)

Prelucrarea semnalelor de intrare este realizată cu ajutorul expresiilor care sunt(conform descrierii din manualul de referinţă al limbajului Verilog) construcţii ce combină 

operanzii cu operatorii pentru a produce rezultate ce sunt funcţii de valorile operanzilor şi asemnificaţiei semantice a operatorilor. În Verilog, un operator poate avea unul, doi sau treioperanzi în funcţie de specificaţiile sale. Nu există expresie f ăr ă operanzi. În plus, anumiţioperatori pot lucra numai cu anumiţi operanzi.

Operanzii, despre care s-a discutat deja, sunt cei reprezentaţi de elementelereţelelor sau registrelor, referite prin numele acestora.

O altă categorie de operanzi este reprezentată de constante. Verilog permitefolosirea constantelor de diferite tipuri care pot fi specificate în diferite formate pe care levom discuta în continuare.

De asemenea, drept operand poate fi specificat un singur bit sau o succesiune de biţi ai unui vector dintr-o reţea sau al unui registru.

Page 78: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 78/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 79

În sfâr şit, apelul unei funcţii (call) sau un sistem definit de utilizator, pot fifolosiţi ca operanzi, dacă aceştia returnează o valoare compatibilă cu operatorul.

Constante de tip întreg

Numerele întregi scrise într-un program constituie operanzi de tip întreg(constante) şi se considr ă, în mod implicit, că aceste numere sunt în baza zece, dacă nuse specifică altceva. Numerele precedate de semnul minus sunt constante de tip întreg,negative. Limbajul Verilog permite specificarea constantelor de tip întreg şi în alte bazede numeraţie în afar ă de baza zece. Astfel, constantele de tip intreg mai pot fi scrise în

  binar, octal şi hexazecimal. Numerele scrise într-o altă bază decât baza zece sunt precedate de simbolul apostrof (‘) urmat de o liter ă care desemnează baza în care estescris numărul: b sau B – pentru numere binare (în baza doi), o sau O – pentru numereoctale (în baza opt) sau h sau H – pentru numere hexazecimale (în baza şaisprezece).

 Numerele specificate în acest fel sunt tratate ca numere întregi f ăr ă semn.Dimensiunea constantei de tip întreg este determinată de către compilator dar ea

trebuie să fie de cel puţin 32 de biţi. De multe ori această dimensiune este prea mare şidin acest motiv se folosesc adesea constantele dimensionate. Constantele dimensionatesunt precedate de o valoare întreagă pozitivă care desemnează numărul de biţi alconstantei de tip întreg. Specificarea dimensiunii la constantele în baza zece impunefolosirea literei d sau D înaintea constantei de tip întreg.

EXEMPLUL 9

// constante la care nu este specificată dimensiunea35 // număr zecimal (implicit)‘h2a // număr hexazecimal‘b1010 // număr binar 

// constante la care se specifică dimensiunea4’d7 //numărul zecimal 4 scris pe 4 biţi în loc de 328’b11001111 // valoare binar ă pe 8 biţi8’b1 // va fi reprezentat ca 000000018’h1 // va fi reprezentat ca 00000001

// numere negative-10 // număr reprezentat intern în cod complement faţă de doi pe

// 32 biţi-8’d10 // echivalent cu – (8’d10)

// folosirea caracterului “?”8’h1? // echivalent cu 0001zzzz2’b1? // echivalent cu 1z

// folosirea caracterelor “x”4’b01xx // ultimii doi biţi ai numărului sunt necunoscuţi‘hx // număr pe 32 de biţi necunoscut

// folosirea caracterului “_”

Page 79: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 79/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 80

16’b1100_0101_1111_1000121_523_191

Operanzi de selecţie pentru un bit sau pentru o succesiune de biţi

Putem folosi ca operand un singur bit sau o succesiune de bi ţi ai unui vector dereţea sau de registru.Sintaxa operandului de selecţie a unui bit constă în folosirea numelui vectorului

a cărui bit este selectat, urmat de indexul bitului închis între paranteze dreptunghiulare.De exemplu:

DataBus[5]

ceea ce semnifică faptul că s-a selectat bitul cinci al vectorului DataBus.Dacă dacă dorim să specificăm un anumit număr de biţi succesivi ai unui vector,

atunci precizarea acestora trebuie să se facă relativ la vectorul vizat. Precizarea

succesiunii de biţi folosiţi se face în mod similar cu declararea unui vector: [MSB:LSB].În această declaraţie LSB nu poate fi mai mare ca MSB, MSB nu poate fi mai maredecăt rangul maxim al vectorului iar LSB nu poate fi mai mic ca zero.

Dacă se foloseşte un index care depăşeşte dimensiunile vectorului sau pentruindex se folosesc valorile „x” sau „z” atunci întregul operand va avea valoarea „x” – necunoscut.

De exemplu, declararea unei por ţiuni din vectorul AddresBus[8:0], poate fi:

AddressBus[6:4]

care reprezintă un operand compus din trei biţi – biţii de pe poziţiile şase, cinci şi patruale vectorului AddressBus.

Operatorii aritmetici în număr de patru: “+” pentru adunare, “-“ pentru scădere,“*” pentru înmulţire şi “/” pentru împăr ţire se folosesc cu căte doi operanzi. Operatorii“+” şi “-“ pot fi folosiţi şi cu un singur operand pentru determinarea semnului acestuia.În afar ă de aceşti operatori mai există  şi operatorul modulo, notat cu “%”, carereturnează restul împăr ţirii întregi a doi operanzi.

Operatorii aritmetici tratează în mod diferit operanzii de tip întreg şi operanzii detip registru. Operanzii de tip întreg sunt trataţi ca operanzi cu semn pe când operanzii detip registru sunt trataţi ca operanzi f ăr ă semn. Din acest motiv rezultatul operaţiilor 

aritmetice poate fi diferit în funcţie de tipul operanzilor. În acelaşi timp, trebuie ţinutcont de faptul că numerele negative sunt stocate sub formă de complement faţă de doi pe un anumit număr de biţi.

EXEMPLUL 10 

1. Codul Verilog:

integer intA;intA = -4’d12 //variabilă de tip întreg

Page 80: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 80/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 81

dacă se efectuează operaţia de împăr ţire: intA / 3 se obţine rezultatul: -4 deoarece intAeste o variabilă de tip întreg care este tratată ca un număr cu semn. Dacă rezultatul esteatribuit unei variabile de tip registru, acesta va fi stocat sub forma 65532, număr cereprezintă complementul faţă de doi a lui minus patru.

2. Codul Verilog:

reg[15:0] intA;intA = -4’d12 //variabilă de tip registru

dacă se efectuează operaţia de împăr ţire: intA / 3 se obţine rezultatul: 21841 deoareceintA este o variabilă de tip registru care stochează numărul –12 sub formacomplementului faţă de doi: 65524. Acest număr împăr ţit la trei dă valoarea 21841.

3. Dacă operandul este o constantă nedimensionată notată ca –12 atunci operaţia – 

12 / 3 va da rezultatul: –4 deoarece constanta nedimensionată este reprezentată intern ca o constantă de tip întreg. Dacă rezultatul este atribuit unei variabile detip registru, acesta va fi stocat sub forma 65532, număr ce reprezintă complementul faţă de doi a lui minus patru.

4. Dacă operandul este o constantă dimensionată: –4’d12, atunci rezultatuloperaţiei –4’d12 / 3 va fi egal cu: 1431655761. Acest lucru se întâmplă deoarece

 pe durata simulării constanta –12 este reprezentată în complement faţă de doiîntr-un registru de 32 de biţi (4294967283). Această valoare se împarte la 3:4294967283 / 3 = 1431655761.

Operatorii relaţionali sunt destinaţi compar ării operanzilor. În Verilog suntdafiniţi patru operatori relaţionali: “<” operatorul ”mai mic”, “>” operatorul “maimare”, “<=” operatorul “mai mic sau egal” şi “>=” operatorul “mai mare sau egal”.Rezultatul unei expresii ce conţine unul din cei patru operatori relaţionali poate fi zero“0” dacă rezultatul obţinut este “fals”, sau unu “1” dacă rezultatul abţinut este“adevărat”. Dacă în expresia relaţională există cel puţin un bit în înaltă impedanţă “z”sau necunoscut “x” atunci rezultatul va fi necunoscut “x”.

În Verilog operatorii relaţionali au o prioritate mai scăzută decât operatoriiaritmetici.

Operatorii de egalitate sunt tot în numar de patru. Datorită faptului că în cazuloperatorilor relaţionali rezultatul este necunoscut dacă măcar unul din operanzi are un  bit în înaltă impedanţă « z » sau necunoscut « x », a fost necear un mod nuanţat destabilire a egalităţii între doi operanzi. Egalitatea respectiv neegalitatea după tip senotează cu „===” respectiv „!==” iar egalitatea respectiv neegalitatea logică se notează cu „==” spectiv „!=”. Egalitatea (neegalitatea) după tip furnizează rezultatul „1” dacă cei doi operanzi sunt egali (neegali) sau rezultatul „0” dacă cei doi operanzi sunt neegali(egali).

EXEMPLUL 11 

1. 1010 === 1010 furnizează rezultatul 1.

Page 81: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 81/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 82

2. 1010 !== 1010 furnizează rezultatul 0.3. 1100 === 11 furnizează rezultatul 0.4. 1100 !== 11 furnizează rezultatul 1.5. 0110 === 0xx0 furnizează rezultatul 0.

6. 1z1z !== 1z1z furnizează rezultatul 0.

Dacă cei doi operanzi nu sunt egali ca numar de simboluri, atunci operandul cuun număr mai mic de simboluri este completat cu zerouri spre stânga. În exemplul 3 sauexemplul 4, al doilea operand „11” este transformat în „0011” pentru a avea acelaşinumăr de simboluri cu primul operand „1100”.

În cazul egalităţii (neegalităţii) logice, dacă unul din operanzi conţine cel puţinun bit în starea de înaltă impedanţă „z” sau starea bitului este necunoscută „x” atuncirezultatul operaţiei este necunoscut.

EXEMPLUL 12 

1. 1010 == 1010 furnizează rezultatul 1.2. 1010 != 1010 furnizează rezultatul 0.3. 1z1z != 1z1z furnizează rezultatul x.4. 1z1z == 1z1z furnizează rezultatul x

Operatorii logici sunt de două tipuri: operatori logici pe bit şi operatori logicicare acţionează asupra întregului operand.

Operatorii logici pe bit realizează operaţia logică separat pe fiecare bit aioperanzilor şi furnizează o valoare corespunzătoare operaţiei logice efectuate.

Dacă operatorii logici pe bit au un singur operand atunci ei se numesc operatorilogici de reducere iar operaţia logică se realizează între toţi biţii operanduluifurnizânduse un rezultat cu dimensiunea de un bit.

Operatorii logici care acţionează asupra întregului operand realizează operaţialogică între valoarile logice de adevăr asociate operanzilor: „adevărat” dacă operanduleste diferit de zero sau „fals” dacă operandul este egal cu zero.

Operatorii logici pe bit (dacă se folosesc doi operanzi) sau de reducere (dacă sefoloseşte un singur operand) sunt: „~” (NOT), ”&” (AND), “|” (OR), “^” (XOR), şi“~^” sau “^~” (XNOR).

Operatorii logici pe întregul operand sunt: „!” (NOT), “&&” (AND) şi „||” (OR).

EXEMPLUL 13 1. // efectuarea operatiei logice bit cu bit

module and2 (a,b,c);input [1:0] a, b;output [1:0] c;assign c=a & b

endmodule

/* La execuţia modulului and2 se realizeaza operaţiile:

c(0) = a(0) and b(0)

Page 82: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 82/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 83

c(1) = a(1) and b(1) */

2. // efectuarea operatiei logice pe intregul operandwire[7:0] x,y,z ; // x,y si z sunt variabile multibit

reg a ;…if ((x==y)&&(z)) a=1 // a=1 daca x este egal cu y si z este diferit

// de zeroelse a= !x // a=0 daca x este diferit de zero

3. //operator logic de reduceremodule chk_zero (a,z);

input [2:0] a;output z;assign z = ~| a; // functia logica de reducere NOR  

endmodule 

/* La executia modulului chk_zero se realizeaza operatia:z = a(0) NOR a(1) NOR a(2)

Operatorii de deplasare realizează deplasarea primului operand cu un număr de biţi specificat de către cel de-al doilea operand. Poziţiile r ămase libere în urmadeplasării sunt completate cu valoarea zero. Operatorii de deplasare sunt : „ << “ – deplasare stânga şi „ >> “ – deplasare dreapta.

EXEMPLUL 14 

assign c = a >> 2; // variabila c este egala cu// variabila a deplasata la// dreapta cu doua pozitii

Operatorul de concatenare combină doi sau mai mulţi operanzi într-un vector.Operatorul de concatenare se notează cu paranteze acoladă: “ { } “.

EXEMPLUL 15 

wire [1:0] a,b; wire [2:0] x; wire [3:0] y,Z;assign x = {1’b0,a}; //x[2] = 0, x[1] = a[1], x[0] = a[0]assign y = {a, b} ; //y[3] = a[1], y[2] = a[0], y[1] = b[1],

//y[0] = b[0]

Operatorul de replicare face mai multe copii al unui operand. Operatorul dereplicare se notează: {n{operand}} unde n indică numărul de replicări ale operandului.

EXEMPLUL 16 

wire [1:0] a, b; wire [4:0] x;

assign x = {2{1’b0},a}; // este echivalent cu: x = {0,0,a}

Page 83: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 83/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 84

  assign y = {2{a}, 3{b}}; // este echivlent cu y = {a,a,b,b}

Operatorul condiţional “?” are aceeaşi semnificaţie ca şi în limbajul C/C++ (înfuncţie de rezultatul unei condiţii se alege una din două expresii):

(conditie) ? (expresie în cazul când condiţia este adevarata) :(expresie în cazul când condiţia este falsă)

EXEMPLUL 17 

assign a=(c) ? x:y;

/* in functie de condita c se obtin rezultatele: a=x daca c este adevarat sau a=y daca c este fals, implementare ce reproduce functionarea unui multiplexor la care x si y suntintrari de semnal, a este iesirea de semnal iar c este intrarea de comanda */

Atribuirea continuă se foloseşte pentru stabilirea unei valori la o conexiune(wire) dintr-un modul. Atribuirea se poate face la un semnal de ieşire pentru carezultatul unei expresii sau operaţii să fie accesibil la ieşirea modulului. Există două tipuri de atribuiri: atribuitri continui şi atribuiri procedurale.

Atribuirea continuă este folosită în modelarea fluxului de date fiind cel maiîntâlnit tip de atribuire.

Instrucţiunea de atribuire continuă este compusă din următoarele elemente:

o cuvântul rezervat assign;o declararea întârzierii (opţional);o  partea stângă a instrucţiunii care este destinaţia atribuirii şi care poate

fi o reţea (scalar ă sau vectorială) sau mai multe reţele concatenate.Folosirea registrelor nu este permisă în partea stângă a expresiei;

o simbolul de atribuire (semnul egal „=”);o  partea dreaptă a instrucţiunii care este o expresie a cărei operanzi pot

fi de orice tip permis (constante, reţele, registre, apeluri de funcţiietc.).

A

B

C

D

X

Z

 Y

Fig. 1.49. Modul pentru explicarea atribuirii implicite şi

Atribuirile implicite continue reprezintă atribuirile f ăcute o dată cu declarareareţelelor. Pentru exemplificare consider ăm un modul oarecare a cărui schemă bloc estereprezentată în figura 1.49.

EXEMPLUL 18 

1. Atribuirea continuă implicită.

Page 84: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 84/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 85

 module SomeMod (Z, A, B, C, D);output Z;input A, B, C, D;

wire X= … ; //expresie ce contine operanzii A si Bwire Y= … ; //expresie ce contine operanzii C si D

assign Z= … ; // expresie ce contine operanzii X si Y

endmodule 

2. Atribuirea continuă explicită 

module SomeMod (Z, A, B, C, D);

output Z;input A, B, C, D;

wire X;wire Y;

assign X= … ; //expresie ce contine operanzii A si Bassign Y= … ; //expresie ce contine operanzii C si Dassign Z= … ; // expresie ce contine operanzii X si Y

endmodule 

Atribuirea condiţională este exemplificată la prezentarea operatoruluicondiţional (exemplul 17).

Atribuirea continuă este evaluată permanent, aşa cum arată şi numele acesteia şiorice modificare a unui operand în membrul drept se va reflecta imediat in membrulstâng al atribuirii. În cazul în care există mai multe atribuiri acestea vor fi evaluate înmod concurent astfel încât funcţionarea programului să reflecte în mod fidelcomportarea structurii fizice.

Întârzierile reflectă comportarea sistemelor fizice reale. Întârzierile sunt

specificate în unităţi de timp care sunt definite în directiva compilator ‘timescale.În cazul descrierii comportamentale a circuitelor complexe sau a sistemelor, cuajutorul algoritmilor, trebuie folosite noţiuni similare limbajelor de programare de nivelînalt. Adevarata valoare a unui limbaj de nivel înalt cum este Verilog constă în faptul că 

  permite descierea comportamentală (funcţională) a sistemelor. Datorită faptului că aceste cunoştiinţe nu sunt absolut necesare pentru simularea circuitelor logicecombinaţionale, ele nu vor fi prezentate deocamdată.

Directivele compilatorului 

Directivele compilatorului sunt comenzi speciale care încep cu caracterul ( ` -atenţie acest simbol nu este apoatrof: ‘ ) şi care influenţează funcţionarea simulatoruluiVerilog. Prezentăm în continuare câteva din directivele compilatorului.

Page 85: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 85/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 86

Directiva `timescale specifică unitatea de timp şi precizia unităţii de timp. Spreexemplu, dacă unitatea de timp este stabilită la 10ns atunci o întârziere notată cu #3.5reprezintă 35ns. Precizia unităţii de timp indică modul în care este f ăcută rotunjireavalorii întârzierii pe timpul simulării.

Unităţile de timp valide sunt: s, ms, μs, ns, ps, fs. Pentru specificarea unităţii detimp sau a preciziei nu pot fi folosite decât cifrele: 1, 10 sau 100.

Sintaxa directivei `timescale este :

`timescale time_unit/time_precision;

Directiva pentru definirea macroinstrucţiunilor este `define. Macroinstrucţiunilesunt apelate cu numele macroinstrucţiunii precedat de apostrf, ca în exemplul de mai

 jos.

EXEMOLUL 19 

`define add_lsb a[7:0] + b[7:0]assign line=’add_lsb; //se atribuie line = a[7:0] + b[7:0]

Directiva `include permite inserarea unui fişier text în punctul în care se găseştedirectiva. Directiva este similar ă celei din limbajul C/C++.

Sarcinile (task) şi funcţiile (function) sistem

Sarcinile şi funcţiile sistem sunt folosite pentru generarea intr ărilor şi a ieşirilor  pe durata simulării. Numele acestora este precedat de semnul dollar ($) şi se pot găsi înorice loc pe parcursul programului. Sarcinile sistem care extrag datele, cum este spreexemplu $monitor trebuie să se găsească într-un bloc initial sau always. Vom prezentaîn continuare câteva dintre sarcinile sau funcţiile sistem mai des folosite.

Comenzile $display, $strobe, $monitor au aceeaşi sintaxă  şi ele afişează valorile sub formă de text pe durata simulării. Comenzile $display şi $strobe determină o afişare ori de câte ori sunt executate pe când $monitor afişează ori de câte ori se

  produce o schimbare a parametrilor. Şirul format este asemănător cu cel din C/C++ putând conţine caractere de formatare: %d (zecimal), %h (hexazecimal), %b (binar),%c (caracter), %s (şir) şi %t (timp).

Adăugarea literelor b, h sau o la numele taskului schimbă afişarea din formatul

implicit în binar, hexazecimal sau octal.

EXEMPLUL 20 

initial begin$displayh (al,ah ); // al si ah sunt afisate in hexazecimal$monitor (“at time=%t, d=%h, $time, a);

end 

Comenzile $time, $stime  şi $realtime furnizează durata simulării sub formaunui întreg de 64 de biţi, respectiv 32 de biţi sau sub forma unui număr real.

Page 86: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 86/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 87

EXEMPLUL 21 

time ts;ts = $time;

Comenzile $reset, $stop  şi $finish au următoarele efecte: $reset iniţializează simulatorul la momentul zero, $stop opreşte simulatorul şi-l pune în modul interactivaşteptând comenzi de la utilizator iar  $finish produce ieşirea din simulator  şireîntoarcerea în sistemul de operare.

Comanda $deposit setează o reţea la o valoare particular ă. Sintaxa comenziieste:

$deposit (nume_reţea, valoare);

1.7.2.2.Testarea programelor Verilog HDL

Există mai multe modalităţi de testare a proiectelor realizate în limbajul Verilog,însă cea mai folosită metodă este cea cu ajutorul fişierului de testare (Test Benches).

Fişierul de test este compus din mai multe elemente:

o interfaţa cu proiectul de testat (numit şi unitate de testat – UUT – Unit Under Test), care poate reprezenta unul sau mai multe moduleVerilog;

o semnalele de test – stimulii;o sistemul de monitorizare a r ăspunsului unităţii de testat la stimulii

aplicaţi

şi reprezintă o specificaţie hibridă alcătuită din instrucţiuni de tip structural şiinstrucţiuni de tip comportamental. Această specificaţie Verilog este simulată cuajutorul unui simulator Verilog.

Stimulii pentru modulul/modulele testat/testate sunt precizaţi direct în interiorulfişierului de test sau pot fi furnizaţi de către un modul extern.

Pe de altă parte, semnalele de ieşire ale modulului/modulelor de testat pot fiobservate prin intermediul ieşirilor simulatorului (de exemplu formele de undă afişate

 pe ecran), prin intermediul mesajelor de simulare sau pot fi scrise într-un fişier.Fişierul de test reprezintă deci o specificaţie Verilog care are modulul său

 propriu. Acest modul se deosebeşte de celelalte module prin câteva caracteristici aparte:o modulul nu are porturi;o stimulii care pot fi specificaţi în acest modul sau într-un modul extern

separat;o monitorizarea ieşirilor realizată cu ajutorul sarcinilor sistem scrise într-

un bloc separat pentru creşterea lizibilităţii.

Structura generală a fişierului Test Bench este prezentată în continuare înexemplul 22.

Page 87: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 87/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 88

EXEMPLUL 22 

module TestBench;-------------------------------------------------------------------------------

reg … ; declararea semnalelor de stimularewire … ;

-------------------------------------------------------------------------------initial…

always declararea stimulilor  begin

#… … = … ;#… … = … ;

end

initial#… $finish 

---------------------------------------------------------------------------------modname UUT (…); instanţierea modulului UUT

---------------------------------------------------------------------------------initial monitorizarea rezultatelor 

$monitor (…);---------------------------------------------------------------------------------endmodule

După realizarea proiectului în limbaj Verilog trebuie realizată verificareaacestuia cu ajutorul fişierului de testare. Proiectul realizat se foloseşte în fişierul detestare f ăr ă a fi necesar ă nici un fel de modificare, folosindu-se în fişierul de testare oinstanţiere a modulului de test. Din acest motiv putem spune că fişierul de test poate fiaplicat oricăreispecificaţii Verilog.

Pentru instanţierea modulului de testat (UUT) în interiorul fişierului de test, sescrie numele modulului UUT urmat de lista de asociere a porturilor prin nume sau prinordinea în care acestea sunt scrise. Porturile instanţierii UUT sunt asociate cu semnalelede stimulare. Deoarece procesele sunt concurente, ordinea de definire a stimulilor  şiinstanţierea modulului de testat nu are nici o imporanţă.

În exemplul 23 se arată felul cum se defineşte un modul şi fişierul de test asociatacestuia.

// modulul de testat

module combi (Y, A, B, C);output Y;input A, B, C;…endmodule 

// fisierul de test

Page 88: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 88/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 89

 module TestBench;…combi UUT (.Y(…), .A(…), .B(…), C(…));

…endmodule 

Semnalele de simulare sunt declarate, aşa cum s-a ar ătat, în interiorul modululuide testare sau într-un modul extern. Aceste semnale sunt asociate cu intr ările modululuiUUT prin intermediul semnalelor declarate în modulul de test. Evoluţia în timp asemnalelor de stimul se specifică într-o manier ă secvenţială, de obicei în interiorul unor 

 blocuri de tip initial şi always.Folosirea blocului initial cu comanda sistem $finish permite ca simularea să se

termine înr-o durată de timp determinată. Folosirea blocului always permite realizarea buclelor infinite.

Corespondenţa între stimuli şi modulul de testat se realizează prin specificaţia porturilor din instanţierea UUT.

În exemplul 24 se prezintă un modul corespunzător unui multiplexor cu două intr ări şi specificarea semnalelor de stimul pentru fişierul de test.

Schema electrică a multiplexorului este prezentată in figura 1.50.

U4A

7404

1 2

U1A

7408

1

2

3

COMANDA 

U2A

7408

1

2

3

INTRARE

Sel

A

IESIRE

Y

U3A

7432

1

2

3

B

INTRARE

Fig. 1.50. Multiplexorul cu două intrări şi o ieşire

EXEMPLUL 24 

// modulul multiplexorului cu 2 intrari si o iesire

module mux2to1 (Y, A, B, Sel);output Y;input A, B, Sel;

assign Y = Sel ? A : B ;

endmodule

// fisierul de test – definirea stimulilor module TestBench;

reg Sel, A, B;

wire Y;

Page 89: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 89/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 90

 mux2to1 UUT (Y, A, B, Sel);initial 

begin 

Sel = 1’bx; A = 1’b0; B = 1’b1;end 

always

begin #40 Sel = 1’b0; // schimbare la 40#20 A = 1’b01 ; // schimbare la 60#20 Sel = 1’b1 ; // schimbare la 80#20 B = 1’b0 ; // schimbare la 100#20 Sel = 1’b0 ; // schimbare la 120#20 A = 1’b1 ; // schimbare la 140#20 Sel = 1’b1 ; // schimbare la 160

#20 B = 1’b1 ; // schimbare la 180end 

initial#200 $finish ;

…endmodule 

În exemplul 25 se prezintă două forme de analiză a rezultatelor simulării: prezentarea rezultatelor pe display (exemplul 25.a) folosind comanda sistem $monitor sau salvarea datelor în fişier (exemplul 25.b) folosind comanda sistem $fmonitor.

EXEMPLUL 25

a.// fisierul de test cu afisarea rezultatelor pe ecran

module TestBench;reg Sel, A, B;wire Y;

mux2to1 UUT (Y, A, B, Sel);initial 

begin  Sel = 1’bx; A = 1’b0; B = 1’b1;end 

alwaysbegin 

// stimuliend 

initial#200 $finish ;

initial

begin

$display(“ TIME A B Sel Y”);

Page 90: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 90/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 91

$monitor($time,” %b %b %b %b, A, B, Sel, Y);end

endmodule

b.// fisierul de test cu salvarea rezultatelor in fisier 

module TestBench;reg Sel, A, B;wire Y;integer Res;

mux2to1 UUT (Y, A, B, Sel);initial 

begin Sel = 1’bx; A = 1’b0; B = 1’b1;

end always

begin // stimuli

end initial

#200 $finish ;initial

beginRes = $fopen(“simlog.txt”);$fdisplay(“ TIME A B Sel Y”);$fmonitor($time,” %b %b %b %b, A, B, Sel, Y);

end

endmodule 

Rezultatul simulării obţinut în fişierul „simulog.txt” este:

TIME A B Sel Y0 0 1 x x

40 0 1 0 060 0 1 0 1

80 0 1 1 1100 0 1 1 0120 0 1 0 1140 1 1 0 1160 1 1 1 0180 1 0 1 0

Vom prezenta în continuare modul în care se face simularea unui circuit logiccombinaţional cu ajutorul programului Silos, versiunea demonstrativă (2002.100), pusla dispoziţia utilizatorilor în mod gratuit, de către firma Simucad Inc.

Page 91: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 91/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 92

După lansarea în execuţie a programului Silos, se va deschide un proiect nou

  prin selectarea opţiunii Project din meniul principal, iar din meniul desf ăşurat seselectează opţiunea New… (figura 1.51).

Figura 1.51. Fereastra principala a programului Silos

Figura 1.52. Fereastra pentru

creerea proiectului nou.

Se deschide o fereastr ă nouă prin intermediul căreiase solicită numele noului proiect. Se va crea undirector nou „Silos TEST” în directorul r ădăcină pediscul în care lucr ăm şi în acest director se creează 

  proiectul „mux2to1” extensia proiectului fiindimplicită: „.spj”. După introducerea numelui

  proiectului fereastra se extinde şi se solicită fişierele care vor fi incluse în proiect: fişiere sursă 

scrise în limbaj Verilog, biblioteci, directoare ceconţin informaţia de inclus în proiect etc.Deocamdata proiectul nu conţine nici un fişier  şideci se apasă butonul OK   şi se r ăspunde YES laavertismentul apărut (figura 1.52). Dacă fişierul

Figura 1.53. Fişierul modulului mux2to1.

Page 92: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 92/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 93

sursă ce conţine modulul cu multiplexorul cu două intr ări şi o ieşire există, atunci acelfişier va fi inclus în proiect.

Pentru a crea acest fişier se poate utiliza orice editor de text sau un editor specializat pentru scrierea programelor în limbajul Verilog. Se poate utiliza, în acest

caz, editorul programului Silos. Multiplexorul cu două intr ări şi o ieşire are schemaelectrică prezentată în figura 1.50. În exemplul 24 a fost descris acest circuit în modulul„mux2to1” cu ajutorul descrierii comportamentale. Fiind vorba de un circuit logic

combinaţional vom folosi acum descriereastructurală cu ajutorul por ţilor logice. Seselectează din meniul principal File după care seselectează  New moment în care se deschidefereastra fişierului sursă numită genericSource1. Se introduce textul corespunzător modulului mux2to1 conform celor prezentate înexemplul 26 după care se salvează acest fişier 

cu numele mux2to1_module.v aşa cum estear ătat în figura 1.53.

După salvarea fişieruluimux2to1_module.v se selectează  Project dinmeniul principal, apoi Files  şi se adaugă la

  proiect acest fişier (figura 1.54). În acestmoment fişierul sursă poate fi verificat şi seselectează din meniul principal opţiunea Debug,apoi Go sau se apasă tasta. Dacă in fereastra de

ieşire a simulatorului nu sunt semnalate erori atunci fişierul sursa este corect din punctde vedere sintactic. Dacă apar erori de sintaxă, acestea se corectează după care se refacecompilarea fişierului (acţiunea Debug -> Go).

Figura 1.54. Adaugarea fişierului

mux2to1_module.v la proiect.

EXEMPLUL 26

module mux2to1 (Y,A,B,Sel);

// intrarile si iesirile modululuioutput Y;input A,B,Sel;

// conexiunile interne ale circuituluiwire U4A, U1A, U2A;

not (U4A,Sel);and (U1A,A,Sel);and (U2A,U4A,B);or (Y,U1A,U2A);

endmodule

Urmează acum scrierea fişierului TestBench pentru simularea modulului

mux2to1. Pentru aceasta se deschide un fişier nou cu ajutorul comenzii File urmată de

Page 93: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 93/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 94

New sau se apasă combinaţia de taste Ctrl + N. În acest fişier se crează modulul de testmux2to1_TB prezentat în exemplul 27.

EXEMPLUL 27 

// TestBench pentru modulul mux2to1

`timescale 1ns / 100ps

module mux2to1_TB;

reg Sel, A, B;wire Y;

// instantierea modululoi de testat

mux2to1 UUT (Y, A, B, Sel);

// definirea stimulilor de intrarealways

 begin#40 Sel = 0; // schimbare la 40#20 A = 1; // schimbare la 60#20 Sel = 1; // schimbare la 80#20 B = 0; // schimbare la 100#20 Sel = 0; // schimbare la 120#20 A = 1; // schimbare la 140#20 Sel = 1; // schimbare la 160#20 B = 1; // schimbare la 180

//simulare completa$finish;

end

Figura 1.55. Fereastra principală a programului Silos cu rezultatele simulării.

Page 94: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 94/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 95

initial begin

//valori initialeSel = 1;

A = 0;B = 1;end

endmodule

La sfâr şit salvăm fişierul cu ajutorul comenzii File, Save As… folosind numelemux2to1_TB.v pentru acesta. Includem apoi acest fişier în proiect cu succesiunea decomenzi Project urmată de Files… iar în fereastra apărută, similar ă cu cea prezentată înfigura 1.54 se face dublu clic pe fişierul mux2to1_TB.v sau, se selectează acest fişier,apoi se apasă butonul Add, în final selectându-se butonul OK .

Pentru testare lansăm în execuţie proiectul cu ajutorul comenzii Debug din

meniul principal, urmată de Go, sau se apasă pe butonul din bara principală deunelte (Main Toolbar). În urma acestei acţiuni se face compilarea fişierelor şi simulareaacestora. Dacă în fereastra de ieşire nu sunt semnalate erori putem acum să vizualizămsemnalele circuitului. Pentru aceasta selectăm fereastra Data Analizer prin selectarea

  pictogramei sau apăsarea tastei F6 sau selectarea opţiunii Window, din meniul  principal, urmată de Open New Data Analizer. Se deschide de asemenea fereastra

Explorer prin selectarea pictogramei sau Window, din meniul principal, urmată deOpen Explorer. În această fereastr ă sunt afişate modulele din proiect, într-o structur ă ierarhică, în partea stângă şi porturile aferente acestora, în partea dreaptă. Semnalele pe

care dorim să le afişăm trebuie să apar ă aici. Prin tehnica “drag and drop” acestesemnale sunt “trase” din partea dreaptă a ferestrei Explorer şi puse în partea stângă aferestrei Data Analizer. Semnalele din fereastra Data Analizer de care nu mai avemnevoie le putem şterge prin selectarea acestora şi apăsarea tastei Delete. În final, pentrua vizualiza semnalele pe toată durata simulării apăsăm în mod repetat pictograma

.Fereastra principală a programulul Silos cu rezultatele simulării este prezentată înfigura 1.55.

Rezultatele simulării sunt prezentate în figura 1.56.

Figura 1.56. Rezltatul simulării multiplexorului cu două intrări şi o ieşire

prezentat în figura 1.50.

Din această figur ă se observă faptul că semnalul de ieşire copiază semnalele deintrare A sau B în funcţie de semnalul Sel : dacă  Sel este egal cu unu se copiază semnalul A iar dacă Sel este egal cu zero se copiază semnalul B.

Page 95: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 95/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 96

O altă posibilitate de simulare a circuitelor logice combinaţionle este oferită de programul  ModelSim. Acest program este realizat de către firma Model Technology™care apar ţine companiei Mentor Graphics Corporation. Folosim Modelsim SE versiunea2.7f.

Figura 1.57. Fereastra principală a programului ModelSim.

Spaţiul de lucru (workspace) –pentru fiecare set de date estecreată câte o etichetă a structurii

Se selectează File, apoi New, după care Project…

Programul  Modelsim permite managementul proiectelor realizate în limbajVerilog sau VHDL cât şi în alte limbaje, editarea surselor pentru aceste limbaje desimulare, compilarea si execuţia programelor scrise. De asemenea programul dispune deinstrumente puternice de afişare şi prelucrare a semnalelor  şi a formelor de undă rezultate în urma simulării.

Anumite variante ale programului  ModelSim permite simularea proiectelor combinate realizate atât în limbaj Verilog cât şi în limbaj VHDL.Datorită numeroaselor facilităţi ale programlui, simularea şi depanarea proiectelor poate

fi realizată într-un timp scurt chiar şi în cazul proiectelor complexe.

Figura 1.58. Fereastra pentru

crearea unui proiect nou.

Pentru exemplificare se va simula în  programul ModelSim acelaşi circuit şi anumemultiplexorul cu două intr ări şi o ieşire prezentatîn figura 1.50. De asemenea, vom folosi fişiereledeja scrise mux2to1_module.v  şimux2to1_TB.v în cazul simulării cu ajutorul

 programului Silos, prezentată anterior.Se deschide programul  Modelsim  şi este

afişată fereastra din figura 1.57 (după ce se

închide, eventual, fereastra de întâmpinare – 

Page 96: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 96/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 97

Welcome Menu).Pentru a crea un proiect nou, din meniul principal se selectează File, din meniul

desf ăşurat se alege New, după care se selectează  Project… Se deschide fereastraCreate Project (figura 1.58), unde la Project Name se completează : test, la Project

Location se introduce locaţia proiectului, de exemplu :E:\Modelsim teste\proiect1,

iar la Default Library Name r ămâne valoarea implicită : work .

Figura 1.59. Fereastra de

adăugare a elementelor noi la un

proiect.

Figura 1.60. Adăugarea unui fişier la proiect

După completarea acestor opţiuni se apasă butonul OK . După aceasta, sedeschide fereastra de adăugare a elementelor la proiect (figura 1.59). Astfel se poatecrea un fişier nou, se poate adăuga un fişier existent, se poate crea un director sau se

 poate realiza o simulare.

Figura 1.61. Spaţiul de lucru după adăugarea fişierelor.

În această fază se vor adăuga la  proiect cele două fişiere deja create :

mux2to1_module.v  şi mux2to1_TB.v carese vor copia în directorul proiectului.Copierea fişierelor se poate face din opţiuneaAdd Existing File sau de sub sistemul deoperare Windows în directorul noului

  proiect ; în exemplul nostru: E:\Modelsimteste\proiect1,

Figura 1.62. Fereastra de editare a

fişierului mux2to1_TB.v

Este evident faptul că fişierele pot ficreate în această fază prin selectarea opţiuniiCreate New File.

Dacă se selectează opţiunea Add

Existing File, este afişată fereastra Add file to Project (figura 1.60). În această 

Page 97: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 97/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 98

fereastr ă se completează numele fişierului şi se bifează opţiunea de copiere a fişieruluiîn directorul proiectului (Copy to project directory) dacă este necesar acest lucru. Lasfâr şit, după copierea celor două fişiere, se apasă butonul Close al ferestrei Add items

to the Project.

După adăugarea celor două fişiere: mux2to1_module.v  şi mux2to1_TB.v acestea apar în spaţiul de lucru ca în figura 1.61. Se selectează fişierul mux2to1_TB şise face dublu clic pe acesta pentru a se deschide fereastra de editare (figura 1.62). Înaceastă fereastr ă se modifică funcţia sistem $finish în $stop ca în figur ă. După acestaînchidem fereastra şi salvăm fişierul.

Figura 1.63. Biblioteca work cu fişierele compilate.

Figura 1.64. Crearea unei sesiuni de simulare.

Din meniul View seselectează fereastraSignals şi fereastra Wave

  Ne întoarcem în spaţiul de lucru şi pe unul din fişiere selectat se face clicdreapta. În meniul desf ăşurat se alege Compile şi apoi Compile All (acelaşi lucru seobţine dacă se selectează  Compile din meniul principal şi apoi Compile All).Compilarea trebuie să decurgă f ăr ă să se semnaleze erori. În caz contrar, fişierul cu erori

Page 98: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 98/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 99

se editează pentru corecţia acestora. Rezultatele compilării modulelor sunt stocate în biblioteca proiectului pentru care s-a stabilit, la crearea acestuia, numele work .

În acest moment se poate trece la simularea modulului ce descrie multiplexorulcu două intr ări şi o ieşire.

Pentru aceasta, în spaţiul de lucru, în partea de jos, se selectează etichetaLibrary. În spaţiul de lucru se afişează lista bibliotecilor care cuprinde şi bibliotecawork a proiectului nostru. Se expandează această bibliotecă prin clic pe semnul plus dindreptul libr ăriei work  şi se face dublu clic pe modulul mux2to1_TB pentru a deschideo sesiune de simulare (figura 1.63).

Pentru vizualizarea semnalelor, din meniul principal se selectează opţiunea Viewiar din aceasta fereastra Signals şi fereastra Wave (figura 1.64). În fereastra Signals seselectează semnalele a căror formă de undă dorim să o vizualizăm iar prin tehnica Dragand Drop acestea sunt duse în fereastra Wave (figura 1.65).

Pentru selectarea tuturor 

semnalelor, în fereastra Signals se alege din meniul principalEdit şi de aici Select All. După ce semnalele alese au fost duseîn fereastra Wave se trece lasimulare prin selectareaopţiunii Simulate din fereastra

 principală a programuluiModelSim  şi de aici Run  şiapoi, din meniul desf ăşuratRun All. Programul esteexecutat până la întâlnireafuncţiei $stop  şi formele deundă a semnalelor sunt afişateîn fereastra Wave (figura 1.66).Dacă se analizează aceste

forme de undă se constată că semnalul de ieşire /mux2to1_TB/Y copiază semnalul deintrare /mux2to1_TB/A sau /mux2to1_TB/B după cum semnalul de selecţie

/mux2to1_TB/Sel arevaloarea unu logic, respectivzero logic. Aceste forme de

undă sunt similare cu cele  prezentate în figura 1.50obţinute cu ajutorul

 programului Silos. Trebuieremarcat faptul că simulărilef ăcute s-au bazat pe por ţilogice ideale la care nu apar întârzieri datorate tranziţieisemnalului prin poarta reală.Aşa cum s-a ar ătat, acesteîntârzieri pot fi introduse în

 program sau pot fi folosite module oferite de către producători.

Figura 1.65. Transferarea semnalelor din fereastra

Signals în fereastra Wave

Figura 1.66. Formele de undă obţinute la simularea

multiplexorului cu două intrări şi o ieşire.

Page 99: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 99/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 100

 

1.7.3 Limbajul VHDL 

Limbajul VHDL este cel de-al doilea limbaj folosit pentru descrierea structurilor fizice (hardware) pe care-l vom folosi la simularea circuitelor logice combinaţionale.Acest limbaj realizează o descriere a comportării structurii fizice, ascunzând detaliile deimplementare şi acoperind astfel o gamă largă de aplicaţii, permiţând simulareacircuitelor digitale din cele mai diverse.

Limbajul VHDL este folosit în procesul de proiectare a circuitelor digitaleîncepând de la nivelul de sistem şi până la nivelul por ţii logice. De asemenea, datorită caracterului său descriptiv, limbajul VHDL poate constitui de multe ori documentaţia defuncţionare a unei structuri fizice.

Etapele proiectării unui circuit logic digital cu ajutorul limbajului VHDL sunt:1. descrierea detaliată a sistemului – se stabilesc cerinţele ce trebuie să 

le îndeplinească sistemul ce urmează să fie proiectat;2. proiectarea sistemului – se face modelarea comportării sistemului în

limbaj VHDL;3. validare – verificarea modelului prin furnizarea stimulilor  şi

verificarea r ăspunsului aşteptat;4. proiectarea logică – modelarea structurii la nivel RTL (Register-

transfer-level sau RT-level) cu ajutorul programelor de sinteză.Rezultatul este reprezentat o listă de conexiuni a circuitului (netlist)sau un model la nivel de poartă logică;

5. validare – verificarea rezultatului prin furnizarea stimulilor  şiverificarea r ăspunsului aşteptat;

6. proiectarea circuitului – conversia automată a descrierii structurale;7. validare – verificarea rezultatului prin furnizarea stimulilor  şi

verificarea r ăspunsului aşteptat;8. obţinerea planului general a circuitului – se obţin datele necesare

implementării fizice a circuitului pe baza listei de conexiuni (netlist);9. validare – verificarea finală a rezultatului obţinut, cu ajutorul datelor 

furnizate de fabricantul circuitelor, prin furnizarea stimulilor  şiverificarea r ăspunsului aşteptat.

1.7.3.1. Structura unui program VHDL

În limbajul VHDL se consider ă că un sistem este alcătuit din trei păr ţi esenţiale:interfaţa (entity) sistemului cu mediul, corpul (architecture) sistemului cu ajutorulcăruia sunt prelucrate semnalele furnizate de interfaţă  şi care trimite prin interfaţă semnale spre exterior  şi elementele suplimentare (package) adăugate corpuluisistemului pentru adăugarea unor funcţii noi. Aceste componente constituie elemente de

 proiectare independente ale limbajului ce vor fi prezentate succint în continuare.Elementul de bază a limbajului, care descrie interfaţa sistemului cu mediul

extern, este entitatea (entity). Nu poate fi conceput un program în limbaj VHDL f ăr ă nici o entitate. De asemenea, proiectarea unui sistem va începe cu declararea uneientităţi.

Page 100: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 100/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 101

Entitatea furnizează specificaţii ale interfeţei sistemului prin două elemente: parametrii sistemului care sunt văzuţi din exterior şi conexiunile prin care se transfer ă informaţia din şi către sistem (intr ările şi ieşirile sistemului).

Parametrii sistemului reprezintă declaraţii generice care sunt transferate corpului

sistemului folosindu-se cuvântul rezervat generic. Conexiunile sistemului desemnează   porturile de intrare, de ieşire sau de intrare/ieşire a acestuia cu ajutorul cuvântuluirezervat port.

Declararea unei entităţi, în general, este dată în exemplul 28.

EXEMPLUL 28

-- Un exemplu de definire a unei entitatientity <nume> is<paramerii> -- parametrii vizibili ai entitatii<conexiuni> -- intrarile si iesirile entitatii

end entity <nume>;

În exemplul 29 se prezintă un exemplu pentru definirea unei entităţicorespunzătoare unei por ţi logice SAU (or gate).

EXEMPLUL 29 

-- or gateentity org is 

-----------------------------------------------------------generic (tpd_hl : time := 1 ns; -- parametrii

tpd_lh : time := 1 ns);-----------------------------------------------------------

port (in1, in2 : std_logic; -- conexiuniout1 : out std_logic);

-----------------------------------------------------------end org;

Comentariile în limbajul VHDL se marchează, pe fiecare linie, cu două liniuţe „--" în faţa comentariului iar instrucţiunile se termină întotdeauna cu caracterul punct şivirgulă „ ; ".

După definirea entităţii trebuie definit modul în care sistemul prelucrează informaţia, adică ceea ce s-a numit corpul sistemului. Corpul sistemului este definit prinintermediul arhitecturii (architecture) acestuia (architecture of entity) care poate fi dedouă feluri: descriere structurală şi descriere comportamentală.

Descrierea structurală se refer ă la elementele componente ale sistemului şimodul de interconectare a acestora pentru a obţine comportarea dorită a sistemului.Sinteza pe baza descrierii structurale este mai simplu de f ăcut deoarece acest tip dedescriere se refer ă la modulele componente concrete ale sistemului.

Descrierea comportamentală (funcţională) se refer ă la modul de prelucrare asemnalelor de către sistem fiind vorba în general de specificarea semnalelor de ieşire înfuncţie de semnalele de intrare. Sinteza pe baza acestui tip de descriere este mai dificil

de f ăcut deoarece există mai multe posibilităţi de realizare fizică.

Page 101: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 101/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 102

Programele de sinteză a circuitelor digitale folosesc, în general, atât descriereastructurală cât şi cea comportamentală a sistemului.

Deoarece variante diferite de arhitecturi ale sistemelor digitale pot implementaaceeaşi funcţie, pentru o entitate (un sistem) pot exista mai multe arhitecturi diferite

(reciproca nu este adevărată deoarece unei arhitecturi nu-i pot corespunde mai multeinterfeţe – entităţi – diferite).În exemplul 30 este prezentată descrierea comportamentală (algoritmică) a por ţii

logice SAU a cărei entitate este definită în exemplul 29.

EXEMPLUL 30 

architecture only of org is begin

 p1: process(in1, in2)variable val : std_logic;

beginval := in1 or in2;case val is 

when '0' =>out1 <= '0' after tpd_hl;

when '1' =>out1 <= '1' after tpd_lh;

when others =>out1 <= val;

end case;end process;

end only;

Blocul este un element de bază într-o descriere VHDL. Un bloc este o zonă detext, mărginită, care conţine o secţiune de declaraţii şi o secţiune executabilă. Un corparhitectural este un bloc cu deosebirea că, în interiorul unui corp arhitectural pot fiformate alte blocuri. În exemplul 31 este prezentat corpul arhitecturalBLOCK_STRUCTURED. În blocul exterior al corpului arhitectural sunt incluse

 blocurile A şi B. Blocurile A şi B pot fi formate de asemenea din sub-blocuri. Numărulnivelelor de includere este, în general, nelimitat.

EXEMPLUL 31

Architecture BLOCK_STRUCTURED of  SYSTEM is

-- secţiunea declaraţiilor blocului exterior begin 

-- instrucţiuni executabile ale blocului exterior A: block  -- secţiunea de declaraţii pentru blocul interior Abegin 

-- instrucţiuni executabile pentru blocul interior Aend block A;

B: block  

Page 102: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 102/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 103

-- secţiunea de declaraţii pentru blocul interior Bbegin 

-- instrucţiuni executabile pentru blocul interior Bend block B;

end BLOCK_STRUCTURED;

Atunci când anumite elemente sunt mai frecvent întâlnite în programele VHDLsau în situaţia în care dorim să utilizăm elemente predefinite în biblioteci se folosesc pachetele (package) care încapsulează elemente ce pot fi folosite simultan în mai multeunităţi de proiectare (date globale).

În programele VHDL se folosesc două clauze pentru apelarea unui pachet:library şi use. Aceste clauze trebuie folosite înainte de utilizarea pachetului, de obiceiînaintea entităţii care foloseşte un element declarat în pachet.

În exemplul 32 se arată regula de definire a unui pachet.

EXEMPLUL 32

package <identificator> is-- partea declarativă a pachetuluiend [package] [identificator];

Identificatorul furnizează un nume pentru pachet, nume care se poate folosioriunde într-un model pentru a face referire la pachetul respectiv. În interioruldeclaraţiei de pachet se scriu declaraţii care includ tipuri, subtipuri, constante, semnaleşi subprograme.

Limbajul VHDL are câteva pachete predefinite, folosite în mod frecvent, dintrecare cele mai importante sunt: pachetul STANDARD, pachetul TEXTIO  şi pachetulSTD_LOGIC_1164. Pachetul STANDARD este încărcat în mod implicit de cătrecompilatorul VHDL şi conţine declararea tuturor tipurilor standard, a operatorilor  şiobiectelor limbajului.

Pachetul TEXTIO conţine declaraţii de tip şi obiecte referitoare la citirea şiscrierea textelor. Pentru utilizarea acestui pachet, înaintea descrierii entităţii, trebuiescrise următoarele declaraţii:

library Std;use Std.TextIO.all;

Pachetul STD_LOGIC_1164 conţine extensii ale limbajului VHDL standard.Pentru utilizare se folosesc declaraţiile:

library IEEEuse IEEE.Std_Logic_1164.all;

1.7.3.2. Testarea programelor VHDL

Testarea unei modelări realizate în limbajul VHDL se face, similar cu cea înlimbajul Verilog, cu ajutorul unei entităţi de nivel înalt numită test bench. Există şi alte

 posibilităţi dar această metodă este cea mai folosită.

Page 103: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 103/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 104

VHDL test bench este de asemenea o specificaţie care are propria ei entitate şiarhitectur ă dar este o specificaţie de tip special cu elemente caracteristice unei astfel destructuri.

Principalele elemente ale unei specificaţii test bench sunt:

- entitatea test bench caracterizată prin faptul că nu are porturi;- instanţierea componentei UUT (Unit Under Test) – relaţia

dintre test bench şi UUT este specificată prin instanţiereacomponentei şi specificaţiile de tip structural;

- stimulii ce reprezintă un set de semnale declarate intern înarhitectura test bench şi atribuite porturilor din instanţiereaUUT. Stimulii sunt definiţi prin forma de undă prin una saumai multe procese comportamentale.

În exemplul 33 este prezentată structura generală a test bench.

EXEMPLUL 33

entity TB is -- entitatea testbench 

end entity TB;

architecture TBArch of TB is signal A, B, … :bit; -- declararea stimulilor signal …;begin 

UUT: entity work.MyProcessor(Beh) -- instanţiere UUTport map (…);stimuli: process

beginA <= …;B <= …;…wait for …;…wait for …;…

wait;end process stimuli;end architecture TBArch;

Există două tipuri de semnale permise de specificaţiile VHDL: bit (pentru unsingur semnal, echivalent wire) şi bit_vector (în cazul magistralelor, echivalent bus,situaţie în care trebuie specificată şi dimensiunea vectorului). Ordinea biţilor unui vector este de asemenea importantă  şi ea trebuie precizată la specificarea dimensiuniivectorului. De exemplu, pentru un vector de opt biţi la care bitul şapte este cel maisemnificativ bit (MSB), se scrie: bit_vector (7 downto 0) iar când bitul zero este celmai semnificativ bit: bit_vector (0 to 7).

Page 104: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 104/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 105

Pentru a exemplifica modul de analiză a circuitelor logice combinaţionale cuajutorul limbajului VHDL vom exemplifica modul de simulare a unei por ţi NAND şi aunui multiplexor cu două intr ări în mediul ModelSim SE versiunea 2.7f.

Simularea circuitelor logice a fost explicată în paragraful 1.7.2.2. unde este

 prezentată schema multiplexorului (figura 1.50.) şi modul de folosire a programuluiModelsim. Modul de lucru este identic numai că de data aceasta fişierele se vor scrie înlimbajul VHDL.

Primul exemplu, cel de simulare a por ţii logice NAND va conţine două fişiere:un fişier în care este modelată poarta logică NAND numit  gate.vhd  şi un fişier pentrusimularea acesteia numit  test_gate.vhd .

Conform celor ar ătate în paragraful 1.7.2.2. se creează un proiect nou cu celedouă fişiere. Conţinutul fişierelor este dat în exemplul 34.

EXEMPLUL 34 

-- continutul fisierului gate.vhdentity gate is

 port(a:in bit;

 b:in bit;q:out bit

);end gate;

architecture dataflow of gate issignal q_prim: bit;

 beginq_prim <= a and b after 5 ns;q <= not q_prim;

end dataflow;

-- continutul fisierului test_gate.vhdentity test is end test;

architecture testNand of test iscomponent gate

 port (a: in bit;

 b: in bit;q: out bit);

end component;signal a,b,q: bit;signal c: bit_vector (1 downto 0);

 beginc1: gate port map (a, b, q);a <= c(1);

 b <= c(0);c <= "00",

"01" after 10 ns,"11" after 20 ns,"10" after 30 ns,"00" after 40 ns;

end testNand;

Page 105: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 105/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 106

Aceste fişiere se compilează  şi se elimină eventualele erori după care sedeschide biblioteca work  asa cum s-a ar ătat în paragraful 1.7.2.2. şi se trece lasimularea circuitului. Rezultatele simulării sunt ar ătate în figura 1.67.

1.67. Rezultatele simulării porţii logice NAND.

Se propune ca exerciţiu explicarea formelor de undă obţinute.Cel de-al doilea exemplu se refer ă la multiplexorul cu două intr ări prezentat în

figura 1.50.În acelaşi fel, ca cel ar ătat mai sus, se deschide un proiect nou şi aici se

realizează cele două fişiere:  mux2to1.vhd  cu modelarea multiplexorului şi test_mux2to1.vhd pentru simularea acestuia. În exemplul 35 este prezentat conţinutul

acestor fişiere.

EXEMPLUL 35 

-- continutul fisierului mux2to1.vhdlibrary IEEE;use IEEE.std_logic_1164.all;

entity mux2to1 is  port ( IN0, IN1, SEL : IN std_logic;

MUX_OUT : OUT std_logic);end mux2to1;

architecture Behave of mux2to1 is begin

MUX_OUT <= IN1 when (SEL = '1') else IN0;end Behave;

-- continutul fisierului test_mux2to1.vhdentity TB isend;

library IEEE;use IEEE.std_logic_1164.all;

architecture TBArch of TB is

Page 106: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 106/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 107

 component mux2to1

  port ( IN0, IN1, SEL : IN std_logic;MUX_OUT : OUT std_logic);

end component;

signal IN0, IN1, SEL, MUX_OUT : std_logic;

 beginuut: mux2to1

 port map (IN0, IN1, SEL, MUX_OUT);

stimuli: process begin

SEL <= 'X'; IN0 <= '0'; IN1 <= '1'; wait for 0 ns;SEL <= '0'; wait for 40 ns;IN0 <= '1'; wait for 20 ns;IN1 <= '0'; wait for 20 ns;

SEL <= '1'; wait for 40 ns;IN1 <= '1'; wait for 20 ns;wait;

end process;

end TBArch;

Rezultatul simulării multiplexorului cu două intr ări este prezentat în figura 1.68.

Fig. 1.68. Rezultatul simulării multiplexorului cu două intrări.

Aşa cum rezultă  şi din cele prezentate, utilizarea limbajelor pentru descriereastructurii fizice, degrevează proiectantul de activitatea privind amănuntele realizăriifizice a dispozitivului numeric, atenţia fiind îndreptată în primul rând spre funcţiile şi

 performanţele sistemului.Modul de implementare fizică a structurii proiectate reprezintă tehnologii proprii

ale firmelor producătoare de dispozitive numerice de tip ASIC (Application-SpecificIntegrated Circuit) sau FPGA (Field-Programmable Gate Array) şi sunt supusecontinuu îmbunatăţirilor şi perfecţionărilor.

Page 107: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 107/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 108

 

CAPITOLUL 2

Analiza şi sinteza circuitelor logice secvenţiale

2.1. Introducere

Circuitele logice secvenţiale (CLS) sunt circuite logice la care starea ieşirilor laun moment dat depinde de starea intr ărilor la acel moment de timp şi de stărileanterioare ale circuitului. Din acest motiv se spune că circuitele logice secvenţiale suntcircuite cu memorie.

Schema bloc a unui circuit logic secvenţial este prezentată în figura 2.1.

Circuitul logic secvenţial (CLS) se obţine dintr-un dircuit logic combinaţional

entat în figura 2.1 are n+1 intr ări principale sau

 primare

 

Circuit

logic

combina-

ţional

x0

x1

.

.

.

xn

Δ1

Δ2

Δk 

y0

 

y1

.

.

.

yk 

y'0

y’1

.

.

.

y’k 

z0

z1

.

.

.

zm

I  n t  r  ă   r i  

 pr i  n c i   p al   e 

I  n t  r  ă   r i  

 s  e  c  un d  ar  e 

I   e    ş i  r i  

 pr i  n c i   p al   e 

I   e    ş i  r i  

 s  e  c  un d  a

r  e 

Circuit logic secvenţial

Figura 2.1. Reprezentarea schematică a unui circuit logic secvenţial

(CLC) la care se adaugă o serie de elemente de circuit secundare (memorie), carereprezintă conexiuni de reacţie inversă.

Circuitul logic secvenţial reprez

, notate cu x0, x1, …, xn, accesibile din exterior şi m+1 ieşiri principale sau primare,

Page 108: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 108/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 109

notate cu z0, z1, …, zm, de asemenea accesibile din exterior.Memoria circuitului secvenţial este realizată de către elementele de circuit

secunda

prezentă  şi starea următoare poate fiexprima

  primate în general ca funcţii booleen

)

(2.1)

 entru a descrie complet comportarea unui circuit secvenţial trebuie să se specifice

 pe lâng

cele ce urmează că circuitul are o comportare deterministă, adică 

 pentru

)

(2.2)

 cuaţiile (2.2) poartă denumirea de ecuaţiile stării următoare. Circuitul secvenţial

se află 

iar ecuaţiile stăriiurmătoa

are stările ieşirilor nu depind de stările intr ărilor 

re, ale căror ieşiri y’0, y’1, …, y’k , sunt aduse prin legături inverse la intrareacircuitului, formând intr ările secundare ale circuitului secvenţial, y0, y1, …, yk . Starea

ieşirilor  y’0, y’1, …, y’k , formează   starea (internă  ) următoare a circuitului, iar stareaintr ărilor y0, y1, …, yk , formează   starea (internă  ) prezent ă a circuitului secvenţial. Stareaurmătoare devine stare prezentă după un timp determinat de întârzierile cauzate de cătreelementele de întârziere special introduse în buclele de reacţie sau de întârzierile de

 propagare a semnalelor, inerente circuitelor fizice.Relaţia ce există între intare, ieşire, stareată fie prin tabele de stare, fie prin diagrame de stare.leşirile unui circuit de comutare secvenţial pot fi exe de intr ările şi starea internă a acestuia :

(

( )

( )k nmm

k n

k n

 y y y x x x z z

 y y y x x x z z

 y y y x x x z z

,,,,,,,

,,,,,,,

,,,,,,,

1010

101011

101000

KK

M

KK

KK

=

=

=

 

Pă ecuaţiile ieşirilor (2.1) şi comportarea sa internă, adică să se indice corespondenţa

între starea intr ărilor principale şi secundare, denumită şi starea totală a circuitului, şi stareaurmătoare a circuitului.

Se presupune în

o anumită stare a intr ărilor (un set de semnale x0, x1, …, xn) şi o anumită stareinternă (un set de valori pentru y0, y1, …, yk ) există o singur ă tranziţie posibilă, într-o starey’0, y’1, …, y’k . În acest caz, o variabilă de stare y’k  poate fi exprimată ca o funcţie

 booleană de intr ările circuitului şi starea sa internă :

(

( )

( )k nk k 

k n

k n

 y y y x x x y y

 y y y x x x y y

 y y y x x x y y

,,,,,,,

,,,,,,,

,,,,,,,

1010''

1010'1

'1

1010'0

'0

KK

M

KK

KK

=

=

=

 

Eîntr-o stare stabilă atunci când pentru o anumită stare a intr ărilor, starea sa (internă)

 prezentă este identică cu starea (internă) următoare, adică yi = y'i, pentru i = 0, 1, . . ., k.Dacă pentru o anumită stare a intr ărilor, starea prezentă a circuitului difer ă de starea saurmătoare, adică yi ≠ y'i cel puţin pentru un anumit i ∈ {0, 1, . . ., k), circuitul se află într-ostare instabilă. Pentru ca un circuit secvenţial să se comporte determinist, trebuie ca pentrufiecare stare posibilă a intr ărilor să existe cel puţin o stare internă stabilă.

Circuitele secvenţiale la care ecuaţiile ieşirii sunt de forma (2.1)re sunt de forma (2.2) se numesc circuite secvenţiale de tipul Mealy, iar modelul

lor matematic, automat de tipul Mealy.

Exista circuite secvenţiale la c

Page 109: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 109/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 110

 principa

)

(2.3)

 ircuitele secvenţiale la care ecuaţiile ieşirii sunt de forma (2.3) iar ecuaţiile stării

urmatoa

ţial este finit, circuituleste den

fiecare dintrevariabil

emnalelor este foarte importantă în circuitele secvenţiale. În acestsens, ci

o circuite secvenţiale asincrone;

În circuitele secvenţiale asincrone starea curentă (intr ările secundare provenite  pe cale

venţiale sincrone sunt circuite la care schimbarea stării şi a ieşiriiare loc

le, ci numai de stările intr ărilor secundare, adică de starea internă a circuitului. Înacest caz, ecuaţiile ieşirii (2.1) se transformă în ecuaţiile:

(

( )

( )k mm

 y y y z z

 y y y z z

 y y y z z

,,,

,,,

,,,

10

1011

1000

K

M

K

K

=

=

=

 

Cre de forma (2.2) se numesc circuite secvenţiale de tipul Moore, iar inodelul lor 

matematic, automat de tipul Moore.Atunci când numărul de stări interne ale unui circuit secvenumit circuit secvential finit iar modelul sau matematic, automat finit.În continuare se vor trata numai circuitele secvenţiale binare, la careele de intrare, de ieşire, respectiv de stare pot avea numai două valori, zero şi unu,

cu număr finit de stări.Temporizarea srcuitele logice secvenţiale sunt clasificate în două categorii:

o circuite secvenţiale sincrone.

a de reacţie) poate fi modificată în orice moment ca efect al schimbării

variabilelor aplicate la intrarea primar ă. Elementul de memorie de pe calea de reacţieeste în mod obişnuit un dispozitiv de întârziere; întârzierea este realizată prin propagarea semnalului printr-un şir de por ţi logice. Întârzierea prin por ţile logice nu  poate fi controlată  şi de aceea circuitele secvenţiale asincrone pot deveni instabile.Proiectarea circuitelor secvenţiale asincrone este complicată, de aceea majoritateacircuitelor secvenţiale utilizate sunt de tip sincron. La circuitele logice secvenţialesincrone spre deosebire de cele asincrone, apare o intrare suplimentar ă, intrareasemnalului de ceas.

Circuitele secla momente de timp bine definite. Aceste momente sunt asociate cu frontul

crescător sau cu frontul căzător al unui semnal de temporizare cunoscut ca semnal de

amplitudine

timp

durata

perioada

front

crescătorfront

descrescător

palier unu

(HIGH)

Figura 2.2. Elementele semnalului de ceas.

palier zero

LOW

Page 110: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 110/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 111

ceas (clock, tact). În mod obişnuit semnalul de  ceas (clock) este un semnaldreptunghiular ale cărui elemente sunt redate în figura 2.2.

Când semnalul de ceas face o tranziţie de la zero la unu, avem un  front 

crescător ; când semnalul de ceas face o tranziţie de la unu la zero, avem un  front 

că z ător (sau descrescător).Din diagrama de timp a semnalului se poate observa că  perioada semnalului declock este intervalul de timp dintre două tranziţii succesive în acelaşi sens (între două fronturi crescătoare sau între două fronturi căzătoare).

Tranziţiile în circuitele secvenţiale sincrone au loc doar în momentele cândsemnalul de clock are fie un front crescător, fie un front căzător. La ieşirea unui circuitsincron nu are loc nici o schimbare între două fronturi succesive, indiferent de valoareavariabilelor aplicate la intrare.

Frecven ţ a semnalului de ceas este inversul periadei semnalului de ceas. Lăţ imea  semnalului de ceas este definită ca fiind intervalul de timp în care

semanlul are valoarea unu. Raportul dintre lăţimea semnalului şi perioada acestuia este

numit factor de umplere.Un semnal de clock este activ pe front crescător dacă starea circuitului sincron seschimbă pe frontul crescător al semnalului de clock. Dacă starea circuitului sincron seschimbă pe frontul căzător, semnalul de clock este activ pe front că z ător .

2.2. Tabelul tranziţiilor şi al ieşirilor

Comportarea unui circuit secvenţial poate fi descrisă prin tabelul tranziţiilor  şitabelul ieşirilor, care reprezintă o modalitate de reprezentare a funcţiilor (2.2) respectiv(2.1). În tabelul tranziţiilor există atâtea coloane câte stări diferite ale celor n+1 intr ări xi 

(i = 0, 1, ..., n) există, adică 2

n+1

coloane şi atâtea rânduri câte stări interne distincteexistă, adică 2k+1 rânduri, unde k+1 este numărul variabilelor secundare yi. Un elemental tabloului tranziţiilor, aflat la intersecţia unei coloane cu o anumită linie, reprezintă starea urmatoare a circuitului, corespunzătoare stării interne de pe linia respectivă  şistării intr ărilor de pe coloana respectivă. Pentru automatele de tipal Mealy, tabelulieşirilor are aceleaşi linii şi coloane ca şi tabelul tranziţiilor. Un element al tabeluluiieşirilor, aflat la intersecţia unei anumite coloane cu o anumită linie reprezintă stareaieşirilor corespunzatoare stării intr ărilor de pe coloana respectivă şi stării interne de perândul respectiv. Pentru automatul de tipul Moore tabelul ieşirilor are o singur ă coloană.

În tebelul tranziţiilor şi al ieşirilor, stările, respectiv ieşirile, sunt notate simbolic,de obicei prin numere zecimale sau prin numere binare. În cel de-al doilea caz, codul

  binar al stării urmatoare, respectiv al ieşirii reprezintă valorile sistemului de funcţii(2.1), respectiv (2.2) sau (2.3) pentru starea prezentă de pe rândul respectiv şi pentrustarea intr ărilor de pe coloana respeetivă. Aceste tabele pot fi completate dacă secunoaşte structura circuitului, determinând, în modul ar ătat la circuitele combinaţionale,valoarea fiecăreia dintre: funcţiile z0, z1, …, zm, y'0, y'1, …, y'k  pentru toate valorile

 posibile ale variabilelor de intrare principale şi secundare.Pentru exemplificare se consider ă circuitul secvenţial a cărui reţea de comutare

este dată în figura 2.3.a.Pentru a ţine cont de întârzierile introduse de firele de legătur ă  şi de

întârzierea proprie a circuitului logic, se consider ă toate aceste întârzieri concentrate înelementele de întârziere notate în figura 2.3.b. cu Δ0 şi Δ1. Această ipoteză 

simplificatoare permite analizarea corectă a comportării circuitului, deoarece nu

Page 111: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 111/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 112

 X0 

Z1 

U1A

7402 

2 3  1 

Z0 

X1 

U2A

7402 

2 3  1 

Fig 2.3.a.

U2A

7402

2

3

1

X1

U1A

7402

2

3

1Z0

Z1

X0

Δ0

Δ1

Y1

Y0 Y’2

Y’1

 Fig 2.3.b.

Fig. 2.3. Analiza unui circuit secvenţial asincron

influenţează asupra modului de funcţionare. Variabilele x0  şi x1 din figura 2.3.b.reprezintă intr ările principale ale circuitului, fiecare din ele putând avea două valori: 0 şi1 care corespund unor semnale de tensiune, corespondenţa stabilindu-se în funcţie delogica adoptată (negativă sau pozitivă). Variabilele y

0 şi y

1reprezintă intr ările secundare

ale circuitului sau starea lui internă prezentă, iar variabilele y'0  şi y'1 starea internă următoare. Atât y0 şi y1 cât şi y'0 şi y'1 pot avea valoarea logică 0 sau 1. Între y0 şi y'0 respectiv y1 şi y'1 există relaţiile (2.4).

TABELUL 2.1. a.

x0x1

y0y1

00 01 11 10

b.

y0y1   ( ) ( )

( ) ( )1

0

1'1

0'0

Δ+=

Δ+=

t  yt  y

t  yt  y  (2.4)00 00

01 01

Din relaţiile (2.4) rezultă că după un interval de timp egal cu Δ0valoarea variabilei secundare y0 devine egală cu valoarea variabileisecundare y'0, respectiv după uninterval de timp Δ1 valoarea

variabilei secundare y1 devine egală cu valoarea variabilei secundare y'1, în momentulconsiderat. Luând pentru simplificare Δ0=Δ1 = Δ, rezultă că după un interval de timpegal cu Δ starea următoare devine starea prezentă.

00 11 10 00 01 11 1101 01 00 00 01 10 10

11 00 00 00 00 z0z110 10 10 00 00

y'0y'1

Circuitele secvenţiale la care starea următoare devine stare prezentă după untimp determinat de întârzierile inerente circuitului se numesc circuite secvenţialeasincrone sau circuite funcţionând în modul fundamental. Pentru ca un astfel de circuit

să funcţioneze determinist, se impune ca pe fiecare coloană din tabelul tranziţiilor, adică  pentru fiecare stare a intr ărilor, să existe cel puţin o stare stabila.Circuitele secvenţiale la care starea urmatoare devine starea prezentă numai

la anumite momente de timp bine determinate, marcate prin impulsuri de tact date de cătreun generator de impulsuri numit ,,orologiu", se numesc circuite secvenţiale sincrone.Elementele de memorie ale circuitelor secvenţiale sincrone sunt circuite basculante

  bistabile. La circuitele secvenţiale sincrone legăturile inverse, adică intr ările la circuitele basculante bistabile, sunt întreruptc în lipsa impulsurilor de tact fiind stabilite numai în prezenţa tactului (fig. 2.4). Durata impulsului de tact se ia suficient de scurtă, astfel încâtlegăturile inverse să fie întrerupte înainte ca ieşirile secundare ale circuitului sa-şi modificestarea în conformitate cu starea intr ărilor  şi starea în care a trecut circuitul în timpul

impulsului de tact considerat. În acest fel toate stările circuitului secvenţial sincron sunt

Page 112: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 112/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 113

stabile.

CB1

S

Q

 

CIRCUIT LOGICCOMBINAŢIONAL

 …

 

x0

x1

 

xn

 …

 

z0

z1

 zm

 

CBk 

S

Q

 

CB0

S

Q

y'0

y'1

 

y'k 

 … 

y0

y1

 

yk 

 … …

 … 

SINCRONIZARE

Fig. 2.4. Modelul unui circuit logic secvenţial sincron.

Circuitul din fig. 2.3b are ieşirile z0, z1 identice cu intr ările secundare y0,respectiv y1. Ieşirea depinde numai de starea internă, deci circuitul secvenţial este de

tipul Moore. Deoarece există două variabile de stare, două intr ări şi două ieşiri, circuitulare patru stări interne, patru stări diferite ale intr ărilor şi patru stări diferite ale ieşirilor şianume: 00, 01, 11 şi 10. Pentru a putea completa tabelul tranziţiilor se caută expresiilefuncţiilor y'0 şi y'1 realizate de circuit. În acest scop se foloseşte tabelul 2.2 întocmit înmodul ar ătat în paragraful 1.2 (tabelul 1.2).

TABELUL 2.2.

Cunoscând funcţiile y'0(x0 x1, y0, y1) şi y'1(x0 x1, y0, y1) se completează tabelul tranziţiilor şi al ieşirilor (tabelul 2.1.a şi b.). Analizândtabelul 2.1.a observăm că, spre exemplu,

  pentru x0=0, x1=0 şi y0=0, y1=0 (intersecţia  primei linii cu prima coloană) se obţinevaloarea y'0=1, y'1=1. Această valoare devine

valoarea lui y0y1 după o întărziere Δ (starea următoare devine stare prezentă) şi atuncine ducem în tabel la situaţia x0=0, x1=0 şi y0=1, y1=1. Pentru aceasta y'0=0, y'1=0 şi neîntoarcem la prima stare. Rezultă deci, că circuitul oscilează între aceste două stări, faptsemnalat în tabel cu săgetile cu linie punctată. Dacă vom considera acum că la intr ărilecircuitului avem situaţia x0=0, x1=0 şi y0=0, y1=1, observam din tabel că stareaurmătoare este y'0=0, y'1=1 ceea ce conduce la concluzia că circuitul r ămâne în această stare şi deci avem o stare stabilă. Săgeţile cu linie plină indică evoluţia circuitului cătrestările stabile. În tabelul tranziţiilor (tabelul 2.1.a) s-au încercuit stările stabile. După 

cum se vede, circuitu1 are trei stări stabile. În practică se găsesc însă numai două dintre

x0 x1 y0 y1 y'0 y'1 Observaţii

1 10'0 y x y +=

0 x x 0

1 01

'

1 y x y +=x 0 0 x

Page 113: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 113/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 114

acestea : starea 10, numită starea 1 şi starea 01, denumită starea 0. Aceasta se datoreştefaptului că la un circuit real nu poate fi controlată tranziţia din starea 00, decât în cazulcând se modifică numai una dintre variabilele de intrare. De exemplu, dacă circuitul seaflă în starea stabila 00, ceea ce corespunde la x0=l şi x1=l şi se modifică starea intr ării

x0 din 1 în 0, se trece din starea stabilă 00 în starea instabilă 10 din care se trece apoi înstarea stabila 10 (tabelul tranziţiilor, coloana a doua). Dacă însă circuitul se află înstarea stabila 00 şi se modifică intrarea x1 din 1 în 0, se trece prin starea instabilă. 01 înstarea stabila 01 (tabelul tranziţiilor, coloana a patra). Atunci când circuitul se află înstarea stabilă 00 şi se modifică ambele intr ări, adică starea intr ărilor devine x0=0 şix1=0, circuitul ar trebui sa intre teoretic în oscilaţie, adică să facă tot timpul tranziţia dinstarea instabilă 11 în starea instabilă 00 (prima coloană din tabelul tranziţiilor). Această situaţe nu poate să apar ă în practică deoarece, chiar dacă s-ar putea modifica simultanambele intr ări, nu se pot modifica simultan, din cauza întârzierilor diferite pe cele două căi de legatur ă inversă, stările interne ale circuitului astlel încât aceasta se stabileştedupă cum se modifică mai repede y0 sau y1, fie în starea 10 fie în starea 01. Pentru ca

circuitul să poată funcţiona determinist se impune deci condiţia ca intr ările sa nu fieniciodată simultan în starea 1. Aceasta condiţie se poate formula prin expresia logică :

010 =⋅ x x   (2.5)

 impunând circuitului studiat anterior coudiţia (2.5), acesta devine un circuit cu două 

stări stabile, denumit circuit basculant bistabil RS ( Q zQ z R xS  x ==== 1010 ,,, , figura

2.5).

QS

RQ

a.

SR 

Q 00 01 11 101 1 0 - 10 0 0 - 1

Q⎢  

b.

Fig.2.5. Circuit basculant bistabil RS construit cu porţi SAU-NU.

Timpul cât intrarea S respectiv intrarea R trebuie să stea în starea unu pentru cacircuitul să fie adus, indiferent în ce stare s-ar afla, în starea unu, respectiv zero, estelimitat numai inferior  şi anume acest timp trebuie să fie cel puţin egal cu sumaîntârzierilor Δ0 şi Δ1. Deoarece există numai două stări stabile se foloseşte o singur ă variabilă de stare, notata în figura 2.5 cu Q, care joacă  şi rolul de variabilă de ieşire

(pentru convenţia facută privind işirile, Q zQ z == 10 , ). Tabelul tranziţiilor pentru

circuitul basculant bistabil RS este redat în figura 2.5b. Conform celor discutate, acesttabel se construieşte astfel: prma coloană, din stânga tabelului, va conţine cele două stăristabile ale circuitului pentru situaţia în care S=0 şi R=0; coloana a doua este coloanacomenzii RESET (S=0, R=1) în care circuitul trece din starea instabilă zero (când Q=1)în starea stabilă zero; coloana a treia nu este definită pentru că se exlude situaţia în care

S=1, R=1 iar coloana a patra este coloana comenzii de SET când circuitul trece din

Page 114: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 114/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 115

starea instabilă unu (când Q=0) în starea stabila unu. Trebuie menţionat că în timpultranziţiilor cele două ieşiri, respectiv intr ări secundare nu sunt întotdeaunacomplementare după cum se poate vedea din tabelul tranziţiilor 2.1 a. Din tabelultranziţiilor rezultat în urma consideraţiilor f ăcute mai sus (fig. 2.5b), se obţine ecuaţia

stării următoare, Q' ca funcţie de variabilele de intrare Q, R şi S sub forma :

 RQ RS Q +=|   (2.6)

 determinată prin gruparea termenilor din tabelul prezentat în figura 2.5. Dacă ţinem contşi de faptul că S şi R nu pot fi simultan unu, adică:

0=SR (2.7) rezultă ecuaţia bistabilului RS:

( ) RQS  RQ R RS SR RQ RS Q +=++=++=|   (2.8)

 TABELUL 2.3.

În modasemănător se poaterealiza un circuit

  basculant bistabil detipul RS cu elementelogice SI-NU, (fig.2.6.) căruia îi

corespunde tabelultranziţiilor 2.3.

Trebuie notat faptul că nu s-au mai reprezentat întârzierile dar se ţine cont de ele. Acesttabel se obţine procedând la fel ca şi în cazul circuitelor basculante bistabile de tipul RS cuelemente logice SAU-NU. Se obţine tabelul 2.4. care reprezintă tabelul tranziţiilor circuitului basculant bistabil RS realizat cu circuite ŞI-NU. Se vede imediat că ecuaţia caredescrie acest circuit este ecuaţia (2.8).

x0x1

y0y100 01 11 10

00 11 11 11 1101 11 11 01 0111 11 10 00 0110 11 10 10 11

y'0y'1  

TABELUL 2.4.

 RS   Q

00 01 11 10

1 - 1 1 00 - 1 0 0

Q|  

Circuitele basculante bistabile RS sunt circuite secvenţialeelementare care pot juca rolul deelement de memorie în cadrul unor circuite secvenţiale mai complexe.Ca exemplu, se va analiza circuitul secvenţial din figura 2.7.

U2A 

74LS00 

1 2 

U1A 

74LS00 

1 2 

Fig. 2.6. Bistabil RS cu

porţi NAND

(x0)

(x1)(y0)

(y1)

(y|0)

(y|1)

 U2A

7400

1

2

3

Y'

U1

R

S

Q

Q

U3A

7400

1

2

3

Z0 

X0

X1

Z1 

Fig. 2.7. Circuit secvenţial cu bistabil RS.

Page 115: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 115/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 116

Starea intenă a acestui circuit este determinată de starea bistabilului RS din buclade reacţie şi se modifică în conformitate cu ecuaţia de stare a acestuia, deci stareaurmătoare a circuitului va fi dată de relaţia :

Y  RS Y  +=|   (2.9) 

Scriind expresiile funcţiilor S şi R realizate de partea combinaţională a circuitului(partea încadrată cu linie întreruptă din figura 2.7), rezultă:

Y  xS Y  xS Y  xY  x R 1100 ,, ==+==   (2.10)

 înlocuind în ecuaţia (2.9) se obţine:

( )Y  xY  xY Y  xY  xY 

1001

| +=++=   (2.11)

 TABELUL 2.5.

Acestei ecuaţii îi corespunde tabelul tranziţiilor 2.5. Dinacest tabel rezultă că circuitul analizat se comportă, atâtatimp cât se aplică semnal de comandă numai la una dinintr ări, ca un circuit basculant bistabil RS, iar atunci cândse comandă ambele intr ări circuitul „basculeaza” (işischimbă starea). În cazul circuitului analizat aplicarea unui

semnal de comandă la una din intrariînseamnă aducerea intr ării respective

în starea 1. Circuitul cu o asemeneacomportare poartă denumirea decircuit basculant bistabil JK, la carese noteaza cu J intrarea de aducere instarea 1 (J=x1,) iar cu K intrarea deaducere în starea 0 (K=x0). După cumse vede din tabelul tranziţiilor 2.5, pecoloana corespunzătoare stăriiintr ărilor 11 nu există stare stabilă,deci acest circuit nu poate funcţionaasincron. Ecuaţia de stare acircuitului basculant bistabil JK asincron se poate obţine din ecuaţia(2.11) realizând modificărilemenţionate mai sus. Se obţine ecuaţia(2.12):

x0x1

Y00 01 11 10

0 0 1 1 01 1 1 0 0

Y|  

U3A

74LS32

1

 2  3x 

U1A 

74LS32 

1

 2  3  2  3

U2A 

74LS08 

1

23

 1 z

a.

2

z

U3A 

74LS32 U4 

DELAY

 

U1A 

74LS32 

x

U2A 

74LS08 

U5 

DELAY 

1

 b.

Figura 2.8. Circuit secvenţial asincron.

Δ1

Δ0

y1

y0

y|1

y|0

Q J Q K Q +=|   (2.12) 

În practică se folosesc însă frecvent circuite basculante bistabile JK sincronizate.Un circuit basculant de tip T se poate obţine dintr-un circuit basculant bistabil de

tip JK prin conectarea intr ării J la intrarea K printr-un inversor. În acest fel, pe intr ările

Page 116: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 116/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 117

J şi K ale bistabilului nu se pot aplica decât combinaţiile: 01 şi 10. Rezultă că ecuaţia destare a bistabilului de tip T este:

QT QT Q +=|   (2.13)

 În exemplele considerate anterior, ieşirile circuitelor secvenţiale depindeau

numai de variabilele de stare ale circuitului (automate de tip Moore). De multe ori însă,ieşirile circuitului secvenţial sunt funcţii, nu numai de starea circuitului, ci şi de intr ărilesale (automate de tip Mealy). Ca exemplu, se consider ă circuitul secvenţial din figura2.8.a. Pentru a analiza comportarea circuitului, se consider ă întârzierile pe liniile delegătur ă  şi întârzierile elementelor logice concentrate la ieşirile elementelor logice cunumerele 1 şi 3 de la care, prin legături inverse se obţin intr ările secundare alecircuitului (fig. 2.8.b). Pentru simplificare se ia Δ0=Δ1=Δ. În aceste condiţii, ecuaţiilestării următoare sunt date de relaţiile :

10|1

1|0

 y xy y

 y x y

+=

+=  (2.14)

 Unde y|

i(t) = yi(t+Δ), pentru i=0 şi 1, iar ecuaţia ieşirii, z , este dată de relaţia :

21 y xy z +=   (2.15)

 

TABELUL 2.6.

x

y1y2 0 100 00 1001 11 1111 11 1110 00 11

y|0y

|1  

x

y1y2 0 100 0 001 1 111 1 110 0 1

z

TABELUL 2.7.

x

y1y2 0 100 00/0 10/001 11/1 11/111 11/1 11/110 00/0 11/1

y|0y

|1/z

Comportarea circuitului este redată în tabelul tranziţiilor  şi al ieşirilor 2.6.Adeseori, pentru circuitele secvenţiale de acest tip, tabelul tranziţiilor şi al ieşirilor seunifică într-un singur tabel, sub forma tabelului 2.7.

Pentru simplificarea scrierii, stările, intr ările şi ieşirile din tabelul tranziţiilor suntnotate adeseori prin litere sau cifre zecimale. Folosind astfel de notaţii se obţine tabelultranziţiilor şi al ieşirilor.

De exemplu, dacă în tabelul tranziţiilor 2.7 se folosesc notaţiile:

starea 00 ↔ q0, intrarea 0 ↔ i0,starea 01 ↔ q1, intrarea 1 ↔ i1,starea 11 ↔ q2, ieşirea 0 ↔ w0,starea 10 ↔ q3, ieşirea 1 ↔ w1,

(2.16)

 

Page 117: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 117/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 118

se obţine tabelul 2.8 sau folosind numai indicii stărilor, ieşirilor şi intr ărilor din relaţiile(2.16), se obţine tabelul stărilor 2.9.

TABELUL 2.8

Intrare

stare

prezentă i0 i1

q0 q0/w0 q3/w0

q1 q2/w1 q2/w1

q2 q2/w1 q2/w1

q3 q0/w0 q2/w1

  starea următoare/ieşire

TABELUL 2.9

Intrare

stare

prezentă 0  1 

0  0/0  3/01  2/1 2/12  2/1 2/13  0/0 2/1

starea următoare/ieşire

2.3. Graful tranziţiilor

Comportarea unui circuit secvenţial poate fi redată pe lângă tabelul tranziţiilor,respectiv tabelul stărilor şi prin graful tranziţiilor, respectiv diagrama stărilor. În grafultranziţiilor (diagrama stărilor) fiecare stare a circuituhii se reprezintă printr-un nod, iar fiecare tranziţie printr-un arc.

Circuitele secvenţiale de tipul Moore au înscrise în noduri stările, simbolic saucodificate binar, şi ieşirile corespondente separate prin slash (simbolul de împăr ţire „/”),iar pe arce au notate intr ările care provoacă tranziţia respectivă (fig. 2.9).

Circuitele secvenţiale de tipul Mealy au înscrise pe arce intr ările care cauzează tranziţia, şi ieşirile obţinute în timpul tranziţiei respective, iar în noduri sunt înscrise stărilecircuitului (fig. 2.10).

În graful de tranziţie, starea iniţială poate fi reprezentată printr-un cerc realizatcu o linie dublă.

.4. Alte modele ale circuitelor secvenţiale

În paragrafele anterioare s-au prezentat câteva modele ale circuitelor secvenţialefie pen

00∨10

0/1∨1/1

1/0 1/10/0

 2 

tru descrierea lor structurală, reţeaua de comutare sau schema logică, fie pentrudescrierea comportării lor, tabelul tranziţiilor, tabelul stărilor, graful tranziţiilor  şi

diagrama stărilor. De asemenea se dă o definiţie formală a celor două tipuri de circuite

0/0 1/1

11

11

00∨01

Fig. 2.9. Graful tranziţiilor

pentru circuitul secvenţial din

figura 2.7.

00 1011

0/0

Fig. 2.10. Graful tranziţiilor

pentru circuitul secvenţial din

figura 2.8.

0/1

01

1/1

Page 118: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 118/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 119

secvenţiale prezentate şi se prezintă alte două modele pentru descrierea comportăriiacestora.

Modelul matematic al unui circuit secvenţial de tipul Mealy, denumit automat finitMealy,

atoarele :

1. o mulţime finită Q de stari interne;

aţia tranziţiilor lui A) a unei submulţimi Dτ 

5. lui A) a unei submulţimi Dτ a

Automatul finit A este dat prin urmare prin 5-uplul ordonat A =(Q, I, W, τ, ω).De exe

se defineşte în modul descris în continuare.

Un automat finit Mealy, A, constă din urm 

2. o mulţime finită I de intr ări;3. o mulţime finită W de ieşiri;4. o aplicaţie T (denumită aplic

a mulţimii QxI pe o submulţime a lui Q;o aplicaţie ω (denumită aplicaţia ieşiriimulţimii QxI pe mulţimea W.

mplu, se consider ă automatul finit A1 dat prin :

{ }

{ }

{ }

( )( )( )( )

( )( )( )( )⎪

⎪⎪

=

=

=

=

⎪⎪

⎪⎪

=

=

=

=

=

=

=

.,

,,

,,

,,

,,

,,

,,

,,

.,

,,

,,,

102

001

010

100

112

002

201

100

10

10

210

wiq

wiq

wiq

wiq

qiq

qiq

qiq

qiq

wwW 

ii I 

qqqQ

ω 

ω 

ω 

ω 

τ  

τ  

τ  

τ  

  (2.17)

 Acest automat poate fi reprezentat prin diagrama stărilor din figura 2.11.

r dacă 

Dτ=Q

ore, A*, poate fi definit prin:

1. o mulţime finita Q* de stări interne ;

i a mulţimi Q* x I* pe o submulţime a

5. ω* a unei submulţimi a mulţimii Q* în multimea W*.

Definiţia automatului Moore difer ă de definiţia automatului Mealy numai prin punctu

⎨=

=

02*

10*

wq

wq

ω 

ω 

  (2.18)

Un automat A este incomplet definit din punct de vedere al tranziţiilo

x I, şi complet definit dacă Dτ = Dω = Q x I. Atunci când un automat nu estecomplet definit, el se numeşte automat incomplet sau automat incomplet definit.Automatul A1 reprezentat prin diagrama stărilor din figura 2.11 este un exemplu deautomat incomplet definit.

Un automat finit Mo 

2. o mulţime finita I* de intr ări;3. o mulţime finită W* de ieşiri;4. o aplicaţie τ* a unei submulţim *

τ   D

lui Q* ;o aplicaţie *ω 

 D

l 5. Prin urmare, dacă în exemplul precedent se înlocuieşte aplicaţia ω din relaţia(2.17) cu ω*, dată de relaţia (2.18), se obţine un automat A1, reprezentat prin diagramastărilor din figura 2.12.

( )

( )⎪⎩

⎪⎧

Page 119: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 119/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 120

 

i1/w0

Fig. 2.11 Diagrama stărilor

pentru un automat Mealy.

q0 q1

i0/w1

i0/w0

i1/-q2

i0/w1

Fig. 2.12. Diagrama stărilor

pentru un automat Moore.

q0/w1 q1/-

i0

i0

i1q2/w0

i0

 În afar ă de tabelul stărilor  şi diagrama stărilor, un automat finit A poate fi

reprezentat şi printr-o matrice a conexiunilor CA=(Cij), având un număr de linii şi decoloane egal cu numărul de stări interne. Elementul cij în această matrice este reuniunea

 perechilor intrare/ieşire, aflate în diagrama stărilor pe arcele care conduc de la starea qi

la starea q j pentru automatul Mealy, respectiv reuniunea intr ărilor care conduc de la qi la q j pentru automatul Moore.

i0/w0∨i1/w1q0 q1

i1/w1

i0/w0

i0/-q2

i0/w0⎥⎥⎥

⎢⎢⎢

=

0//

/0/

0//0

0100

011

1100

2

1

0

210

2

wiwi

iwi

wiwi

q

q

q

qqq

 A

 Pentru automatul Moore se mai dă în plus un vector coloană al ieşirilor W0, cu

număr de elemente egal cu numărul de stări, fiecare element wi reprezentând ieşireacorespunzătoare stării qi. În figura 2.13. se reprezintă un automat Mealy A2, dat prindiagrama stărilor şi matricea conexiunilor corespondentă, iar în figura 2.14 un automatMoore A2, dat prin diagrama stărilor, respectiv matricea conexiunilor  şi vectorulieşirilor corespondent.

i0

Fig. 2.14. Diagrama stărilor şi matricea de conexiuni pentru

un automat Moore.

q0/w0 q1/-

i0

i1

i0∨i1q2/w1

i1⎥⎥⎥

⎢⎢⎢

−=

⎥⎥⎥

⎢⎢⎢

=

1

0

10

10

10

2

1

0

*

210

00

0

0

2

w

w

ii

ii

ii

q

q

q

qqq

 A

Fig. 2.13. Diagrama stărilor şi matricea de conexiuni pentru

un automat Mealy.

Page 120: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 120/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 121

2.5. Analiza circuitelor logice secvenţiale 

Analiza circuitelor secvenţiale se defineşte astfel: cunoscând structura circuituluisecvenţial se cere evoluţia semnalelor de ieşire pentru anumite evoluţii (secvenţe) ale

semnalelor de intrare.O condiţie necesar ă pentru rezolvarea problemei de analiză a circuitelor secvenţiale

o constituie cunoaşterea stării iniţiale a circuitului analizat.Atât pentru circuitele sincrone cât şi pentru cele asincrone, analiza presupune

 parcurgerea următoarelor etape:1. pornind de la structura circuitului se determină păr ţile combinaţionale

şi cele de memorie şi se defmesc semnalele de intrare, de iesire şisemnalele secundare (de stare);

2. se stabilesc expresiile funcţiilor booleene ale ieşirilor din parteacombinaţională. Funcţiile stabilite se pun în forma canonică;

3. corespunzator combinaţiilor variabilelor de stare se realizează codificarea stărilor şi se definesc stările circuitului;

4. se construieşte tabelul stărilor şi/sau graful de tranziţie a circuitului;5. pentru evoluţia semnalelor de intrare şi starea iniţială impusă,

folosindu-se graful sau tabelul de tranziţie, se stabileşte evoluţiasemnalelor la ieşire.

Etapa neobligatorie dar de multe ori utilă din punct devedere practic presupuneobţinerea unui circuitechivalent cu primul dar mai

economic decât primul.Vom explica modul deanaliză a circuitelor logicesecvenţiale printr-un exemplu.

Consider ăm circuitul dinfigura 2.15 compus din două 

 păr ţi, o parte combinaţională notată pe figur ă cu CLC   şi o

  parte secvenţială, de memorie,realizată cu două circuite

 basculante de tip D.

Circuitul are o singur ă intrare notată cu  x   şi o singur ă ieşire notată cu z .

Z

 Memorie

U9A

74LS04

1 2

D1

X

U6A

74LS00

1

2

3

Q1

U11

DQ

U5A

74LS00

1

2

3

U10A

74LS04

1 2 U8A

74LS32

1

2

3

U3A

74LS08

1

2

3

U4A

74LS08

1

2

3

CLC

U2A

74LS08

1

2

3

U7A

74LS32

1

2

3

U12

DQ

Q0 D0

 

Fig. 2.15. Circuit logic secvenţial.

Ecuaţia de stare a circuitului basculant D asincron este foarte simplă, circuitulrepetă la ieşirea Q ceea ce se aplică pe intrarea D:

 DQ =|   (2.19) 

Expresiile funcţiilor de ieşire a păr ţii combinaţionale a circuitului din figura 2.15,sunt:

Page 121: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 121/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 122

 

(2.20)

011001101

100

0

QQ xQ xQQQ xQ xQ D

Q x xQ D

 xQ z

++=+=

+=

=

 se dezvoltă formele canonice ale acestor funcţii:

(2.21)

10101010

10101001101

101010100

1010

QQ xQQ xQQ xQQ x

QQ xQQ xQ xQQQ xQ xQ D

QQ xQQ xQ xQQ xQ D

Q xQQ xQ z

++++

+++=+=

+++=

+=

 

Înlocuind relaţiile (2.21) în (2.19) se poate construi acum tabelul tranziţiilor  şi al ieşirii(tabelul 2.10).

TABELUL 2.10. Q0Q1

x00 01 11 10

Q0Q1

x00 01 11 10

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

Q|0Q

|1 z

Circuitul studiat are două variabile de stare. Ca urmare cele 4 combinaţii posibileale valorilor acestora definesc stările circuitului. Putem scrie următoarea codificare:

y0 y1 sk 

0 0 -> s0

0 1 -> s1

1 0 -> s2

1 1 -> sk 

(2.22)

 TABELUL 2.11.  

Având în vedere codificarea realizată se  poate construi acum tabelul stărilor (tabelul 2.11). Tabelul corespunde unuiautomat de tip Mealy. Pe baza acestuitabel se poate stabili imediat graful detranziţie al circuitului care este dat înfigura 2.16. Starea iniţială estereprezentată printr-un cerc cu linie

dublă.

s0 s1

 

xsk  0 1

s0 s1/0 s1/0s1 s3/0 s1/0

0/0 ∨ 1/0

1/0

0/01/10/0

s2 s0/0 s3/1s3 s3/0 s2/1

starea

următoare/ieşire

s3s2

0/01/1

Fig. 2.16. Graful de

tranziţie

Page 122: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 122/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 123

2.6. Sinteza circuitelor logice secvenţiale

Problema de sinteză a circuitelor logice combinaţionale se defineşte în modulurmător: cunoscând modul de funcţionare a circuitului secvenţial exprimat prin evoluţia

semnalelor de intrare respectiv a celor de ieşire (secvenţele de intrare respectiv cele deieşire), se cere să se stabilească structura circuitului.

Ţinând cont de această formulare rezultă că rezolvarea problemei de sinteză  presupune parcurgerea etapelor:

1. se construieşte tabelul tranziţiilor  şi ieşirilor din specificaţia dată subformă de descriere;

2. se minimizează numărul stărilor;3. se realizează codificarea stărilor;4. se substituie combinaţia variabilelor de stare în tabelul stărilor şi ieşirilor 

 pentru a crea tabelul tranziţiilor şi stărilor;5. se alege tipul de celule de memorie folosite (tip R-S, J-K, D, T);6. se construieşte tabelul de excitaţie care indică valorile excitaţiilor 

necesare pentru a obţine starea urmatoare dorită pentru fiecarecombinaţie stare actuală-intrare;

7. se obţin expresiile funcţiilor de excitaţie;8. se obţin expresiile funcţiilor de ieşire;9. se trasează schema logică a circuitului care materializează funcţiile de

excitaţie şi cele de ieşire la care se adaugă  şi celulele de memoriecorespunzătoare.

Dintre etapele prezentate mai sus, prima este cea mai dificilă şi afectată de erori.Parcurgerea ei cu succes depinde foarte mult de experienţa şi abilităţile proiectantului.Fiecare din celelalte etape pot fi parcurse în mod sistematic manual sau folosind

 programe pe calculator special realizate.În ceea ce priveşte prima etapă, se recomandă construirea unui label de tranziţii

 primar unde să fie o singur ă stare stabilă pe fiecare linie a tabelului. Fiind doar o singur ă stare stabilă pe fiecare linie a tabelului, ieşirea poate fi considerată ca depinzând numai destarea curentă. În acest fel este posibil să se introducă stări suplimentare care însă pot fieliminate mai târziu în etapa de minimizare a stărilor.

În continuare vom exemplifica acest procedeu de sinteză a circuitelor logicecombinaţionale.

2.7. Circuite basculante bistabile folosite ca elemente de memorie

pentru circuitele secvenţiale

2.7.1. Introducere

Circuitele basculante bistabile sunt circuite secvenţial elementare cu numai două stări stabile, folosite ca elemente de memorie pentru circuitele secvenţiale mai complexe,în scopul memor ării stării interne a acestora. Circuitele basculante bistabile pot ficonstruite pentru a funcţiona fie numai în regim asincron, fie numai în regim sincron, fieatât în regim asincron cât şi în regim sincron, funcţie de tipul circuitelor secvenţiale în caresunt folosite. De obicei, pentru circuitele secvenţiale sincrone se folosesc ca elemente de

Page 123: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 123/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 124

memorie circuite basculante care pot funcţiona atât în regim sincron cât şi asincron,intr ările asincrone fiind utilizate pentru aducerea circuitului în starea iniţială, independentde impulsul de tact.

2.7.2. Tabelele caracteristice, tabelele excitaţiilor şi ecuaţiile intrărilor

Comportarea circuitului basculant bistabil poate fi descrisă prin tabelul caracteristical bistabilului, în care se dă starea următoare a ieşirii în funcţie de comabinaţiile de valori

  prezente ale intr ărilor  şi ale stării prezente sau prin ecuaţia de stare a bistabilului, careexprimă starea următoare a acestuia în funcţie de intr ări şi starea prezentă. În continuare se prezintă tabelele caracteristice, tabelele excitaţiilor şi ecuaţiile de stare pentru câteva tipuride circuite basculante bistabile, folosite mai frecvent.

TABELUL 2.12.

R

U1A

74LS00

1

2

3

U4A

74LS00

1

2

3

H

U2A

74LS00

1

2

3

Q

U3A

74LS00

1

2

3

/RH/Q

/SH

S

Fig. 2.17. Bistabil RS sincron.

Circuitul basculant

  bistabil de tipul RS. Circuilul  basculant bistabil de tipul RS,realizat cu module SI-NU,respectiv SAU-NU, analizat în

 paragraful 2.2 reprezintă cel mai

S R Q(t+1)0 0 Q(t)0 1 01 0 11 1 ?

simplu circuit basculant bistabil.Tabelul caracteristie al acestuia (tabelul 2.12) se foloseşte îndeosebi pentru a

caracteriza funcţionarea circuitului bistabil RS sincron, înţelegând prin Q (t) starea sa latactul t, iar prin Q (t+1) starea sa la tactul t+1, dar ramâne valabil şi pentru circuital bistabilRS asincron, daca Q(t) se interpretează ca starea circuitului la timpul t, iar Q (t+1) starea sala timpul t+Δt, unde Δt este timpul de r ăspuns al circuitului la semnale de intrare. Pentru aobţine un circuit bistabil RS sincron, având un circuit asincron, proiectat, de exemplu, cucircuite logice SI-NU, se pune condiţia ca intr ările sale sincrone, R H şi SH (fig. 2.17) să fieactive numai în prezenţa unui impuls de tact H, adică:

 H  R R

 H S S 

 H 

 H 

⋅=

⋅=  (2.23)

 Ţinând cont de relaţiile (2.23) rezultă schema circuitului basculant bistabil din

figura 2.17.Ecuaţia caracteristică a acestui bistabil, dedusă în paragraful 2.2, denumită  şi

ecuaţie de stare, este următoarea:

Q RS Q +=|   (2.24)

 unde prin Q| s-a notat starea la momentul t+1, iar prin Q starea la momentul t .

În cadrul unui circuit secvenţial, circuitul basculant bistabil are rolul de a memorastarea unei anumite variabile de stare. Din acest motiv, starea sa trebuie să se modificefuncţie de variabilele de intrare ale circuitului, în conformitate cu expresia care descriestarea următoare a variabilei de stare considerate, denumită în acest caz ecuaţia de aplicarea bistabilului. În general, starea următoare a unei variabile de stare Qk  notată Q|

k  este o

funcţie de variabilele de intrare Xi, pentru i = l, ... , n şi de celalalte variabile de stare Q j,

Page 124: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 124/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 125

 pentru j = 1, ..., k, ..., p unde n şi p sunt numărul de variabile de intrare, respectiv de stare pentru circnitul considerat (relaţia 2.25).

( ) pnk  QQQ x x x f Q ,...,,,,...,, 2121| =   (2.25)

 Dacă pentru memorarea stării acestei variabile se foloseşte un bistabil, notat tot cu

Qk , expresia (2.25) devine ecuaţia de aplicare pentru acest bistabil. Pentru ca bistabilul să memoreze starea următoare a variabilei de stare, trebuie ca la intr ărite sale să se apliceastfel de comenzi încât starea sa următoare să corespundă ecuaţiei de aplicare. Pe bazaacestei condiţii se stabilesc expresiile booleene care descriu comenzile ce trebuie aplicatela intr ările bistabilului, denumite ecuaţiile intr ărilor bistabilului. Problema determinăriiecuaţiilor de intrare pentru un anumit bistabil, în cazul considerat aici pentru bistabilul RS,se reduce la rezolvarea sistemului de ecuaţii booleene (2.26), format din ecuaţia de aplicareşi ecuaţia de stare a bistabilului:

( )

k k 

 pnk 

Q RS Q

QQQ x x x f Q

+=

=

|

2121| ,...,,,,...,,

  (2.26)

 adică la obţinerea expresiilor:

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

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

2121

2121

 pn

 pn

QQQ x x x f  R

QQQ x x x f S 

=

=  (2.27)

 Există mai multe metode practice pentru rezolvarea acestei probleme. Una din

metodele frecvent folosite se bazează pe tabelul de excitaţie al bistabilului. Tabelul deexcitaţie al unui anumit tip de bistabil arată care trebuie să fie valorile intr ărilor pentru ca

 bistabilul aflat într-o anumită stare sa treacă într-o stare următoare bine precizată.

TABELUL 2.13.

În tabelul excitaţiilor pentru bistabilul RS (tabelul 2.13) seînscrie pe coloana intr ării S, respectiv R, valoarea 0 şi 1, atuncicând una dintre aceste valori este obligatorie pentru tranziţiarespectivă sau se scrie un x, atunci când valoarea uneia sau aambelor intr ări este indiferentă. De exemplu, atunci când starea

 prezentă a bistabitului este 0, iar starea sa următoare trebuie sa fietot 0, este obligatoriu ca intrarea S să fie în starea 0, dar intrarea R poate să fie în starea 0sau în starea 1, adică se poate scrie x, după cum se vede în primul rând al tabelului 2.13.Acest tabel se foloseşte pentru deducerea ecuaţiilor intr ărilor bistabilului RS, aplicat într-un caz concret, în felul urmator :

Q(t) Q(t+1) S R 0 0 0 x0 1 1 01 0 0 11 1 x 0

1. se scrie ecuaţia de aplicare a bistabilutui sub formă de tabel de corespondenţe,  penultima coloană fiind starea prezentă a bistabilului, iar ultima stareaurmătoare;

2. se adaugă două coloane corespunzătoare intr ărilor S şi R;3. se completează coloanele S şi R pe baza tabelului excitaţiilor pentru bistabilul

RS;

Page 125: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 125/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 126

4. se scriu expresiile minime pentru ecuaţiile S şi R, considerând pentru poziţiilemarcate cu x valorile cele mai convenabile (condiţii „nu ţine cont”) – S şi R sunt funcţii de variabilele din ecuaţia de aplicare.

Exemplu. Se dă ecuaţia de aplicare a bistabilului A, de tipul RS, expresia 2.28 şi secer ecuaţiile intr ărilor R şi S.

11|  X  B X  A A +=   (2.28)

 

TABELUL 2.14. Se întocmeşte tabelul 2.14 pe baza relaţiei 2.28 şi a

tabelului 2.13. Tabelul se realizează, aşa cum s-a ar ătat mai sus, pe baza variabilelor funcţiei de aplicare (X1, B, A) cu ajutorulecuaţiei 2.28. La acest tabel se mai adaugă coloanele S şi R carese completează conform tabelului 2.13, ţinând cont de faptul că A reprezintă starea prezentă iar A| starea următoare.

X1 B A A| S R 0 0 0 0 0 x0 0 1 0 0 10 1 0 1 1 0

0 1 1 1 x 01 0 0 1 1 01 0 1 0 0 11 1 0 1 1 01 1 1 0 0 1

Din tabelul 2.14 rezultă ecuaţiile intr ărilor S şi R, înfuncţie de variabilele X1, B şi A, relaţia (2.29), obţnute în urmaminimizării funcţiilor S=f(X1, B, A) şi R=f(X1, B, A) cu ajutoruldiagramelor Karnaugh din figura 2.18.

Figura 2.18. Minimizarea funcţiilor S şi R.

AB

X1

00 01 11 10AB

X1

00 01 11 10

0 0 1 x 0

Ecuaţiile intr ărilor S şi R sunt:

( )

( )11

11

 X  B A AX  B A R

 X  B A X  A B AS 

+=+=

+=+=  (2.29)

 În general, ecuaţia de aplicare a unui bistabil Q se poate scrie, folosind teorema

dezvoltării, sub forma:

QQ hQQg Q +=|   (2.30)

 unde gQ  şi hQ sunt funcţii boleene având ca variabile toate variabilele din ecuaţia deaplicare a bistabilului Q cu excepţia variabilei Q.

Procedând la determinarea expresiilor intr ărilor S şi R ale unui bistabil, plecând dela ecuaţia de aplicare scrisă sub forma (2.30) se obţin, prin intermediul tabelului 2.15, înmodul ar ătat mai sus, funcţiile S=f(gQ, hQ, Q) şi R =f(gQ, hQ, Q), care minimizate cuajutorul diagramelor Karnaugh din figura 2.19, au forma :

1 1 1 0 0Funcţia S

0 x 0 0 11 0 0 1 1

Funcţia R 

Page 126: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 126/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 127

QQ g Q RhQS  == ; (2.31)

 

Figura 2.19. Determinarea funcţiilor S şi R.

QhQ 

gQ

00 01 11 10

0 0 1 0 01 0 1 x x

Funcţia S

QhQ gQ

00 01 11 10

0 x 0 1 11 x 0 0 0

Funcţia R 

TABELUL 2.15. 

Din cele prezentate mai sus rezultă că ecuaţiileintr ărilor se pot obţine uşor folosind funcţile

auxiliare gQ  şi hQ (din ecuaţia 2.31) care încazul reprezentării funcţiei Q' pe diagramaKarnaugh sunt date, fiecare din ele, de câte o

 jumătate a acestei diagrame (conform ecuaţiei2.30) şi anume: funcţia gQ pe jumatateacorespunzătoare zonei Q, iar funcţia hQ pe

 jumătatea corespunzătoare zonei Q (figura

2.20.a). Din figura 2.20.a, pentru ecuaţia intr ării S se caută forma minimă a funcţiei hQ,

adică se iau unităţile din zona Q a diagramei iar pentru ecuaţia intr ării R se caută forma

minimă a funcţiei Q g  , adică se iau zerourile din zona Q a diagramei. Astfel, pentru

exemplul considerat anterior, rezultă pentru A|, conform tabelului 2.14, diagrama

Karnaugh din figura 2.20.a. Pe baza acestei diagrame se obţin pentru funcţiile  Aq  şi ,

expresiile: Ah

gQ hQ Q RQS 

hQQg Q QQ

+=

=+=|

  S R 

0 0 0 0 0 x0 0 1 0 0 10 1 0 1 1 00 1 1 0 0 11 0 0 0 0 x1 0 1 1 x 01 1 0 1 1 01 1 1 1 x 0

11; X  Bh X  B g   A A+=+=   (2.32)

 Ţinând cont de expresiile (2.31) şi (2.32) se obţin pentru S şi R aceleaşi expresii ca

şi în cazul precedent, relaţia (2.29).

Figura 2.20. Determinarea ecuaţiilo

bistab

 X1

00 01 11 10

r de intrare pe baza ecuaţiei de aplicare a

ilului.

AB

0 0 1 1 01 1 1 0 0

Funcţia A|

Fig. 2.20.a.

Zona AZona  A  AB

X1 00 01 11 100 0 1 1 0

hA gA

1 1 1 0 0

Funcţia A|

Fig. 2.20.b.

Page 127: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 127/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 128

Având în vedere faptul că atunci când bistabilul RS se află în starea unu logic se  poate da comanda de aducere în starea unu logic far ă să se modifice nimic, rezultă că 

 pentru ecuaţia intr ării S se pot considera pe lângă unităţile din zona  A  şi cele din zona A,adică toate unităţile din diagrama Karnaugh pe care se reprezintă ecuaţia de aplicare. Din

aceleaşi motive, pentru scrierea ecuaţiei intr ării R se pot considera toate zerourile dindiagramă. Prin urmare, unităţile din zona A reprezintă condiţii ,,nu ţine cont" pentru

scrierea expresiei lui S, iar zerourile din zona  A reprezintă condiţii ,,nu ţine cont" pentruscrierea expresiei lui R. În diagrama din figura 2.20.b căsuţele corespunzătoare acestor condiţii sunt marcate prin trasarea diagonalelor. Urmărind această diagramă se constată că nu se pot obţine pentru S şi R expresii mai simple decât cele deduse anterior. De fapt înaceste completări, diagrama din figura 2.20.b corespunde în întregime cu diagramele dinfigura 2.18.Circuitul basculant bistabil de tipul JK . Spre deosebire de circuital basculant bistabil RS,circuitul basculant bistabil JK admite comenzi simultane la ambele intr ări, circuitul fiind

astfel conceput incât atunci când apare un asemenea caz să-şi modifice starea. Tabelulcaracteristic şi tabelul excitaţiilor pentru un circuit basculant bistabil de tipul JK sunt dateîn tabelul 2.16, respectiv 2.17.

Ecuaţia de stare a circuitului basculant bistabil JK este dată de relaţia:

 J Q K QQ +=|   (2.33)

 Circuitul basculant bistabil de tipul JK se poate construi folosind un circuit bistabil

RS sincron. Se consider ă în acest scop ecuaţia de stare a bistabihilui JK drept ecuaţia deaplicare pentru bistabilul RS şi se determină plecând de aici ecuaţiile intr ărilor S şi R.Ecuaţia de stare a bistabilului JK este reprezentată pe diagrama din figura 2.21. Din această diagramă rezultă, folosind metoda prezentată mai sus pentru bistabilul RS, ecuaţiileintrarilor S si R:

 K Q R J QS  == ; (2.34)

TABELUL 2.16.

J K Q(t+1)0 0 Q(t)0 1 01 0 1

1 1 )(t Q  

TABELUL 2.17.

Q(t) Q(t+1) J K 0 0 0 X0 1 1 X1 0 X 11 1 X 0

QK J

00 01 11 10

0 0 0 0 11 1 1 0 1

Figura 2.21. Sinteza unui bistabil JK.

hQ

gQ

T

U7A

U2A

7408

1

2

3

J

 /Q

K

U6A

7400

1

2

3

Q

U1A

7408

1

2

3

U4A

7400

1

2

3

U5A

7400

1

2

3

U3A

7410

1

122

13

7400

1

2

3

a.

T

J

U9A

7400

1

 /Q

2

3

U8A

7410

1

122

13

U10A

7400

1

2

3

Q

K

 b.

Figura 2.22. Circuit bistabil JK 

Page 128: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 128/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 129

Considerând circuitul bistabil RS realizat sub forma din figura 2.17 şi avândecuaţiile intr ărilor (2.34), rezultă pentru circuitul bistabil JK schema din figura 2.22.a.Facând uz de proprietatea de asociativitate a funcţiei SI, această schemă se poate realiza cumai puţine elemente în forma echivalentă dată în figura 2.22.b. După cum s-a văzul în

analiza f ăcuta asupra circuitelor sincrone, un asemenea circuit poate funcţiona corectnumai atunci când durata impulsului de sincronizare T nu depăşeşte timpul de reacţie alcircuitului.

Deducerea ecuaţiilor intr ărilor bistabilului JK folosit ca element de memorareîntr-un circuit secvenţial sincron se poate face în acelaşi mod ca şi în cazul circuitului

 bistabil RS, folosind în acest scop tabelul excitaţiilor. În acest caz însă, expresiile intr ărilor rezultă mai simplu, prin identificarea lor cu funcţiile hQ  şi gQ din ecuaţia de aplicare,relaţiile (2.35) şi (2.36). Astfel din :

⎪⎩

⎪⎨⎧

+=

+=

 J Q K QQ

hQQg Q QQ

|

|

  (2.35)

 rezultă:

Q g  K =   şi Qh J = (2.36)

 Din cele ar ătate mai sus rezultă o regulă practică pentru obţinerea expresiilor intr ărilor,având funcţia de aplicare reprezentată pe diagrama Karnaugh şi anume, pentru obţinerea

expresiilor intr ării J se minimizează funcţia din zona Q a diagramei, iar pentru obţinerea

expresiei intr ării K se minimizează negata funcţiei din zona Q a diagramei, considerând înacest scop zerourile din această zonă.Pentru exemplul considerat anterior, din diagrama Karnaugh pentru ecuaţia de aplicare A| (fig. 2.20.a) rezultă :

(2.37)11; X  B K  X  B J  +=+=  

Circuitul basculant bistabil de tipul T. Acest circuit basculant bistabil are o singur ă intrare,notată cu T, care atunci când trece din starea zero logic în starea unu logic cauzează schimbarea stării interne a bistabilului.

Tabelul caracteristic al circuitului basculant bistabil de tipul T şi tabelul excitaţiilor 

sunt date în tabelul 2.18, respectiv 2.19.Ecuaţia de stare a bistabilului T, rezultată din tabelul 2.18, este :

(2.38)T QT QQ +=|  

TABELUL 2.18 TABELUL 2.19

T Q(t+1) Q(t) Q(t+1) T0 Q(t) 0 0 0

1 )(t Q   0 1 1

1 0 11 1 0

QT

0 1

0 0 11 1 0

hQ gQ

Figura 2.23.

Sinteza unui

circuit bistabil T

Page 129: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 129/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 130

Se pot concepe bistabile de tipul T care să funcţioneze sincron sau bistabile de tipulT care să funcţioneze asincron. Pentru a obţine un circuit basculant bistabil de tipul Tsincron, se poate pleca de la faptul că circuitul basculant bistabil de tipul JK işi modifică starea atunci când intr ările J şi K sunt comandate simultan, de unde rezultă că legând

impreună intr ările JK ale unui circuit basculant JK se obţine schema unui circuit basculant  bistabil de tipul T. Acesta va funcţiona corect cu aceeaşi observaţie privind durataimpulsului de sincronizare ca şi la circuitul bistabil JK. La acelaşi rezultat se ajunge şi dacă se porneşte de la ecuaţia de stare a bistabilului T, care se impune să fie ecuaţie de aplicare

 pentru un bistabil JK, relaţia (2.38), reprezentată pe diagrama Karnaugh din figura 2.23.Din diagrama Karnaugh din figura 2.23 rezultă, ţinând cont de cele ar ătate mai sus,relaţiile:

T  g  K T h J  A A ==== ; (2.39)

 

La aceeaşi schemă se ajunge şi dacă se face sinteza folosind ca element dememorie un circuit bistabil RS.Ecuaţiie intr ărilor unui circuit bistabil T folosit ca element de memorie într-un

circuit secvenţial se obţin plecând de la ecuaţia de aplicare a bistabilului, scrisă pe bazateoremei dezvoltării, în acelaşi mod ca şi la bistabilul RS (tabelul 2.20).

Din diagrama Karnaugh a funcţiei T (figura 2.24) rezultă forma sa minimă:

QQ g QhQT  +=   (2.40)

 TABELUL 2.20.

Ecuaţia intr ării T de mai sus (2.40) arată că pentru obţinerea sa se consider ă funcţiahQ şi negata funcţiei gQ din ecuaţia de aplicare a bistabilului. Având în vedere acest fapt se

 poate deduce o regulă practică de obţinere a expresiei minime a intr ării, atunci când ecuaţiade aplicare este reprezentată pe diagrama Karnaugh şi anume: se consider ă pentru scrierea

expresiei intr ării T, unităţile din zona Q  şi zerourile din zona Q a diagramei.Folosind această regulă pentru ecuaţia de aplicare dată în diagrama Karnaugh din

figura 2.20.a, a exemplului prezentat anterior, rezultă pentru intrarea T a bistabilului Aexpresia:

Q

|

= Q Q g  + QhQ = TgQ hQ Q

 B A B A X T  ++= 1   (2.41)

 

= QT +Q T

Figura 2.24. Determinarea ecuaţiei intrării pentru

bistabilul T

QhQ

 gQ

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

1 0 1 0 0Funcţia T

Page 130: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 130/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 131

IntrareT

0 1Ieşire

ZQ1Q2

T00 01 11 10

TABELUL 2.21.

Pentru a concepe o schemă de circuit  bistabil T asincron, se începe cu tabelul primar al stărilor, completat ţinând cont de comportarea

  bistabilului (figura 2.25.a). Deoarece se

urmăreşte obţinerea unui circuit de tipul Moore,se vede, urmărind coloana ieşirii Z, că numărulde stări din tabelul primar al stărilor nu poate firedus. Pentru codificarea acestor patru stări sunt

necesare două variabile de stare Ql  şi Q2, cărora li se atribuie coduri binare pe bazadiagramei tranziţiilor din figura 2.25.b. Cu această codificare rezultă tabelul tranziţiilor (tabelul 2.21). Din acest tabel se obţin expresiile stărilor următoare ale variabilelor de stare,Ql şi Q2, care se minimizează cu ajutorul diagramelor Karnaugh din figura 2.25.c şi 2.25.d,rezultând :

T QQQT QQ

T QQQT QQ

2211|2

2211

|

1

++=

++=  (2.42)

 Factorizând expresiile (2.42) se obţine:

( ) T QQT QQ 221|1 ++=   (2.43.a)

( ) T QQT QQ 221|2 ++=   (2.43.b)

 Pe baza expresiilor (2.43) se obţine schema logică din figura 2.26. În vederea

reducerii numărului de elemente logice se înlocuieşte variabila2

Q de la intrarea

elementului 1 cu expresia obţinuta prin negarea expresiei (2.43.b):

( )T QQT QQ +⋅= 2122   (2.44)

 adică cu conjuncţia ieşirilor elementelor logice 3 şi 5, care se poate realiza aplicând acesteieşiri la intr ările elementului logic 1, pe baza legii asociativităţii funcţiei logice SI. Învederea înlocuirii elementului de negare 8, care realizează complementul ieşirii Q|

1, se

scrie pe baza diagramei Karnaugh din figura 2.25.d, expresia minimă a lui|

1Q :

Starea următoare Q|1Q

|2 

 pentru intrarea TStarea

 prezentă Q1Q2 0 1

Z

01 01 11 0

11 10 11 110 10 00 100 01 00 0

1 2 03 2 13 4 11 4 0

1 2

34

01 11

00 10

Q1Q2

T00 01 11 10

0 0 0 1 11 0 1 1 0

 Funcţia Q

|1

0 1 1 0 01 0 1 1 0

 Funcţia Q

|2

a. b. c. d.

Figura 2.25. Sinteza unui circuit bistabil asincron de tipul T.

Page 131: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 131/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 132

( ) T QQT QT QQQT QQ 2212211

|

1 ++=++=   (2.45)

/Q2 Q2

/Q1

6

T

U4A

1

2

3

8

U1A

1

23

U2A

1

23

4

U6A

1

23

2

U7A

1

23

Q1' (Z)

5

/Q1

Q2'

1 3

U8A

1

23

7

U5A

1

23

U3A

1

23

Q1

a.

3

U3A

1

23

Q2'

U1A

1122

13

U6A

1

23

2

1

/Q2

Q1' (Z)

 /T

5/Q1

/Q2

U2A

1

2

3

6

U5A

1

23

U4A

1

234

b.

Figura 2.26. Schema logică a unui circuit bistabil de tipul T, asincron.

După cum rezultă din această relaţie, funcţia|

1Q se poate obţine cu elementele

logice existente în schemă şi anume ea rezultă la ieşirea elementului logic 2, de unde poatefi aplicată la intrarea elementului 5. În urma acestor modificări se obţine schema logică dinfigura 2.26.b) cu numai şase elemente logice SI-NU. Ieşirea acestui circuit, Z, este identică cu . Circuitelor din figura 2.26 li se pot adăuga intr ări de tipul R  şi S la elementelelogice 2, respectiv 4.

|1Q

Circuitul bistabil de tipul T, asincron, din figura 2.26.b, poate sta la baza proiectăriiunui circuit bistabil de tipul T, sincron, care să funcţioneze independent de durataimpulsului de sincronizzare. În acest scop se prevede la intrare un element logic SI-NU,

care realizează funcţia T  H T = , unde H este impulsul de sincronizare.Circuital basculant bistabil de tipul D. Acest circuit basculant bistabil are o intrare notată cu D, iar starea bistabilului este determinată de starea acestei intr ări şi anume stareaurmătoare este aceeaşi cu a intr ării D, independent de starea prezentă a bistabilului. Deobicei intrarerea D este sincronizată, iar circuitul este prevăzut cu intr ări asincrone pentruaducerea în starea 0, respectiv 1. Tabelul caracteristic şi tabelul excitaţiilor pentru bistabilulD sunt prezentate în tabelul 2.22, respectiv 2.23.

Din tabelul caracteristic rezultă ecuaţia de stare a bistabilului D :

 DQ =|   (2.46)

 După cum se vede din relaţia (2.46),

ecuaţia de aplicare a bistabilului se identifiecă cu ecuaţia intr ării, prin urmare ecuaţia intr ăriise obţine minimizând ecuaţia de aplicare.Pentru realizarea unui bistabil de tip D, sincron,se poate folosi fie un bistabil RS, fie un bistabilJK. Pentru determinarea expresiilor intr ărilor 

acestora, se intocmesc tabelele 2.24, respectiv 2.25.

TABELUL 2.22.  TABELUL 2.23.

D Q(t+1) Q(t) Q(t+1) D0 1 0 0 01 1 0 1 1

1 0 01 1 1

Din tabelul 2.24 rezultă că forma minimă pentru intr ările R şi S este :

 D R =   şi  DS = (2.47) 

Page 132: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 132/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 133

iar din tabelul 2.25 rezultă că forma minimă pentru intr ările J şi K este :

 DK =   şi  D J = (2.48) 

Pe baza expresiilor (2.47) şi (2.48) se obţineschema bistabilului D dată înfigura 2.27.a, respectiv 2.27b,în care bistabilele RS, respectivJK sunt reprezentate simbolic

  printr-un dreptunghi cuintr ările şi ieşirile corespunzătoare.

TABELUL 2.4. TABELUL 2.5.D Q(t) Q(t+1) R S D Q(t) Q(t+1) J K 0 0 0 X 0 0 0 0 0 X0 1 0 1 0 0 1 0 X 11 0 1 0 1 1 0 1 1 X1 1 1 0 X 1 1 1 X 0

D

U2A

1 2

T T

QU3

KTJ

Q

 /Q

 /Q

U2A

1 2

 /Q

D

QU1

RTS

Q

 /Q

a. b.

Figura 2.27. Sinteza circuitului bistabil de tipul D.

Circuitele basculante bistabile de tipul ,,stăpân-sclav" (master-slave). În principiu un bistabil de tipul ,,stă  pân-sclav", este format din două circuite basculante bistabile dintrecare primul, denumit ,,stă  pân" memoreaza în momentul apariţiei impulsului desincronizare starea următoare a bistabilului, iar cel de-al doilea denumit ,,sclav"memorează pe toată durata impulsului de sincronizare starea prezentă, urmând ca abia

după dispariţia impulsului de sincronizare să treacă în starea în care se gaseşte bistabilul,;stă  pân" care îl comandă. În acest fel se asigur ă o funcţionare corectă a bistabiluluiindependent de viteza de reacţie a bistabilului, respectiv de durata impulsului desincronizare. Această proprietate este importantă mai ales pentru bistabilele de tipul JK şiT, dar  şi pentru bistabilele RS în cazul folosirii acestora în registre de deplasare cu unsingur tact.

2.8. Exemplificarea sintezei unui circuit logic secvenţial

Pentru exemplificarea sintezei unui circuit logic secvenţial vom parcurge paşii

descrişi în paragraful 2.6.Vom considera următoarea problemă: să se realizeze un circuit logic secvenţial cudouă intr ări x0 şi x1 şi o ieşire z0. Comportarea circuitului este următoarea: starea iniţială acircuitului (starea iniţială a ieşirii) este zero logic. Dacă la intrare apare secvenţa 10 -> 11 -> 01 atunci ieşirea va că păta valoarea unu logic. Următoarea modificare a intr ării duce latrecerea ieşirii în zero logic. Nici o altă secvenţă a semnalelor de intrare nu mai producestarea unu logic la ieşire.

Pasul 1 (conform paragrafului 2.6).Se realizează tabelul de tranziţii primar. Acesta are următorul cap de tabel:

Page 133: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 133/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 134

Intr ăriSemnificaţia stării Numele stării

00 01 11 10Ieşire

Tabelul de tranziţii primar se completează linie cu linie pe baza descrierii

funcţionării circuitului.Funcţionarea circuitului începe cu starea iniţială care este de obicei starea în care se

află sistemul după ce a fost cuplat la sursa de alimentare. Această stare o vom numi stareainiţială şi o vom nota cu Sinit. Pentru starea initială ieşirea va fi zero logic.

Apoi, pentru fiecare combinaţie a variabilelor de intrare, vom analiza evoluţiacircuilului. Confonn descrierii funcţionării circuitului, o singur ă secvenţă a semnalelor deintrare poate duce la activarea ieşirii şi prima combinaţie din această secvenţă este 10.Rezultă că pentru combinaţiile 00, 01 si 11 circuitul va r ămâne în starea în care se afla iar 

  pentru combinaţia 10 el va trece într-o stare nouă. Aceasta este starea în care s-a detectat prima combinaţie din secvenţă aşa încât o vom numi Detectl.

Intr ăriSemnificaţia stării Numele stării00 01 11 10

Ieşire

Starea iniţială SInit SInit SInit SInit Detect1 0  Noua stare Detect1 se adaugă tabelului primar prin adăugarea unei linii

suplimentare şi procesul de mai sus se reia.

Intr ăriSemnificaţia stării

 Numelestării 00 01 11 10

Ieşire

Starea iniţială SInit SInit SInit SInit Detect1 0S-a detectat începutul

secvenţei Detect1Următoarea combinaţie din secvenţă, aplicată la intrare, care va duce la activarea

ieşirii (trecerea în starea unu logic a ieşirii) z0, dacă se completează secvenţa cerută laintrare 10 -> 11 -> 01, este 11. Asta înseamnă că dacă, aflându-ne în starea Detect1, laintrare se aplică combinaţiile 00 sau 01, secvenţa rezultată la intrare, pâna în acest moment,va fi una din următoarele: (10, 00) sau, respectiv (10, 01) care conform specificaţiilor nuvor putea duce la activarea ieşirii z0. Ca urmare, în aceste două cazuri circuitul va trebui să se întoarcă în starea iniţială pentru a relua procesul de detecţie a secvenţei corecte. În cazulîn care combinaţia la intrare este 10, rezultă ca aceasta a r ămas neschimbată aşa încâtcircuitul va r ămâne în continuare în starea Detectl aşteptând modificarea secvenţei deintrare. Circuitul va trece într-o stare nouă doar dacă la intrare se aplică combinaţia 11.Această nouă stare corespunde detecţiei celei de-a doua combinaţii din secvenţa careactivează ieşirea z0 aşa încât o vom numi Detect2. leşirea circuitului ramâne în continuareîn starea zero logic. Tabelul primar va ar ăta astfel:

Intr ăriSemnificaţia stării

 Numelestării 00 01 11 10

Ieşire

Starea iniţială SInit SInit SInit SInit Detect1 0S-a detectat începutul

secvenţeiDetect1 SInit SInit Detect2 Detect1 0

S-a detectat a doua

combinaţie din secvenţă Detect2

Page 134: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 134/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 135

Raţionând în mod similar rezultă că pentru combinaţiile 00 şi 10 circuitul revine înstarea iniţială, pentru combinaţia 11 circuitul r ămâne în starea Detect2 iar pentrucombinaţia 01 circuitul trece într-o stare nouă. Aceasta este starea în care a fost detectată şicea de-a treia combinaţie din secvenţa de activare a ieşirii z0  şi ca urmare aceasta va fi

activată. Noua stare o vom numi Detect3. Din această stare circuitul revine în starea iniţială la oricare din combinaţiile diferite de ultima combinaţie recepţionată, adică 0l.Cum în această ultimă etapă nu au apărut stări noi, rezultă că procesul determinării

tabelului de tranziţie primar, s-a încheiat. Forma finală a tabelului de tranziţie primar este:

Intr ăriSemnificaţia stării

 Numelestării 00 01 11 10

Ieşire

Starea iniţială SInit SInit SInit SInit Detect1 0S-a detectat începutul

secvenţeiDetect1 SInit SInit Detect2 Detect1 0

S-a detectat a douacombinaţie din secvenţă  Detect2 SInit Detect3 Detect2 SInit 0S-a detectat a treia

combinaţie din secvenţă (ultima)

Detect3 SInit Detect3 SInit SInit 1

Din tabelul de tranziţie primar se obţine imediat tabelul de tranziţie al circuitului:

Intr ări (x0x1) Numele stării00 01 11 10

Ieşirez0

SInit SInit SInit SInit Detect1 0

Detect1 SInit SInit Detect2 Detect1 0Detect2 SInit Detect3 Detect2 SInit 0Detect3 SInit Detect3 SInit SInit 1

Pasul 2.În această etapă se urmăreşte eliminarea stărilor suplimentare introduse în procesul

de determinare a tabelului de tranziţie a circuitului.Problema realizării unui circuit secvenţial cu o anumită comportare nu are o soluţie

unică. Se pot construi circuite secvenţiale cu aceeaşi comportare, dar de complexităţidiferite, respectiv cu preţ de cost diferit. De obicei, dintre circuitele secvenţiale cu aceeaşi

comportare, acela este mai simplu şi realizabil cu o cheltuială mai redusă care are număr mai mic de stări. Din acest motiv este important să se reducă la minimum numărul stărilor din diagramă, respectiv tabelul stărilor care descrie comportarea circuitului secvenţial.

Pentru reducerea numărului de stări ale unui circuit secvenţial se caută acele stăricare realizează aceeaşi funcţie, adică nu se poate face distincţie între ieşirile rezultate înurma aplicării la intr ările circuitului aflat în oricare din aceste stări a aceleiaşi secvenţe deintr ări. Aceste stări se numesc echivalente şi pot fi înlocuite printr-o singur ă stare.Echivalenţa a două stări se poate defini în felul următor: două stări qi şi q j ale aceluiaşicircuit secvenţial A1, complet definit sau f ăcând parte din două circuite secvenţiale completdefinite A1 şi A2 se numesc echivalente, notat qi = q j, dacă pentru orice secvenţă de intr ăride lungime arbitrar ă aplicată circuitului A1 aflat în starea qi se obţine aceeaşi secvenţă de

ieşiri ca şi la aplicarea aceleiaşi secvenţe circuitului A1, respectiv A2 aflate in starea q j.

Page 135: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 135/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 136

Echivalenţa stărilor unui singur circuit secvenţial complet definit este o relaţie deechivalenţă; prin urmare este reflexivă, simetrică şi tranzitivă şi împarte mulţimea stărilor circuilului în clase de echivalenţă disjuncte.

Două circuite secvenţiale Al  şi A2 sunt echivalente, notat Al = A2, dacă pentru

fiecare stare q j din A2 există o stare echivalentă qi în A1 şi invers, pentru fiecare stare qi dinAl există o stare echivalentă q j în A2.

Pasul 3.Stările automatului sunt realizate prin inermediul variabilelor de stare. Cum aceste

variabile pot lua doar două valori, rezultă că pentru n stări vom avea nevoie de cel puţin m variabile binare, unde 2m ≥ n. În cazul nostru n = 4 aşa încât vom utiliza 2 variabile de stare

 pe care le vom nota cu y0 si y1.Vom alege următoarea codificare a stărilor:

SInit -> y0=0 y1=0Detectl -> y0=0 y1=l

Detect2 -> y0=1 y1=lDetect3 -> y0=1 y1=0

În general există n! posibilităţi de codificare a celor  n stări.

Pasul 4.Înlocuind codurile de mai sus în tabelul de tranziţie, obţinem:

x0x1

y0y100 01 11 10 z0

00 00 00 00 01 0

01 00 00 11 01 011 00 10 11 00 010 00 10 00 00 1

Din acest tabel putem obţine diagramele Karnaugh pentru funcţiile de stare Y0, Y1 şi a ieşirii z0, corespunzăoare variabilelor de stare y0  şi y1. Pe baza acestor diagramerealizăm minimizarea funcţiilor.

Funcţia Y0   Funcţia Y1 Funcţia z0

x0x1

y0y100 01 11 10

x0x1

y0y100 01 11 10

x0x1

y0y100 01 11 10

00 0 0 0 0 00 0 0 0 1 00 0 0 0 001 0 0 1 0 01 0 0 1 1 01 0 0 0 011 0 1 1 0 11 0 0 1 0 11 0 0 0 010 0 1 0 0 10 0 0 0 0 10 1 1 1 1

Expresia funcţiilor obţinute este:

100

1100101

1100100

 y y z

 y x x y x xY 

 y x x y x xY 

=

+=

+=

 

Page 136: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 136/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 137

Pasul 5.În această etapă se alege tipul de celule de memorie folosite (tip RS, JK, D,T).

Pasul 6.

Pentru tipul de memorie aleasă se construieşte tabelul de excitaţie care indică valorile excitaţiilor ce trebuiesc aplicate intr ărilor memoriilor pentru a obţine stareaurmătoare dorită pentru fiecare combinaţie stare actuală-intrare. Aplicand regulile din

 paragraful 2.7.2 se obţin următoarele tabele de excitaţii:

Celule de memorie tipul D

D0   D1

x0x1

Q0Q100 01 11 10

x0x1

Q0Q100 01 11 10

00 0 0 0 0 00 0 0 0 101 0 0 1 0 01 0 0 1 111 0 1 1 0 11 0 0 1 010 0 1 0 0 10 0 0 0 0

Celule de memorie de tipul RS

R 0  S0 R 1 S1

x0x1

Q0Q100 01 11 10

x0x1

Q0Q100 01 11 10

x0x1

Q0Q100 01 11 10

x0x1

Q0Q100 01 11 10

00 X X X X 00 0 0 0 0 00 X X X 0 00 0 0 0 101 X X 0 X 01 0 0 1 0 01 1 1 0 0 01 0 0 X X11 1 0 0 1 11 0 X X 0 11 1 1 0 1 11 0 0 X 0

10 1 0 1 1 10 0 X 0 0 10 X X X X 10 0 0 0 0 Celule de memorie de tipul JK 

J0  K 0 J1 K 1x0x1

Q0Q100 01

1110

x0x1

Q0Q100 01 11 10

x0x1

Q0Q100 01 11 10

x0x1

Q0Q100 01 11 10

00 0 0 0 0 00 X X X X 00 0 0 0 1 00 X X X X01 0 0 1 0 01 X X X X 01 X X X X 01 1 1 0 011 X X X X 11 1 0 0 1 11 X X X X 11 1 1 0 110 X X X X 10 1 0 1 1 10 0 0 0 0 10 X X X X

 Celule de memorie de tipul T 

T0   T1

x0x1

Q0Q100 01 11 10

x0x1

Q0Q100 01 11 10

00 0 0 0 0 00 0 0 0 101 0 0 1 0 01 1 1 0 011 1 0 0 1 11 1 1 0 110 1 0 1 1 10 0 0 0 0

Page 137: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 137/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 138

Pasul 7.Pe baza diagramei Karnaugh şi a tabelelor de excitaţie ale celulelor de memorie

folosite, se obţin expresiile funcţiilor de excitaţie.

Celule de memorie de tipul D

1100101

1100100

Q x xQ x x D

Q x xQ x x D

+=

+= 

Celule de memorie de tipul RS

0101

0101

1100

1010

Q x xS

Q x x R

Q x xS

Q x x R

=

+=

=

+=

 

Celule de memorie de tipul JK 

01101

0101

10010

1100

Q x x xK 

Q x x J 

Q xQ xK 

Q x x J 

+=

=

+=

=

 

Celule de memorie de tipul T 

1010101101

1110100010

QQ x xQQ xQ xT 

QQ x xQQ xQ xT 

++=

++= 

Pasul 8.Pe baza tabelului de tranziţie se obţine expresia

funcţiei de ieşire. Pentru toate cazurile, funcţia de ieşire

depinde numai de starea circuitului şi conform diagrameiKarnaugh alăturate, va avea expresia:

Funcţia z0

x0x1

 

Q0Q1 00 01 11 1000 0 0 0 001 0 0 0 011 0 0 0 010 1 1 1 1

100 QQ z =

 Pasul 9.

Pe baza ecuaţiilor determinate la paşii 8 şi 9 se trasează schema logică a circuituluicare materializează funcţiile de excitaţie şi cele de ieşire la care se adaugă şi celulele dememorie corespunzătoare. Schemele logice sunt date mai jos pentru fiecare tip de celulă de

memorie.

Page 138: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 138/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 139

Celule de tip D 

Celule de tip RS 

Celule de tip JK 

Z0

1

23

1 2

1

23

1 2

R1

X0

1122

13

S0

R

S

Q

 /Q

1

23

1

23

X1

1

23

S0

1122

13

R0R

S

Q

 /Q

 

1

23

D1

D Q

 /Q

1 2

1

23

X1

X0

1

12213

1122

13

1

23

D0

1122

13D Q

 /Q

Z0

1 2

 

1

23

1

23

1

23

J1

K1

Z0

J

K

Q

 /Q

J

K

Q

 /Q

1

23

1 2K0

1

23

1122

13

1

23

1 2

J0

1

23

X0

X1

1122

13

 

Page 139: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 139/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 140

Celule de tipul T  

1122

13

7408

1

23

T Q

 /Q

1

23

1 2

T0

T1

Z0

T Q

 /Q

X1

X0

1122

13

1

2

3

1 2

 

2.9. Analiza circuitelor logice secvenţiale asistată de calculator

Vom prezenta succint, în continuare, analiza circuitelor logice secvenţiale cuajutorul pachetului de programe OrCAD bazându-ne pe cele ar ătate în paragraful 1.6, cuajutorul limbajului Verilog, bazându-ne pe cele ar ătate în paragraful 1.7.2 şi cu ajutorullimbajului VHDL bazându-ne pe cele ar ătate în paragraful 1.7.3.

2.9.1. Simularea circuitelor logice secvenţiale cu ajutorul aplicaţiei OrCAD

Pentru simularea unui circuit basculant bistabil construit cu circuite logiceSAU-NU vom construi în aplicaţia OrCAD Capture schema electrică din figura 2.28. Seva face verificarea circuitului cu ajutorul opţiunii Design Rules Check (din meniul Tools)şi după realizarea profilului de simulare similar cu cel prezentat în figura 2.29, se trece lasimularea circuitului.

CLK

ROFFTIME = .5uSONTIME = .5uSDELAY = 0STARTVAL = 0OPPVAL = 1

 /Q

Q

V

U1A

74LS02

2

31

V

U2A

74LS02

2

31

V

V

CLK

SOFFTIME = 1uSONTIME = 1uSDELAY = 0STARTVAL = 0OPPVAL = 1

Figura 2.28. Circuitul pentru simulareaunui circuit basculant bistabil realizat cu

porţi SAU-NU.

Figura 2.29. Profilul de simulare.

Page 140: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 140/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 141

Rezultatul simulării este prezentat în figura 2.30.

Figura 2.30. Rezultatul simulării bistabilului RS realizat cu porţi SAU-NU.

Se propune ca temă explicarea formelor de undă din figura din figura 2.30.Următorul exemplu se refer ă la circuitul basculant bistabil realizat cu por ţi ŞI-NU.

Se realizează în aplicaţia OrCAD Capture schema electrică din figura 2.31.

U1A

7400

1

23

 Se vor compara formele de undă din figura 2.30 cu cele din figura 2.32.Simularea funcţionării unui circuit basculant bistabil sincron de tipul JK se va face

cu ajutorul circuitului din figura 2.33 iar rezultatul simulării este ar ătat în figura 2.34.

În cazul simulării circuitelor electronice care conţin circuite

  basculante bistabile, cu ajutorulaplicaţiei Orcad PSpice AD, seefectuează aceeaşi paşi ce cei descrişiîn paragraful 1.6. În plus, se poatestabili starea iniţială (la începutulsimulării) a circuitelor basculante

  bistabile. Această stare iniţială sestabileşte în profilul de simulare, aşacum este ar ătat în figura 2.35.

Pentru aceasta, se selectează dinmeniul PSpice aflat în bara principală aaplicaţiei OrCAD Capture, opţiunea de

creare a unui profil de simulare: New

Q

 /Q

V

CLK

 /SOFFTIME = .5uSONTIME = .5uSDELAY = 0STARTVAL = 0OPPVAL = 1

U3A

7404

1 2

VV

CLK

 /ROFFTIME = 1uSONTIME = 1uSDELAY = 0STARTVAL = 0OPPVAL = 1

U2A

7400

1

23U4A

7404

1 2 Figura 2.32. Rezultatul simulării circuitului din

figura 2.31.V

Figura 2.31. Bistabil RS cu porţi ŞI-NU

CLK

JOFFTIME = 10mSONTIME = 10mSDELAY = 0STARTVAL = 0OPPVAL = 1

V

U4A

74LS73A

14

1

3

      2

12

13

J

CLK

K

      C      L      R

Q

Q

HI

 /Q

CLK

TOFFTIME = 5msSONTIME = 5msSDELAY = 0STARTVAL = 0OPPVAL = 1

CLK

KOFFTIME = 20msSONTIME = 20msSDELAY = 0STARTVAL = 0OPPVAL = 1

V

V

V

V

Q

Figura 2.33. Schema de simulare a unui

circuit basculant bistabil de tipul JK.

Figura 2.34. Rezultatul simulării bistabilului de tip

JK 

Figura 2.35. Stabilirea stării iniţiale a bistabililor.

Page 141: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 141/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 142

Simulation Profile sau opţiunea de editare a unui profil de simulare existent: EditSimulation Profile, după caz. În fereastra apărută, selectăm Options, de aici Gate-level

Simulation  şi apoi pentru Initialize all flip-flops to selectăm valoarea zero aşa cum searată în figura 2.35. Starea iniţială a bistabilelor poate fi zero, unu sau oarecare

(simbolozată cu X).

2.9.2. Simularea circuitelor logice secvenţiale cu ajutorul Verilog HDL

Pentru simularea circuitelor logice secvenţiale cuajutorul limbajului Verilog vom folosi aplicaţia Silos descrisă în paragraful 1.7.2.2. Se va simula un latch de tip D(figura 2.36) care memorează datele prezentate la intrarea D la comanda semnalului de tact Ck.

Programul Latch D_module.v în limbaj Verilog cedescrie funcţionarea circuitului latch D sincron, este prezentat în exemplul 36.

Q

U1

D

CK

Q

QN  /Q

D

CK 

Figura 2.36. Latch D

sincron.

EXEMPLUL 36. 

// Modul latch D

module D (Ck, D, Q, QN);input Ck;input D;output Q;output QN;

assign Q = Ck ? D : Q;assign QN = Ck ? ~D : QN;

endmodule

Structura fişierului de test Test Bench, numit Latch D_TB.v este prezentată înexemplul 37.

EXEMPLUL 37. 

//TestBench pentru modulul latch D

`timescale 1 ns/1ns

module Test ();

reg D;wire Q, QN;reg Ck;

D DUT(.Ck(Ck), .D(D), .Q(Q), .QN(QN));

Page 142: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 142/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 143

initial begin

Ck = 0;D = 0;

#5 D = 1;#30 D = 0;#2 D = 1;#8 D = 0;$finish;

endalways #10 Ck <= ~Ck;endmodule

Rezultatul simulării este prezentat în figura 2.37.

Figura 2.37. Rezultatul simulării latch-ului D sincron. 

2.9.3. Simularea circuitelor logice secvenţiale cu ajutorul VHDL

Pentru simularea circuitelor logice secvenţiale cu ajutorul VHDL vom folosi programul ModselSim (varianta SE PLUS 5.7f) descrisă în paragraful 1.7.2.2.

Se construiesc fişierele pentru modelarea latch-ului  D, Latch_D.vhd  conformexemplului 37 şi pentru testarea latch-ului, test_Latch_D.vhd, conform exemplului 38.

EXEMPLUL 37.

-- EntitateaLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;

ENTITY D_latch ISPORT(Ck, D: IN std_logic;

Q, QN: OUT std_logic);END D_latch;

-- ArhitecturaARCHITECTURE Comportament OF D_latch ISBEGINLatch: PROCESS(Ck, D)

BEGIN

IF (Ck='1') THEN

Page 143: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 143/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 144

Q <= D;QN <= Not D;

END IF;END PROCESS;

END Comportament;

EXEMPLUL 38.

-- Entitatea de testLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;

ENTITY Test ISEND Test;

-- Arhitectura asociat'a entit'a'tii de testARCHITECTURE Test OF Test IS

SIGNAL D, Q, Qn: std_logic;SIGNAL Ck: std_logic := '0';

COMPONENT DcompPORT(Ck, D: IN std_logic;

Q, QN: OUT std_logic);END COMPONENT;

FOR ALL: Dcomp USE ENTITY WORK.D_latch(Comportament);

BEGIN

DUT: Dcomp PORT MAP(Ck, D, Q, QN);

Ck <= Not Ck AFTER 10 ns;D <= '0', '1' AFTER 5 ns, '0' AFTER 35 ns, '1' AFTER 37 ns, '0' AFTER 45 ns;

END Test;

Rezultatul simulării este prezentat în figura 2.38.

Figura 2.38. Rezultatul simulării latch-ului D.

Page 144: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 144/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 145

 

Seminar

Seminar 1

1.1. Cu ajutorul tabelelor de adevăr se vor verifica teorema absorbţiei (relaţia 0.11 din

curs) şi teorema de Morgan (relaţia 0.12 din curs).

1.2. Se consider ă forma canonică normal disjunctivă a unei funcţii:

f 3 = P1 + P3 + P5 + P7 (s.1) să se construiască tabelul de adevăr al acestei funcţii şi forma canonică normalconjunctivă.

1.3. Se consider ă funcţia:

f 4 = x3x1 + x2x0 (s.2) Să se construiască tabelul de adevăr al funcţiei şi să se scrie forma normal disjunctivă.

1.4. Să se arate că pentru forma canonică disjunctivă a unei funcţii oarecare:

Pi ⋅ P j = 0 pentru i ≠ j (s.3) [teorema1, relaţia (0.21), pagina 14 din curs].

1.5. Să se arate că pentru forma canonică disjunctivă a unei funcţii oarecare:

Si + S j = 1 pentru i ≠ j (s.3) [teorema2, relaţia (0.22), pagina 14 din curs].

1.6. Să se demonstreze cu ajutorul axomelor si teoremele algebrei binare că relaţia:

 y x x xy ⋅=   (s.4)

 este adevărată.

Page 145: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 145/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 146

Rezolvare 

( ) xy xy x x y x x y x x =+=+⋅=⋅  

1.7. Se consider ă circuitul logic din figura s.1. Să se analizeze dacă acest circuit estecombinaţional.

U2A

7408

1

23

x0

U3A

7427

12

1312

x2 y0

x1

U1A

7408

1

23

x3

Figura s.1.

Rezolvare  Se constată uşor că numerotarea reţeleiconform regulii 1.1 din curs (pagina 19) nueste posibilă deci vom studia dacă această reţea este combinaţională. Pentru aceasta seintroduce variabila secundar ă xa  şi sestudiază influenţa acestei variabile, cuajutorul tabelului de adevăr, asupra ieşirii y0.În orma construirii tabelului de adevăr seconstată că ieşirea y0 depinde de variabila xa 

şi deci circuitul nu este combinaţional.

U2A

7408

1

23

x0

U3A

7427

12

1312

x2 y0

x1

U1A

7408

1

23

x3

Figura s.2.

A

Bxa

1.8. Să se construiască folosind numai por ţi ŞI-NU (NAND) circuitul logic secvenţial acărui ecuaţie logică a ieşirii este:

12030 x x x x y +=  

Rezolvare 

Folosind teorema De Morgan, obţinem:

12030 x x x x y ⋅=  

inversorul se va construi cu ajutorul unei por ţi ŞI-NU cu toate intr ările legate între ele (seva studia şi exemplul de la pagina 28, figura 1.9 din curs).

1.9. Circuitul obţinut la problema 1.8 reprezintă un arbore boolean? Dacă r ăspunsul esteafirmativ atunci se va face analiza acestui circuit conform metodei descrise în curs la

 pagina 23 din curs.

1.10. Se va întocmi un program în limbajul C++ conform modelului de la pagina 25 din

curs pentru verificarea ecuaţiei obţinute la problema 1.9.

Page 146: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 146/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 147

Seminar 2 

2.1. Se dă circuitul din figura s.3.

x2y0

1

23

1

23

1

23

1

23

1

23

1

23

x3

x0

1

23

x1

1

23

1

23

Figura s.3.

Să se analizeze dacă circuitul este combinaţional şi dacă r ăspunsul este afirmativ să se scrieecuaţia funcţiei de ieşire y0  şi să se realizeze un program pentru verificarea funcţieiobţinute.

Rezolvare 

Circuitul nu poate fi numerotat conform regulii 1.1 din curs. Se trece la analiza circuitului.

Se introduce variabila xa şi se studiază dacă ieşirea depinde de aceasta. Pentru aceasta se

realizează tabelul de adevăr ca în figura s.5.Acest tabel poate fi realizat, pentru a simplifica munca, în Microsoft Excel din  pachetul de programe Microsoft Office. În primele coloane: A, B, C, D, E se introducvariabilele: xa, x3, x2, x1 şi x0. În coloanele F pâna la N inclusiv, rândul doi, se introducformulele:

- coloana F: =IF(NOT(D2 * E2);"1";"0")- coloana G: =IF(NOT(B2 * C2);"1";"0")- coloana H: =IF(NOT(E2 * G2);"1";"0")- coloana I: =IF(G2 * B2;"1";"0")- coloana J: =IF(NOT(F2 * H2);"1";"0")- coloana K: =IF(H2+A2;"1";"0")

- coloana L: =IF(I2 * K2;"1";"0")

x2 y0

1

2

3

1 2  3 

1 3

1 2  3 

1

23

1 2 

x0 

x3  1

23

x1

 

1

23 1 

2  3 

Figura s.4.

a

b

c

d

e

f xa

h

g

1

2

3

4

5

?

Page 147: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 147/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 148

- coloana M: =IF(NOT(J2 * L2);"1";"0")- coloana N: =IF(NOT(L2*M2);"1";"0")

Apoi formulele se extind şi pe celelalte coloane prin tehnica copy-paste.

Figura s.5.

Se observă din tabel că funcţia de ieşire y0 nu depinde de variabila xa şi deci circuitul estecombinaţional.

Pentru a scrie ecuaţia de ieşire se poate determină succesiv:

01 x xa =  

23 x xb =  

0230 x x xbxc ==  

3233 x x xbxd  ==  

02301 x x x x xace ==  

aa x x x x xc f  +=+= 023  

a x x x x x x xdf g +== 023323  

Page 148: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 148/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 149

( ) 02301023323 x x x x x x x x x x x xgeh a+==  

( ) ( ) 023010233230233230 x x x x x x x x x x x x x x x x x x xgh y aa ++==  

Pentru ca funcţia de ieşire nu depinde de variabila xa putem scrie:

023010233230233230 x x x x x x x x x x x x x x x x x y =  

2.2. Se dau funcţiile:1) f4 = P0 + P2 + P3 + P4 + P5 + P6 + P7 + P8 + P9 + P13;2) f4 = P0 + P1 + P2 + P3 + P5 + P7 + P9 + P11 + P12 + P13.

Să se obţină forma minima a acestor funcţii prin metoda tabelelor Karnaugh şi prin metodaQuine Mc Kluskey. Formele minime vor fi verificate cu ajutorul programului următor:

  program vizualizare_clc_4_variabile;

label01,02;

typetstr=string[8];

var termeni:array[0..15] of tstr;y,a,b,c,d,n,m,u:byte;mes:tstr;

 procedure eval_term(a,b,c,d:byte;termeni:tstr;var u:byte);var n,m:byte;

 beginu:=0;

if termeni='' then exit;

m:=pos('a',termeni);if m<>0 then begin

if m<>1 then begin

if termeni[m-1]='/' then begin

if not a = 254 then exit;endelseif a=0 then exit;

end

Page 149: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 149/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 150

elseif a=0 then exit;

end;m:=pos('b',termeni);

if m<>0 then beginif m<>1 then

 beginif termeni[m-1]='/' then

 beginif not b = 254 then exit;

endelseif b=0 then exit;

end

elseif b=0 then exit;

end;m:=pos('c',termeni);if m<>0 then

 beginif m<>1 then

 beginif termeni[m-1]='/' then

 beginif not c = 254 then exit;

endelseif c=0 then exit;

endelseif c=0 then exit;

end;m:=pos('d',termeni);if m<>0 then

 begin

if m<>1 then beginif termeni[m-1]='/' then

 beginif not d = 254 then exit;

endelseif d=0 then exit;

endelseif d=0 then exit;

end;

Page 150: Curs Analiza Si Sinteza Dispozitivelor Numerice

7/12/2019 Curs Analiza Si Sinteza Dispozitivelor Numerice

http://slidepdf.com/reader/full/curs-analiza-si-sinteza-dispozitivelor-numerice 150/150

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 151

u:=1;end;

 begin

02:for a:=0 to 15 dotermeni[a]:='';writeln('Introduceti termenii functiei:');for a:=0 to 15 do

 beginreadln(mes);if mes='' then goto 01;termeni[a]:=mes;end;01:

n:=0;for d:=0 to 1 dofor c:=0 to 1 dofor b:=0 to 1 dofor a:=0 to 1 do

 beginy:=0;for m:=0 to 15 do

 begineval_term(a,b,c,d,termeni[m],u);y:=y or u;end;