Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Copyright Paul GASNERCopyright Paul GASNER
2. Circuite logice2. Circuite logice2.9. Analiza şi proiectarea 2.9. Analiza şi proiectarea
circuitelor secvenţialecircuitelor secvenţiale
Copyright Paul GASNERCopyright Paul GASNER 2
Descrierea circuitelor secvenţiale Descrierea circuitelor secvenţiale
Un circuit secvenţial poate fi descris prin:tabela de stări – prezintă intrările, ieşirile şi modificările de stare la un circuitdiagrama logică (de stări) – aceleaşi informaţii prezentate într-o altă formă
Circuit combinaţional
Inputs
Memorie
Outputs
Copyright Paul GASNERCopyright Paul GASNER 3
ExempluExempluFie un circuit secvenţial cu două flip-flop JKCele două valori ale circuitelor JK – Q1Q0 – formează starea (sau memoria) circuituluiIeşirile circuitelor flip-flop sunt aduse la intrare prin intermediul unor porţi logiceDatele circulă ca în diagrama alăturată
Circuit combinaţional
Inputs
Memorie
OutputsX Z
Q0Q1
Copyright Paul GASNERCopyright Paul GASNER 4
Tabela de stăriTabela de stăriTrebuie completat următorul tabelStarea actuală şi intrările determină starea următoare şi ieşirile
Stare actuală Inputs Stare următoare OutputsQ1 Q0 X Q1 Q0 Z0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
Copyright Paul GASNERCopyright Paul GASNER 5
Tabela de stăriTabela de stări
Din schemă se observă căZ = Q1 Q0 X
În acest moment la ieşire:
Stare actuală Inputs Stare următoare OutputsQ1 Q0 X Q1 Q0 Z0 0 0 00 0 1 00 1 0 00 1 1 01 0 0 01 0 1 01 1 0 01 1 1 1
Copyright Paul GASNERCopyright Paul GASNER 6
Completarea tabelei de stăriCompletarea tabelei de stăriGăsirea celorlalte coloane din tabela de stări este mai dificilă. Se parcurg următoarele etape:
1. Se caută expresiile booleene pentru intrările în circuitele flip-flop
2. Utilizând expresiile precedente se găsesc valorile reale la intrarea circuitelor pentru orice combinaţie posibilă a stărilor actuale şi intrărilor
3. Se utilizează ecuaţiile sau tabelele caracteristice pentru determinarea stărilor următoare în funcţie de stările actuale şi valorile intrărilor ale flip-flop
Copyright Paul GASNERCopyright Paul GASNER 7
1. Ecuaţii de intrare în flip-flop1. Ecuaţii de intrare în flip-flopEcuaţiile de intrare sunt:
J1 = X’ Q0
K1 = X + Q0
J0 = X + Q1
K0 = X’
Copyright Paul GASNERCopyright Paul GASNER 8
2. Flip-flop inputs2. Flip-flop inputsUtilizând ecuaţiile de intrare de la pasul 1 se completează coloanele cu intrările în circuitele flip-flop
J1 = X’ Q0 J0 = X + Q1K1 = X + Q0 K0 = X’
Starea presentă Inputs Flip-flop InputsQ1 Q0 X J1 K1 J0 K00 0 0 0 0 0 10 0 1 0 1 1 00 1 0 1 1 0 10 1 1 0 1 1 01 0 0 0 0 1 11 0 1 0 1 1 01 1 0 1 1 1 11 1 1 0 1 1 0
Copyright Paul GASNERCopyright Paul GASNER 9
3. Stările următoare3. Stările următoareSe utilizează tabelele sau ecuaţiile caracteristice ale circuitelor flip-flop JK pentru a găsi starea următoare a fiecărui flip-flop în funcţie de starea prezentă şi inputsEcuaţiile caracteristice pentru cele două circuite flip-flop JK sunt:
Q1(t+1) = K1’Q1(t) + J1Q1’(t) Q0(t+1) = K0’Q0(t) + J0Q0’(t)
Starea următoare poate fi determinată şi din combinaţiile input – stare curentă direct din tabela caracteristică
J K Q(t+1) Operaţie0 0 Q(t) No change0 1 0 Reset1 0 1 Set1 1 Q’(t) Complement
Copyright Paul GASNERCopyright Paul GASNER 10
3. Stările următoare3. Stările următoareStările următoare vor fi date prin ecuaţiile:
Q1(t+1) = K1’Q1(t) + J1Q1’(t) Q0(t+1) = K0’Q0(t) + J0Q0’(t)
Stare presentă Inputs FF Inputs Next StateQ1 Q0 X J1 K1 J0 K0 Q1 Q00 0 0 0 0 0 1 0 00 0 1 0 1 1 0 0 10 1 0 1 1 0 1 1 00 1 1 0 1 1 0 0 11 0 0 0 0 1 1 1 11 0 1 0 1 1 0 0 11 1 0 1 1 1 1 0 01 1 1 0 1 1 0 0 1
Copyright Paul GASNERCopyright Paul GASNER 11
Tabela completă de stăriTabela completă de stăriStare prezentă şi Inputs determină FF Inputs Stare prezentă FF Inputs determină Next State, utilizând tabelele caracteristice ale flip-flopStare prezentă şi Inputs determină OutputsStare Prezentă Inputs FF Inputs Next State Outputs
Q1 Q0 X J1 K1 J0 K0 Q1 Q0 Z0 0 0 0 0 0 1 0 0 00 0 1 0 1 1 0 0 1 00 1 0 1 1 0 1 1 0 00 1 1 0 1 1 0 0 1 01 0 0 0 0 1 1 1 1 01 0 1 0 1 1 0 0 1 01 1 0 1 1 1 1 0 0 01 1 1 0 1 1 0 0 1 1
Copyright Paul GASNERCopyright Paul GASNER 12
Diagrame logice (de stări)Diagrame logice (de stări)Diagrama de stări corespunzătoare tabelei de stări:
00 01
1011
1/0
0/00/0
0/0
0/0 1/0
1/01/1
input output
state
Stare prezentă Inputs Next State OutputsQ1 Q0 X Q1 Q0 Z0 0 0 0 0 00 0 1 0 1 00 1 0 1 0 00 1 1 0 1 01 0 0 1 1 01 0 1 0 1 01 1 0 0 0 01 1 1 0 1 1
Copyright Paul GASNERCopyright Paul GASNER 13
Mărimea diagramelor logiceMărimea diagramelor logicen circuite flip-flop => 2n nodurim inputs => 2m săgeţi care pleacă din noduri
În exemplul nostru:2 flip-flops => 4 stări sau nodurio singură intrare => din fiecare nod pleacă 2 săgeţi
00 01
1011
1/0
0/00/0
0/0
0/0 1/0
1/01/1
Stare prezentă Inputs Next State OutputsQ1 Q0 X Q1 Q0 Z0 0 0 0 0 00 0 1 0 1 00 1 0 1 0 00 1 1 0 1 01 0 0 1 1 01 0 1 0 1 01 1 0 0 0 01 1 1 0 1 1
Copyright Paul GASNERCopyright Paul GASNER 14
Analiza circuitelor secvenţiale. ConcluziiAnaliza circuitelor secvenţiale. ConcluziiEtapele parcurse în analiza circuitelor secvenţiale
se găsesc expresiile booleene ale ieşirilor circuitului şi intrările în circuitele flip-floputilizând expresiile de mai sus se completează coloanele outputs şi intrările flip-flop-urilor în tabela de stări a circuituluiutilizând tabelele caracteristice sau ecuaţiile caracteristice ale circuitelor flip-flop se completează coloana cu stări următoare din tabela circuitului
Copyright Paul GASNERCopyright Paul GASNER 15
Proiectarea circuitelor secvenţialeProiectarea circuitelor secvenţiale
Proiectarea circuitelor secvenţiale presupune parcurgerea a două mari etape:
Construirea tabelelor de stări sau a diagramelor de stări pentru a exprima modalitatea de calculPe baza tabelelor sau diagramelor de stări se concepe circuitul logic
Copyright Paul GASNERCopyright Paul GASNER 16
Detectoare de coduriDetectoare de coduriDetectorul de coduri sau detectorul de secvenţe este un dispozitiv capabil să recunoască o anumită secvenţă de bits (pattern) la intrare
o singură intrare X şi se tratează un singur bit pe ciclu de semnal ceaso singură ieşire Z care are valoarea 1 când secvenţa dorită este detectată la intrare
Exemplu: să se detecteze secvenţa 1001:Inputs: 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 … Outputs: 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 …
Este necesară prezenţa unui circuit secvenţial deoarece detectorul trebuie să stocheze biţii de la precedentele cicluri în scopul recunoaşterii secvenţei dorite
Copyright Paul GASNERCopyright Paul GASNER 17
Proiectarea circuitelor secvenţialeProiectarea circuitelor secvenţiale
Etapa 1. Crearea tabelei de stări a problemeiEtapa 2. Se asociază codul binar la tabela de stări. Dacă sunt n stări, atunci codul binar va avea cel puţin log2 n iar circuitul va avea cel puţin log2 n flip-flopsEtapa 3. Pentru fiecare flip-flop şi pentru fiecare linie din tabela de stări se găsesc valorile la intrările flip-flop-urilor necesare calculării stării următoare din starea curentăEtapa 4. Se simplifică ecuaţiile pentru intrările şi ieşirile flip-flop-urilorEtapa 5. Se construieşte circuitul
Copyright Paul GASNERCopyright Paul GASNER 18
Etapa 1. Construcţia tabelei de stăriEtapa 1. Construcţia tabelei de stări
Este etapa cea mai dificilă; din momentul în care tabela de stări este construită, restul procesului de proiectare este acelaşi la toate circuitele secvenţialeTabela de stări se bazează pe cerinţele problemei concrete; trebuie prezentate stările curente, intrările, stările următoare şi ieşirileEste posibil uneori ca diagrama de stări să se obţină mai uşor decât tabela de stări
Copyright Paul GASNERCopyright Paul GASNER 19
1. Construcţia diagramei logice1. Construcţia diagramei logiceStări necesare detectorului:
memorarea valorilor la intrare de la ciclurile de ceas precedenterecunoaşterea secvenţei dorite – de exemplu, dacă biţii precedenţi au fost 100 şi cel curent este 1, ieşirea circuitului să treacă în 1se memorează doar părţi ale secvenţei căutate – de exemplu 1, 10 şi 100
A B C D1/0 0/0 0/0
A Secvenţa căutată (1001) nu a fost încă găsităB A apărut primul bit (1) al secvenţeiC Au apărut primii doi bits (10) ai secvenţeiD au apărut primii trei bits (100) ai secvenţei
Copyright Paul GASNERCopyright Paul GASNER 20
1. Suprapunere de secvenţe1. Suprapunere de secvenţeCe se întâmplă dacă, fiind în starea D (biţii precedenţi au fost 100), la intrare apare 1?
ieşirea circuitului trebuie să devină 1intrarea 1 curentă poate fi începutul unei noi secvenţe – de exemplu 1001001 conţine două secvenţe 1001pentru a detecta suprapunerea de secvenţe trebuie ca starea următoare să fie B
A Secvenţa căutată (1001) nu a fost încă găsităB A apărut primul bit (1) al secvenţeiC Au apărut primii doi bits (10) ai secvenţeiD au apărut primii trei bits (100) ai secvenţei
A B C D1/0 0/0 0/0
1/1
Copyright Paul GASNERCopyright Paul GASNER 21
1. Completarea diagramei logice1. Completarea diagramei logiceÎn fiecare stare intrarea este X=0 şi X=1
A Secvenţa căutată (1001) nu a fost încă găsităB A apărut primul bit (1) al secvenţeiC Au apărut primii doi bits (10) ai secvenţeiD au apărut primii trei bits (100) ai secvenţei
A B C D1/0 0/0 0/0
1/1
0/0
0/0
1/0
1/0
Copyright Paul GASNERCopyright Paul GASNER 22
1. Completarea diagramei logice1. Completarea diagramei logice
A B C D1/0 0/0 0/0
1/1
0/0
0/0
1/0
1/0
Starecurentă Input Next
State Output
A 0 A 0A 1 B 0B 0 C 0B 1 B 0C 0 D 0C 1 B 0D 0 A 0D 1 B 1
Copyright Paul GASNERCopyright Paul GASNER 23
Etapa 2. Asocierea codului binar cu stărileEtapa 2. Asocierea codului binar cu stărileSunt necesare două flip-flop-uri Q1Q0Cea mai simplă asociere este: starea A cu Q1Q0=00, starea B cu Q1Q0=01, starea C cu Q1Q0=10 şi starea D cu Q1Q0=11Asocierea codului binar are un foarte mare impact asupra complexităţii circuitului
Starecurentă Input Next
State Output
Q1 Q0 X Q1 Q0 Z0 0 0 0 0 00 0 1 0 1 00 1 0 1 0 00 1 1 0 1 01 0 0 1 1 01 0 1 0 1 01 1 0 0 0 01 1 1 0 1 1
Starecurentă Input Next
State Output
A 0 A 0A 1 B 0B 0 C 0B 1 B 0C 0 D 0C 1 B 0D 0 A 0D 1 B 1
Copyright Paul GASNERCopyright Paul GASNER 24
Etapa 3. Stabilirea intrărilor în flip-flopsEtapa 3. Stabilirea intrărilor în flip-flopsSe utilizează două flip-flop JKPentru fiecare flip-flop, în funcţie de stările curente şi cele următoare, se determină valorile la intrare J şi K pentru a obţine tranziţia cerută
Stareprezentă Input Next
State Flip flop inputs Output
Q1 Q0 X Q1 Q0 J1 K1 J0 K0 Z0 0 0 0 0 00 0 1 0 1 00 1 0 1 0 00 1 1 0 1 01 0 0 1 1 01 0 1 0 1 01 1 0 0 0 01 1 1 0 1 1
Copyright Paul GASNERCopyright Paul GASNER 25
3. Stabilirea intrărilor în flip-flop JK3. Stabilirea intrărilor în flip-flop JKTabela caracteristică este:
Pentru a trece JK din 0 în 1 există două posibilităţi:JK = 10 (set) – explicit 1JK = 11 (complement) – complementarea lui 0
Deci trecerea din 0 în 1 se face impunând K = 1, indiferent de valoarea intrării JÎn mod similar, orice tranziţie poate fi realizată pe două căi
J K Q(t+1) Operaţie0 0 Q(t) No change0 1 0 Reset1 0 1 Set1 1 Q’(t) Complement
Copyright Paul GASNERCopyright Paul GASNER 26
3. Tabela de excitare a flip-flop JK3. Tabela de excitare a flip-flop JK
Tabela de excitare prezintă intrările în flip-flop necesare unei tranziţii de stări dorite
Este „inversul” tabelei caracteristice
Q(t) Q(t+1) J K Operaţie0 0 0 x No change/reset0 1 1 x Set/complement1 0 x 1 Reset/complement1 1 x 0 No change/set
Copyright Paul GASNERCopyright Paul GASNER 27
Tabele de excitare. ExempleTabele de excitare. Exemple
Q(t) Q(t+1) J K Operaţie0 0 0 x No change/reset0 1 1 x Set/complement1 0 x 1 Reset/complement1 1 x 0 No change/set
Q(t) Q(t+1) D Operaţie0 0 0 Reset0 1 1 Set1 0 0 Reset1 1 1 Set
Q(t) Q(t+1) T Operaţie0 0 0 No change0 1 1 Complement1 0 1 Complement1 1 0 No change
Copyright Paul GASNERCopyright Paul GASNER 28
3. Completarea intrărilor în flip-flops3. Completarea intrărilor în flip-flopsSe utilizează tabela de excitare JK pentru completarea tabelului cu valorile corespunzătoare pentru intrările fiecărui flip-flop
Q(t) Q(t+1) J K0 0 0 x0 1 1 x1 0 x 11 1 x 0
Stareprezentă Input Next
State Flip flop inputs Output
Q1 Q0 X Q1 Q0 J1 K1 J0 K0 Z0 0 0 0 0 0 x 0 x 00 0 1 0 1 0 x 1 x 00 1 0 1 0 1 x x 1 00 1 1 0 1 0 x x 0 01 0 0 1 1 x 0 1 x 01 0 1 0 1 x 1 1 x 01 1 0 0 0 x 1 x 1 01 1 1 0 1 x 1 x 0 1
Copyright Paul GASNERCopyright Paul GASNER 29
Etapa 4. Ecuaţiile flip-flopsEtapa 4. Ecuaţiile flip-flopsSe pot utiliza diagrame Karnaugh pentru determinarea ecuaţiilor celor patru intrări FF şi ieşirea ZEcuaţiile sunt funcţii de starea curentă şi intrări
Stareprezentă
Input NextState
Flip flop inputs Output
Q1 Q0 X Q1 Q0 J1 K1 J0 K0 Z0 0 0 0 0 0 x 0 x 00 0 1 0 1 0 x 1 x 00 1 0 1 0 1 x x 1 00 1 1 0 1 0 x x 0 01 0 0 1 1 x 0 1 x 01 0 1 0 1 x 1 1 x 01 1 0 0 0 x 1 x 1 01 1 1 0 1 x 1 x 0 1
J1 = X’ Q0K1 = X + Q0J0 = X + Q1K0 = X’
Z = Q1 Q0 X
Copyright Paul GASNERCopyright Paul GASNER 30
Etapa 5. Construirea circuituluiEtapa 5. Construirea circuituluiÎn final se utilizează ecuaţiile simplificate pentru a construi circuitul complet
J1 = X’ Q0K1 = X + Q0J0 = X + Q1K0 = X’
Z = Q1 Q0 X
Copyright Paul GASNERCopyright Paul GASNER 31
Diagrama temporalăDiagrama temporalăDiagrama temporală a detectorului de secvenţă:
circuitele FF sunt iniţializate în starea Q1Q0 = 00X are valorile succesive 1, 0 şi 0 la primele trei fronturi pozitive de ceas şi starea sistemului se schimbă în Q1Q0 =11la al patrulea front pozitiv X = 1 şi Z trece în 1Nu este neapărat necesar ca modificarea valorii de ieşire Z să se realizeze la frontul pozitiv de tact, însă trebuie să se modifice ori de câte ori X se modifică conform Z = Q1Q0X
CLK
Q1
Q0
X
Z
1 2 3 4
Copyright Paul GASNERCopyright Paul GASNER 32
Detectorul cu flip-flop DDetectorul cu flip-flop DTabela de stări şi codul binar sunt deja stabilite şi se poate începe cu etapa a 3a, stabilirea intrărilor în FFTrebuie completat tabelul de mai jos
Starecurentă Input Next
StateFlip-flopinputs Output
Q1 Q0 X Q1 Q0 D1 D0 Z0 0 0 0 0 00 0 1 0 1 00 1 0 1 0 00 1 1 0 1 01 0 0 1 1 01 0 1 0 1 01 1 0 0 0 01 1 1 0 1 1
Copyright Paul GASNERCopyright Paul GASNER 33
Intrările în flip-flops (etapa 3)Intrările în flip-flops (etapa 3)
Tabela de excitare a circuitului flip-flop tip D practic nu există, intrarea D aducând FF direct în starea dorită
Q(t) Q(t+1) D Operaţie0 0 0 Reset0 1 1 Set1 0 0 Reset1 1 1 Set
Starecurentă
InputNextState
Flip flopinputs Output
Q1 Q0 X Q1 Q0 D1 D0 Z0 0 0 0 0 0 0 00 0 1 0 1 0 1 00 1 0 1 0 1 0 00 1 1 0 1 0 1 01 0 0 1 1 1 1 01 0 1 0 1 0 1 01 1 0 0 0 0 0 01 1 1 0 1 0 1 1
Copyright Paul GASNERCopyright Paul GASNER 34
Ecuaţiile intrărilor în FF (etapa 4)Ecuaţiile intrărilor în FF (etapa 4)
Utilizând diagramele Karnaugh se obţin expresile simplificate:
D1 = Q1 Q0’ X’ + Q1’ Q0 X’D0 = X + Q1 Q0’
Z = Q1 Q0 X
Starecurentă Input Next
StateFlip flopinputs Output
Q1 Q0 X Q1 Q0 D1 D0 Z0 0 0 0 0 0 0 00 0 1 0 1 0 1 00 1 0 1 0 1 0 00 1 1 0 1 0 1 01 0 0 1 1 1 1 01 0 1 0 1 0 1 01 1 0 0 0 0 0 01 1 1 0 1 0 1 1
Copyright Paul GASNERCopyright Paul GASNER 35
Detectorul cu FF (etapa 5)Detectorul cu FF (etapa 5)
D1 = Q1 Q0’ X’ + Q1’ Q0 X’D0 = X + Q1 Q0’
Z = Q1 Q0 X
Copyright Paul GASNERCopyright Paul GASNER 36
Circuite flip-flop. ComparaţiiCircuite flip-flop. Comparaţii
Circuitele JK au avantajul de a prezenta multe stări indiferente la intrare, fapt ce permite simplificarea circuitelorCircuitele D au avantajul de a nu fi necesară setarea sau resetarea – Q(t+1)=D, dar ecuaţiile la intrare sunt mult mai complexe decât la circuitele JK. Sunt utilizate mai des deoarece:
au o singură intrare, nu două ca JKnu au tabelă de excitarecircuitele tip D necesită mai puţine componente electronice decât circuitele JK
Copyright Paul GASNERCopyright Paul GASNER 37
ConcluziiConcluzii
Procedura de bază a proiectării unui circuit secvenţial:construirea tabelei de stări şi eventual a diagramei logice – cea mai dificilă etapăasocierea codului binar cu tabela de adevărdeterminarea valorilor de intrare în FF pe baza stării curente, următoare şi a tabelelor de excitare ale FFsimplificarea ecuaţiilor pentru intrările în FFconstruirea circuitului