02 10 circuite logice counters registers

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: turbosmixer

Post on 09-Sep-2015

237 views

Category:

Documents


5 download

DESCRIPTION

Circuite Logice Counters Registers

TRANSCRIPT

  • Copyright Paul GASNERCopyright Paul GASNER

    2. Circuite logice2. Circuite logice2.10. Numrtoare i 2.10. Numrtoare i

    regitriregitri

  • Copyright Paul GASNERCopyright Paul GASNER 2

    IntroducereIntroducereContoarele sau numrtoarele (counters) sunt circuite secveniale specialeValoarea la ieire este incrementat cu 1 la fiecare tactDup un numr de incrementri, ieirea contorului revine la 0La un contor pe doi bii strile 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

  • Copyright Paul GASNERCopyright Paul GASNER 3

    Counter pe 2 biiCounter pe 2 biiIeirile numrtorului sunt 00, 01, 10 i 11Circuitul are o singur intrare X:

    X=0 la fiecare ciclu ieirea este incrementat cu 1X=1 la fiecare ciclu ieirea este decrementat cu 1

    Sunt 4 stri posibile, deci sunt necesare dou flip-flop

    00 01

    1011

  • Copyright Paul GASNERCopyright Paul GASNER 4

    Diagrama logicDiagrama logicDiagrama logic i tabela de stri 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

  • Copyright Paul GASNERCopyright Paul GASNER 5

    Intrrile n flip-flop tip D i ecuaiiIntrrile n flip-flop tip D i ecuaiiValoarea de intrare este chiar starea urmtoare dorit pentru flip-flopEcuaiile finale se obin 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

  • Copyright Paul GASNERCopyright Paul GASNER 6

    Circuitul finalCircuitul finalQ0' poate fi preluat direct de la ieirea circuitului FFDac Reset=1, contorul numr n mod normalDac Reset=0, contorul trece imediat n starea 00

  • Copyright Paul GASNERCopyright Paul GASNER 7

    Intrrile n flip-flop tip JKIntrrile 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

  • Copyright Paul GASNERCopyright Paul GASNER 8

    Ecuaiile intrrilor n flip-flopsEcuaiile intrrilor n flip-flops

    Se caut ecuaiile pentru cele 4 intrri n FFSe obine:

    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

  • Copyright Paul GASNERCopyright Paul GASNER 9

    Counter cu flip-flop tip JK ni RSCounter cu flip-flop tip JK ni RSni RS intrrile directe RS sunt neinversate, adic active-susDac Reset=0, counterul numr normalDac Reset=1 counterul se reseteaz la 00 imediat

  • Copyright Paul GASNERCopyright Paul GASNER 10

    Stri neutilizateStri neutilizateDe obicei, la 2n stri sunt necesare n FF; uneori exist stri neutilizateDe exemplu, un numrtor 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

  • Copyright Paul GASNERCopyright Paul GASNER 11

    Stri neutilizate...Stri neutilizate...Pentru a obine un circuit ct mai simplu, strile neutilizate se marcheaz ca indiferenteDac circuitul ajunge din ntmplare n una dintre strile neutilizate 110 sau 111, comportamentul su 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

  • Copyright Paul GASNERCopyright Paul GASNER 12

    ...sau utilizate...sau utilizatePentru a obine un o funcionare sigur, trebuie completate explicit i strile indiferenteChiar dac circuitul ajunge din ntmplare ntr-o stare neutilizat, el va trece ntr-o stare utilizatDe exemplu contor cu iniializare

    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

  • Copyright Paul GASNERCopyright Paul GASNER 13

    NumrtoareNumrtoareNumrtor minimal pe 4 bii: numr de la 0000 la 1111 (0 la 15) doar incrementare cu 1 la fiecare cicluNumrtor complet pe 4 bii:

    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 cnd numrtorul trece de valoarea maxim devine 0

  • Copyright Paul GASNERCopyright Paul GASNER 14

    Numrtor pe 8 biiNumrtor pe 8 biiNumrtorul pe 8 bii poate fi obinut din dou numrtoare pe 4 bii

    contorul de jos conine cei 4 bii mai puin semnificativicnd contorul de jos atinge 1111, CO trece n 0 i activeaz cellalt contor timp de o perioad

    Contoarele partajeaz semnalele de ceas i de resetare (clear)Afioarele sunt cifre hexa

  • Copyright Paul GASNERCopyright Paul GASNER 15

    Numrtor pe 4 bii cu limitareNumrtor pe 4 bii cu limitareCnd CO trece n 0, numrtorul este forat s nregistreze valoarea 0110 (D3...D0), dup care trece n regim normal de numrareIntervalul de numrare este 0110 1111

  • Copyright Paul GASNERCopyright Paul GASNER 16

    Numrtor pe 4 bii cu limitareNumrtor pe 4 bii cu limitareCnd numrtorul atinge valoarea 1100, poarta NAND foreaz trecerea la valoarea 0000Intervalul de numrare este 0000 1100

  • Copyright Paul GASNERCopyright Paul GASNER 17

    Numrtoare. ConcluziiNumrtoare. ConcluziiFuncia de baz a numrtorului este de incrementare, dar se pot efectua i alteleToate procesoarele conin un program counter (PC)

    un program const dintr-o list de instruciuniPC este asociat listei de instruciuni i asigur execuia instruciunii curente PC se incrementeaz cu 1 dup execuia fiecrei instruciuni i asigur execuia instruciunii urmtoare

  • Copyright Paul GASNERCopyright Paul GASNER 18

    Regitri. IntroducereRegitri. Introducere

    Circuitele flip-flop sunt limitate la un singur bitStocare de bii multipli se realizeaz cu regitriUtilizarea imediat este stocarea temporar a datelor n procesor

  • Copyright Paul GASNERCopyright Paul GASNER 19

    Componente de bazComponente de bazCea mai simpl modalitate de construcie a unui registru este de a combina mai multe FFExemplu: registru de baz pe 4 bits impementat cu flip-flop D

  • Copyright Paul GASNERCopyright Paul GASNER 20

    Funcia de stocareFuncia de stocareBiii D3...D0 sunt copiai la ieire Q3...Q0 la fiecare ciclu de ceasEste necesar o nou funcie load, activat prin intrarea LD, care:

    LD = 0 registrul pstreaz la ieire valoarea curentLD = 1 registrul stocheaz valoarea de la D3...D0

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

  • Copyright Paul GASNERCopyright Paul GASNER 21

    Implementarea stocrii paraleleImplementarea stocrii 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 pstra starea (valoarea curent) deoarece nu mai exist front cresctor dat de CLKdac LD=0, semnalul CLK ajunge la FF i la fronturile pozitive ele vor stoca valoare D3...D0

  • Copyright Paul GASNERCopyright Paul GASNER 22

    Clock gatingClock gatingAceast implementare se numete 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 ceasntrziere de la poarta ORntr-un circuit complex, semnalul de ceas ajunge la momente de timp diferite la componente amplasate la diferite distanesemnalul de ceas poate fi deformat

  • Copyright Paul GASNERCopyright Paul GASNER 23

    Stocarea paralelStocarea paralelEste preferabil modificarea intrrilor n FF tip D

    dac LD=0, intrrile n FF sunt chiar valorile de la ieire Q3...Q0 i deci valorile stocate se pstreazdac LD=1, intrrile FF sunt D3...D0 i noile valori vor fi ncrcate (stocate)

  • Copyright Paul GASNERCopyright Paul GASNER 24

    Regitri de deplasareRegitri de deplasareUn registru de deplasare (shift register) i deplaseaz biii la ieire la fiecare ciclu de ceas

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

    SI = 1Q0-Q3 = 0110

    urmtoarea 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)

  • Copyright Paul GASNERCopyright Paul GASNER 25

    Direcia de deplasareDirecia de deplasaren acest caz, biii se deplaseaz spre dreapta

    Dac se consider c cel mai semnificativ bit este Q3 iar cel mai puin semnificativ este Q0, registrul execut deplasarea spre stnga

    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

  • Copyright Paul GASNERCopyright Paul GASNER 26

    Registru de deplasare cu ncrcare paralelRegistru de deplasare cu ncrcare paralelLa registrul normal cu ncrcare paralel se modific intrrile n multiplexoare:

    dac LD=0, intrrile n FF sunt SIQ0Q1Q2, deci registrul va executa deplasarea la urmtorul front pozitiv de ceasdac LD=1, intrrile FF sunt D3...D0 i noile valori vor fi ncrcate n registrul de deplasare

  • Copyright Paul GASNERCopyright Paul GASNER 27

    Regitri de deplasare. AplicaiiRegitri de deplasare. AplicaiiConversie serial-paralel la transmisia de date

    de exemplu comunicaia dintre un mouse serial (RS-232 sau USB) i computer

    serial

    computer

  • Copyright Paul GASNERCopyright Paul GASNER 28

    Regitri. AplicaiiRegitri. Aplicaiintr-un procesor, regitrii stocheaz date pentru ALU

    date de intrare pentru ALUrezultate ale calculelor ALU

    Regitrii 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

  • Copyright Paul GASNERCopyright Paul GASNER 29

    Regitri. ConcluziiRegitri. ConcluziiRegitrii sunt dispozitive speciale pentru stocarea de cuvinte pe mai muli bitsVariante:

    stocare paralelregitri de deplasare stnga sau dreaptanumrtoarele !!!

    Au funcii de baz nconversie serial-paralelCPU