Copyright Paul GASNERCopyright Paul GASNER
2. Circuite logice2. Circuite logice2.8. Circuite l2.8. Circuite latch şi atch şi
flip-flopflip-flop
Copyright Paul GASNERCopyright Paul GASNER 2
Circuite combinaţionale Circuite combinaţionale
Într-un circuit combinaţional, aplicarea aceloraşi valori la intrări va conduce mereu la aceleaşi valori la ieşireCircuitele combinaţionale se comportă ca circuite de funcţii (valoarea unei funcţii are un unic corespondent la o valoare dată a mărimilor de intrare)
Circuit CombinaţionalInputs Outputs
Copyright Paul GASNERCopyright Paul GASNER 3
Circuite secvenţiale Circuite secvenţiale
Un circuit secvenţial prezintă o reacţie a ieşirii la intrareIeşirile unui circuit secvenţial depind nu numai de inputs, ci şi de starea sistemului (sau de conţinutul unui circuit de memorie)La aceeaşi stare a intrărilor sunt posibile valori diferite la ieşiriConţinutul memoriei se modifică în timpul funcţionării circuitului
Circuit combinaţional
Inputs
Memorie
Outputs
Copyright Paul GASNERCopyright Paul GASNER 4
MemoriaMemoriaCircuitul de memorie ar trebui să prezinte cel puţin trei proprietăţi
să fie capabilă să stocheze o valoaresă permită citirea valorii stocatesă permită scrierea valorii stocate
De exemplu, memoria de 1 bit:să fie capabilă să stocheze valorile 0 şi 1să permită citirea valorii bitului stocat (0 sau 1)să permită modificarea valorii bitului stocat; sunt posibile două operaţiuni:
set – se scrie valoarea 1reset sau clear – se scrie valoarea 0
Copyright Paul GASNERCopyright Paul GASNER 5
StocareaStocareaIdeea este de a forma o buclă astfel încât ieşirea să ajungă la intrareDe exemplu:
Q este stocat, valoarea sa nu se schimbă niciodată (analog Q')Q poate fi citită prin ataşarea unei sonde sau altui circuitQ nu poate fi modificată – nu există intrări externe pentru circuit şi deci nu putem controla valoarea lui Q, adică Q=0 sau Q=1
Copyright Paul GASNERCopyright Paul GASNER 6
SR latchSR latchCele două intrări R şi S permit modificarea ieşirilor Q şi Q'
Q şi Q' sunt în acelaşi timp intrări şi ieşiriQ şi Q' depind atât de valorile intrărilor R şi S, cât şi de valorile curente Q şi Q'
Qnext = (R + Q'curent)'Q'next = (S + Qcurent)'
Copyright Paul GASNERCopyright Paul GASNER 7
SR = 00 – stocareSR = 00 – stocare
Qnext = (0 + Q'curent)' = Qcurent
Q'next = (0 + Qcurrent)' = Q'curent
Valoarea Q se păstrează, este stocată în circuit dacă R=0 şi S=0
Copyright Paul GASNERCopyright Paul GASNER 8
SR = 10 – setareSR = 10 – setare
Q'next = (1 + Qcurent)' = 0, Q∀ curent
Qnext = (0 + 0)’ = 1
Dacă R=1 şi S=0 atunci Q'next=0 şi Qnext=1S se numeşte port de set – setează latch-ul la 1Există o anumită întârziere în stabilirea echilibrului, dar din momentul în care Qnext=1, starea sistemului nu se mai modifică – stare stabilă
Copyright Paul GASNERCopyright Paul GASNER 9
Diagrame temporaleDiagrame temporaleComportarea unui circuit latch la aplicarea
unui input SR=10:
Qnext = (R + Q'curent)'Q'next = (S + Qcurent)'
S
R
Q
Q’
0 1 2 3 4
0. presupunem iniţial că Q = 0 şi Q' = 1
1. deoarece S = 1, Q' trece din 1 în 0 – linia verticală descrescătoare
2. după un alt timp de răspuns, deoarece R = 0 şi Q' = 0, Q trece în 1 (oricaare ar fi fost starea sa anterioară)
3. Q = 1 S = 1 → Q' = 0, circuitul rămâne stabil în această stare până la schimbarea RS
Copyright Paul GASNERCopyright Paul GASNER 10
SR = 01 – resetareSR = 01 – resetare
Qnext = (1 + Q'curent)' = 0, Q'∀ curent
Q'next = (0 + 0)’ = 1
Dacă R=0 şi S=1 atunci Q'next= 1 şi Qnext= 0R se numeşte port de reset sau clear – resetează latch-ul la 0Starea este stabilă
Copyright Paul GASNERCopyright Paul GASNER 11
Circuitul SR ca memorieCircuitul SR ca memorieSunt îndeplinite condiţiile unei memorii: se poate seta circuitul, reseta şi citi valoarea memoratăIeşirea Q reprezintă data stocată în latch. Este numită şi starea circuitului RS
Tabela de stări explică dependenţa valorilor ieşirilor Q şi Q' de valorile curente şi ale intrărilor R şi S
S R Q0 0 No change0 1 0 (reset)1 0 1 (set)
Inputs Current NextS R Q Q’ Q Q’0 0 0 1 0 10 0 1 0 1 00 1 0 1 0 10 1 1 0 0 11 0 0 1 1 01 0 1 0 1 0
Copyright Paul GASNERCopyright Paul GASNER 12
Circuitul SR – circuit secvenţialCircuitul SR – circuit secvenţial
Dacă RS = 00, valoarea ieşirii Q poate fi 0 sau 1, în funcţie de valoarea precedentă a QLa ieşire deci se pot găsi valori diferite la aceeaşi valori la intrare, fapt care nu are loc la circuitele combinaţionale
S R Q0 0 No change0 1 0 (reset)1 0 1 (set)
Inputs Current NextS R Q Q’ Q Q’0 0 0 1 0 10 0 1 0 1 00 1 0 1 0 10 1 1 0 0 11 0 0 1 1 01 0 1 0 1 0
Copyright Paul GASNERCopyright Paul GASNER 13
RS = 11RS = 11Ambele ieşiri, Q şi Q' devin 0!!!Dacă S = 0 şi R = 0 simultan:
Qnext = (0 + 0)' = 1Q'next = (0 + 0)' = 1
aceste valori revin la intrarea în porţile NOR şi atunci:
Qnext = (0 + 1)' = 0Q'next = (0 + 1)' = 0
Circuitul intră într-o buclă infinită şi Q, Q' trec din 1 în 0 şi inversNiciodată nu se setează SR=11!
Qnext = (R + Q’current)’Q’next = (S + Qcurrent)’
0
0
0
0
0
0
1
1
Copyright Paul GASNERCopyright Paul GASNER 14
Latch S'R'Latch S'R'Există mai multe variante de circuite SRDacă se utilizează porţi NAND atunci
Faţă de circuitul SR se inversează ieşirile
S’ R’ Q1 1 No change1 0 0 (reset)0 1 1 (set)0 0 Interzis
Copyright Paul GASNERCopyright Paul GASNER 15
Latch SR cu intrare de controlLatch SR cu intrare de control
Este format dinLatch S'R'Porţi NAND adiţionale pentru a genera valori corecte pentru S şi R
Intrarea de control C are comportamentul unei funcţii enable
C S R S’ R’ Q0 x x 1 1 No change1 0 0 1 1 No change1 0 1 1 0 0 (reset)1 1 0 0 1 1 (set)1 1 1 0 0 Interzis!
Copyright Paul GASNERCopyright Paul GASNER 16
Latch DLatch D
Este format dinLatch S'R'Porţi adiţionale cu intrările D – data şi C - control
Pentru C = 0, R' = S' = 1 şi Q rămâne neschimbatPentru C = 1, Q = DNu există combinaţii interzise la intrare
C D Q0 x No change1 0 01 1 1
Copyright Paul GASNERCopyright Paul GASNER 17
Diagrama de stăriDiagrama de stăriCircuitele logice pot fi exprimate prin expresii booleene sau tabele de adevăr (vezi circuite combinaţionale). Circuitele secvenţiale pot utiliza şi diagrame de stări
Pentru un latch D:fiecare stare este reprezentată printr-un nodsăgeţi “inputs/outputs” pentru marcarea trecerilor dintr-o stare în alta
0x/0 0x/1
Q=0 Q=111/1
10/0
Copyright Paul GASNERCopyright Paul GASNER 18
Utilizări ale circuitelor latchUtilizări ale circuitelor latchPot fi utilizate ca memorii pentru ALU
Presupunem ca memoria conţine o valoare pe care dorim să o incrementăm:
ALU citeşte valoarea din latchaplică operaţia G = X + 1valoarea incrementată este restocată în latchvaloarea din latch nu trebuie incrementată din nou, stoparea buclei realizându-se prin dezactivarea latch-ului
+1ALU
SX
G
Latch DD
QC
Copyright Paul GASNERCopyright Paul GASNER 19
Utilizări ale circuitelor latchUtilizări ale circuitelor latch
Apar probleme chiar la întreruperea ciclului, deoarece nu se cunoaşte cât timp trebuie activat circuitul latch
operaţii diferite în ALU au timpi de execuţie diferiţidiverse implementări produc timpi de răspuns diferiţi
+1ALU
SX
G
Latch DD
QC
Copyright Paul GASNERCopyright Paul GASNER 20
Circuite latch. ConcluziiCircuite latch. Concluzii
Circuitele secvenţiale prezintă memorieCircuitele secvenţiale răspund în mod diferit la aceleaşi stări ale intrărilor, funcţie de starea curentăMemoriile pot fi create utilizând circuite cu feedback
circuitele latch sunt cele mai simple memorii, stocând valori pe 1 biteste dificil de controlat timpul de activare pentru latch-uri într-un circuit de dimensiuni mari
Copyright Paul GASNERCopyright Paul GASNER 21
Cerinţe pentru circuitele latchCerinţe pentru circuitele latchPentru a putea fi utilizat corect este nevoie ca un circuit latch să fie capabil:
să fie dezactivat până când o nouă valoare este pregătită pentru stocaresă fie activat suficient timp ca noua valoare să fie stocată
Apar următoarele întrebări:când este gata noua valoare?
se adaugă un nou semnal la circuit; când semnalul trece în valoarea 1, memoria va şti că ALU a calculat noua valoare şi aceasta este pregătită pentru stocare
cum se poate activa şi apoi rapid dezactiva latch-ul?prin combinaţii de circuite latch – circuite flip-flop
Copyright Paul GASNERCopyright Paul GASNER 22
Sincronizare şi semnal de ceasSincronizare şi semnal de ceasUn ceas (clock) este un dispozitiv special care le ieşire prezintă alternativ 1 şi 0
Ceasurile sunt utilizate pentru a sincroniza circuitelegenerează semnale repetitive, predictibile de 1 şi 0 şi pot comanda (triggera) anumite evenimente în circuit – de exemplu scrierea unui latchdacă mai multe circuite folosesc acelaşi semnal de ceas, acestea îşi pot sincroniza acţiunile
perioadă
Copyright Paul GASNERCopyright Paul GASNER 23
Sincronizare şi semnal de ceasSincronizare şi semnal de ceasSe poate sincroniza latch-ul cu ALU
semnalul de ceas este conectat la intrarea de control Ccând semnalul de ceas devine 1, latch-ul este activat pentru scriere
Perioada ceasului trebuie să fie convenabilă ALUdacă e prea mică, latch-ul este activat înainte ca datele de ieşire din ALU să fie calculatedacă e prea mare, ALU poate produce un nou rezultat care va fi stocat accidental în memorie
+1ALU
SX
G
LatchD
QC
Copyright Paul GASNERCopyright Paul GASNER 24
Flip-flop DFlip-flop D
Circuitul flip-flop are două componente principale:latch D – masterlatch SR – slave
Intrarea de date D este conectată direct la intrarea D masterIeşirile latch-ului master sunt conectate la intrările slaveIeşirile flip-flop sunt chiar ieşirile latch-ului SR
Copyright Paul GASNERCopyright Paul GASNER 25
Flip-flop D. C = 0Flip-flop D. C = 0
Intrarea de control C a circuitului flip-flop activează fie circuitul D, fie SRDacă C = 0
latch-ul master este activat iar ieşirea acestuia urmăreşte modificările la intrarea D a flip-floplatch-ul slave este dezactivat şi ieşirea latch-ului master nu îi modifică starea – starea circuitului flip-flop se conservă
Copyright Paul GASNERCopyright Paul GASNER 26
Flip-flop D. C = 1Flip-flop D. C = 1
Când C devine 1:master este dezactivat iar la ieşirea sa se va afla ultima valoare la intrarea D înainte ca C = 1; modificările lui D nu schimbă nimic în starea circuitului masterslave este activat şi starea sa este dată de ieşirea latch-ului master, adică de ultima valoare la intrarea D înainte ca C = 1
Circuitul se numeşte flip-flop cu triggerare pozitivăieşirea flip-flop Q se modifică pe frontul pozitiv de ceasvaloarea stocată este valoarea la intrarea D exact în momentul apariţiei frontului pozitiv de tact
Copyright Paul GASNERCopyright Paul GASNER 27
Intrări directeIntrări directeCare este valoarea de start pentru Q?
Se poate seta valoarea iniţială sincron la următorul front pozitiv, dar circuitul devine complicatDe obicei se utilizează intrări directe, asincrone, care permit setarea sau resetarea flip-flop-urilor
circuitul se resetează o singură dată, la iniţializaredupă iniţializare, circuitul se comportă normal, sincron
S’ R’ C D Q0 0 x x Interzis0 1 x x 1 (set)1 0 x x 0 (reset)1 1 0 x No change1 1 1 0 0 (reset)1 1 1 1 1 (set)
Flip-flop D cu intrare directă activ-jos
intrări directe de iniţializare
operarea normală a circuitului flip-flop : R'S' = 11
Copyright Paul GASNERCopyright Paul GASNER 28
ExempluExempluSe iniţializează flip-flop la 0000
Pe durata unui ciclu de ceas, ALU calculează valoarea 0001, dar care nu este încă stocată în memorie
+1ALU
SX
G
Flip-flopsD
QC
0000
C
Q0
G0
+1ALU
SX
G
Flip-flopsD
QC
00000001
C
Q0
G0
Copyright Paul GASNERCopyright Paul GASNER 29
ExempluExempluIeşirea ALU este copiată în memorie la primul front pozitiv de ceas
Circuitul flip-flop se „autoblochează” imediat şi nu se poate scrie decât la următorul front pozitiv, chiar dacă ALU produce o nouă valoare
+1ALU
SX
G
Flip-flopsD
QC
00010001
C
Q0
G0
+1ALU
SX
G
Flip-flopsD
QC
00010010
C
Q0
G0
Copyright Paul GASNERCopyright Paul GASNER 30
Variante flip-flopVariante flip-flopFlip-flop JK: intrările au acelaşi rol ca S şi R, dar combinaţia JK = 11 serveşte la complementarea stării curente
Flip-flop T: poate doar să menţină sau să complementeze starea curentă
C J K Qnext
0 x x No change1 0 0 No change1 0 1 0 (reset)1 1 0 1 (set)1 1 1 Q’current
C T Qnext
0 x No change1 0 No change1 1 Q’current
Copyright Paul GASNERCopyright Paul GASNER 31
Tabele caracteristiceTabele caracteristiceArată starea următoare Q(t+1) în funcţie de starea curentă Q(t) şi starea intrărilorDin motive de simplitate, intrarea de control C nu este inclusă în tabelNu este indicat modul de operare, de exemplu comportamentul la frontul pozitiv al circuitului flip-flop
D Q(t+1) Operaţie0 0 Reset1 1 Set
J K Q(t+1) Operaţie0 0 Q(t) No change0 1 0 Reset1 0 1 Set1 1 Q’(t) Complement
T Q(t+1) Operaţie0 Q(t) No change1 Q’(t) Complement
Copyright Paul GASNERCopyright Paul GASNER 32
Ecuaţii caracteristiceEcuaţii caracteristiceD Q(t+1) Operaţie0 0 Reset1 1 Set
J K Q(t+1) Operaţie0 0 Q(t) No change0 1 0 Reset1 0 1 Set1 1 Q’(t) Complement
T Q(t+1) Operaţie0 Q(t) No change1 Q’(t) Complement
Q(t+1) = D
Q(t+1) = K’Q(t) + JQ’(t)
Q(t+1) = T’Q(t) + TQ’(t)= T ⊕ Q(t)
Copyright Paul GASNERCopyright Paul GASNER 33
Diagrame flip-flopDiagrame flip-flopLa un flip-flop JK, la primul front crescător al semnalului de ceas, J=1, K=1 şi Q(1) = 1Starea următoare poate fi determinată Q(2) = Q(1)’Q(2) apare imediat după primul front pozitiv al semnalului de ceas şi nu se modifică până la următorul
C
J
K
Q
1 2 3 4
Valorile la prima perioadă a ceasului...
C
J
K
Q
1 2 3 4
… determină starea următoare Q
Copyright Paul GASNERCopyright Paul GASNER 34
Diagrame flip-flopDiagrame flip-flopÎn mod identic, valorile J, K şi Q de la al doilea ciclu determină starea Q la al treilea ciclu
C
J
K
Q
1 2 3 4C
J
K
Q
1 2 3 4
Copyright Paul GASNERCopyright Paul GASNER 35
Triggerare pe front pozitivTriggerare pe front pozitiv
Ieşirile circuitelor flip-flop sunt afectate numai de valorile de intrare în momentul apariţiei frontului pozitiv la semnalul de tact
K se modifică rapid pe durata celui de-al doilea cicluQ trece în 0 doar la frontul 3, când K=1, J=0 şi Q=1
C
J
K
Q
1 2 3 4
Copyright Paul GASNERCopyright Paul GASNER 36
ConcluziiConcluzii
Pentru a putea utiliza memoriile în circuite mari trebuie:
dezactivat latch-ul până când noua dată este pregătită pentru a fi stocatăactivat latch-ul doar pe durata necesară scrierii
Sincronizarea circuitelor se realizează cu un semnal de ceas, a cărui perioadă este legată de durata operaţiilorCircuitele flip-flop pot fi scrise doar pe durata frontului pozitiv al semnalului de ceas
memoria se scrie doar o singură dată per cicluexistă mai multe variante de circuite flip-flop
Top Related