2. circuite logice 2.10. numărătoare şigasner/fi2_arhitectura...regiştri de deplasare un...

29
Copyright Paul GASNER Copyright Paul GASNER 2. Circuite logice 2. Circuite logice 2.10. Numărătoare şi 2.10. Numărătoare şi regiştri regiştri

Upload: others

Post on 04-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER

2. Circuite logice2. Circuite logice2.10. Numărătoare şi 2.10. Numărătoare şi

regiştriregiştri

Page 2: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 2

IntroducereIntroducereContoarele sau numărătoarele (counters) sunt circuite secvenţiale specialeValoarea la ieşire este incrementată cu 1 la fiecare tactDupă un număr de incrementări, ieşirea contorului revine la 0La un contor pe doi biţi stările sunt:

Stare curentă Next StateA B A B0 0 0 10 1 1 01 0 1 11 1 0 0

00 01

1011

1

11

1

Page 3: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 3

Counter pe 2 biţiCounter pe 2 biţiIeşirile numărătorului sunt 00, 01, 10 şi 11Circuitul are o singură intrare X:

X=0 – la fiecare ciclu ieşirea este incrementată cu 1X=1 – la fiecare ciclu ieşirea este decrementată cu 1

Sunt 4 stări posibile, deci sunt necesare două flip-flop

00 01

1011

Page 4: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 4

Diagrama logicăDiagrama logicăDiagrama logică şi tabela de stări completă:

00 01

1011

0

0

0

10 1

1

1

Stare curentă Inputs Next StateQ1 Q0 X Q1 Q00 0 0 0 10 0 1 1 10 1 0 1 00 1 1 0 01 0 0 1 11 0 1 0 11 1 0 0 01 1 1 1 0

Page 5: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 5

Intrările în flip-flop tip D şi ecuaţiiIntrările în flip-flop tip D şi ecuaţiiValoarea de intrare este chiar starea următoare dorită pentru flip-flopEcuaţiile finale se obţin după simplificare

Stare curentă Inputs Next StateQ1 Q0 X Q1 Q00 0 0 0 10 0 1 1 10 1 0 1 00 1 1 0 01 0 0 1 11 0 1 0 11 1 0 0 01 1 1 1 0

Q00 1 0 1

Q1 1 0 1 0X

Q01 1 0 0

Q1 1 1 0 0X

D1 = Q1 ⊕ Q0 ⊕ X

D0 = Q0’

Page 6: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 6

Circuitul finalCircuitul finalQ0' poate fi preluat direct de la ieşirea circuitului FFDacă Reset=1, contorul numără în mod normalDacă Reset=0, contorul trece imediat în starea 00

Page 7: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 7

Intrările în flip-flop tip JKIntrările în flip-flop tip JK

Se utilizează tabela de excitareQ(t) Q(t+1) J K

0 0 0 x0 1 1 x1 0 x 11 1 x 0

Stare curentă Inputs Next State Flip flop inputsQ1 Q0 X Q1 Q0 J1 K1 J0 K00 0 0 0 1 0 x 1 x0 0 1 1 1 1 x 1 x0 1 0 1 0 1 x x 10 1 1 0 0 0 x x 11 0 0 1 1 x 0 1 x1 0 1 0 1 x 1 1 x1 1 0 0 0 x 1 x 11 1 1 1 0 x 0 x 1

Page 8: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 8

Ecuaţiile intrărilor în flip-flopsEcuaţiile intrărilor în flip-flops

Se caută ecuaţiile pentru cele 4 intrări în FFSe obţine:

J1 = K1 = Q0' X + Q0 X'J0 = K0 = 1

Stare curentă Inputs Next State Flip flop inputsQ1 Q0 X Q1 Q0 J1 K1 J0 K00 0 0 0 1 0 x 1 x0 0 1 1 1 1 x 1 x0 1 0 1 0 1 x x 10 1 1 0 0 0 x x 11 0 0 1 1 x 0 1 x1 0 1 0 1 x 1 1 x1 1 0 0 0 x 1 x 11 1 1 1 0 x 0 x 1

Page 9: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 9

Counter cu flip-flop tip JK ni RSCounter cu flip-flop tip JK ni RSni RS ↔ intrările directe RS sunt neinversate, adică active-susDacă Reset=0, counterul numără normalDacă Reset=1 counterul se resetează la 00 imediat

Page 10: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 10

Stări neutilizateStări neutilizateDe obicei, la 2n stări sunt necesare n FF; uneori există stări neutilizateDe exemplu, un numărător de la 0(000) la 5(101)

Stare curentă Next StateQ2 Q1 Q0 Q2 Q1 Q00 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 0 0 01 1 0 ? ? ?1 1 1 ? ? ?

001

010

011

100

101

000

Page 11: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 11

Stări neutilizate...Stări neutilizate...Pentru a obţine un circuit cât mai simplu, stările neutilizate se marchează ca indiferenteDacă circuitul ajunge din întâmplare în una dintre stările neutilizate 110 sau 111, comportamentul său depinde de exact ceea ce este înscris în starea indiferentă

001

010

011

100

101

000Stare curentă Next StateQ2 Q1 Q0 Q2 Q1 Q00 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 0 0 01 1 0 x x x1 1 1 x x x

Page 12: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 12

...sau utilizate...sau utilizatePentru a obţine un o funcţionare sigură, trebuie completate explicit şi stările indiferenteChiar dacă circuitul ajunge din întâmplare într-o stare neutilizată, el va trece într-o stare utilizatăDe exemplu contor cu iniţializare

Stare curentă Next StateQ2 Q1 Q0 Q2 Q1 Q00 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 0 0 01 1 0 0 0 01 1 1 0 0 0

001

010

011

100

101

000

111110

Page 13: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 13

NumărătoareNumărătoareNumărător minimal pe 4 biţi: numără de la 0000 la 1111 (0 la 15) – doar incrementare cu 1 la fiecare cicluNumărător complet pe 4 biţi:

incrementare şi decrementare – UP resetare asincronă la 0000 – CLR=0 setare la orice valoare dorită prin D3...D0 şi LD=0 intrare activare activ-jos EN counter out CO – normal 1, iar când numărătorul trece de valoarea maximă devine 0

Page 14: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 14

Numărător pe 8 biţiNumărător pe 8 biţiNumărătorul pe 8 biţi poate fi obţinut din două numărătoare pe 4 biţi

contorul de jos conţine cei 4 biţi mai puţin semnificativicând contorul de jos atinge 1111, CO trece în 0 şi activează celălalt contor timp de o perioadă

Contoarele partajează semnalele de ceas şi de resetare (clear)Afişoarele sunt cifre hexa

Page 15: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 15

Numărător pe 4 biţi cu limitareNumărător pe 4 biţi cu limitareCând CO trece în 0, numărătorul este forţat să înregistreze valoarea 0110 (D3...D0), după care trece în regim normal de numărareIntervalul de numărare este 0110 – 1111

Page 16: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 16

Numărător pe 4 biţi cu limitareNumărător pe 4 biţi cu limitareCând numărătorul atinge valoarea 1100, poarta NAND forţează trecerea la valoarea 0000Intervalul de numărare este 0000 – 1100

Page 17: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 17

Numărătoare. ConcluziiNumărătoare. ConcluziiFuncţia de bază a numărătorului este de incrementare, dar se pot efectua şi alteleToate procesoarele conţin un program counter (PC)

un program constă dintr-o listă de instrucţiuniPC este asociat listei de instrucţiuni şi asigură execuţia instrucţiunii curente PC se incrementează cu 1 după execuţia fiecărei instrucţiuni şi asigură execuţia instrucţiunii următoare

Page 18: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 18

Regiştri. IntroducereRegiştri. Introducere

Circuitele flip-flop sunt limitate la un singur bitStocare de biţi multipli se realizează cu regiştriUtilizarea imediată este stocarea temporară a datelor în procesor

Page 19: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 19

Componente de bazăComponente de bazăCea mai simplă modalitate de construcţie a unui registru este de a combina mai multe FFExemplu: registru de bază pe 4 bits impementat cu flip-flop D

Page 20: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 20

Funcţia de stocareFuncţia de stocareBiţii D3...D0 sunt copiaţi la ieşire Q3...Q0 la fiecare ciclu de ceasEste necesară o nouă funcţie “load”, activată prin intrarea LD, care:

LD = 0 – registrul păstrează la ieşire valoarea curentăLD = 1 – registrul stochează valoarea de la D3...D0

L D Q ( t + 1 )0 Q ( t )1 D 3 - D 0

Page 21: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 21

Implementarea stocării paraleleImplementarea stocării paraleleSe poate insera o poartă pe intrarea de ceas:

dacă LD=1, porturile de activare C ale FF sunt în 1 şi FF îşi vor păstra starea (valoarea curentă) deoarece nu mai există front crescător dat de CLKdacă LD=0, semnalul CLK ajunge la FF şi la fronturile pozitive ele vor stoca valoare D3...D0

Page 22: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 22

Clock gatingClock gatingAceastă implementare se numeşte clock gating, deoarece semnalul de ceas trece printr-o poartă

apare problema de sincronizare de la latch, LD trebuie să fie 1 exact o perioadă de ceasîntârziere de la poarta ORîntr-un circuit complex, semnalul de ceas ajunge la momente de timp diferite la componente amplasate la diferite distanţesemnalul de ceas poate fi deformat

Page 23: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 23

Stocarea paralelăStocarea paralelăEste preferabilă modificarea intrărilor în FF tip D

dacă LD=0, intrările în FF sunt chiar valorile de la ieşire Q3...Q0 şi deci valorile stocate se păstreazădacă LD=1, intrările FF sunt D3...D0 şi noile valori vor fi încărcate (stocate)

Page 24: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 24

Regiştri de deplasareRegiştri de deplasareUn registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare ciclu de ceas

SI este intrarea prin care se încarcă un nou bitDacă la momentul t starea este:

SI = 1Q0-Q3 = 0110

următoarea stare va fiQ0-Q3 = 1011

iar valoarea curentă a lui Q3 se pierde

Q0(t+1)= SIQ1(t+1) = Q0(t)Q2(t+1)= Q1(t)Q3(t+1)= Q2(t)

Page 25: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 25

Direcţia de deplasareDirecţia de deplasareÎn acest caz, biţii se deplasează spre dreapta

Dacă se consideră că cel mai semnificativ bit este Q3 iar cel mai puţin semnificativ este Q0, registrul execută deplasarea spre stânga

Q0(t+1)= SIQ1(t+1) = Q0(t)Q2(t+1)= Q1(t)Q3(t+1)= Q2(t)

Q0...Q3 curent SI Q0...Q3 nextXABCD XABC

Q3...Q0 curent SI Q3...Q0 nextXDCBA CBAX

Page 26: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 26

Registru de deplasare cu încărcare paralelăRegistru de deplasare cu încărcare paralelăLa registrul normal cu încărcare paralelă se modifică intrările în multiplexoare:

dacă LD=0, intrările în FF sunt SIQ0Q1Q2, deci registrul va executa deplasarea la următorul front pozitiv de ceasdacă LD=1, intrările FF sunt D3...D0 şi noile valori vor fi încărcate în registrul de deplasare

Page 27: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 27

Regiştri de deplasare. AplicaţiiRegiştri de deplasare. AplicaţiiConversie serial-paralel la transmisia de date

de exemplu comunicaţia dintre un mouse serial (RS-232 sau USB) şi computer

serial

computer

Page 28: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 28

Regiştri. AplicaţiiRegiştri. AplicaţiiÎntr-un procesor, regiştrii stochează date pentru ALU

date de intrare pentru ALUrezultate ale calculelor ALU

Regiştrii nu sunt RAM şi ocupă suprafaţă foarte mare din chipCache L1 şi L2 sunt RAM foarte rapid

CPU GPR's Size L1 Cache L2 CachePentium 4 8 32 bi ts 8 KB 512 KBAthlon XP 8 32 bi ts 64 KB 512 KBAthlon 64 16 64 bi ts 64 KB 1024 KBPowerPC 970 (G5) 32 64 bi ts 64 KB 512 KBItanium 2 128 64 bi ts 16 KB 256 KBMIPS R14000 32 64 bi ts 32 KB 16 MB

Page 29: 2. Circuite logice 2.10. Numărătoare şigasner/FI2_Arhitectura...Regiştri de deplasare Un registru de deplasare (shift register) îşi „deplasează” biţii la ieşire la fiecare

Copyright Paul GASNERCopyright Paul GASNER 29

Regiştri. ConcluziiRegiştri. ConcluziiRegiştrii sunt dispozitive speciale pentru stocarea de cuvinte pe mai mulţi bitsVariante:

stocare paralelăregiştri de deplasare stânga sau dreaptanumărătoarele !!!

Au funcţii de bază înconversie serial-paralelCPU