Metode de
analiză şi sinteză a circuitelor secvenţiale
În Fig. 1 este dată o reprezentarea generală prin schemă
bloc a unui circuit secvenţial. Funcţionarea acestui circuit poate fi
descrisă prin următorul set de ecuaţii:
z1=g1(x1,x2,...,xn,y1,y2,...,yk)
z2=g2(x1,x2,...,xn,y1,y2,...,yk)
.........................
zm=gm(x1,x2,...,xn,y1,y2,...,yk)
pentru
ieşiri şi:
Y1=f1(x1,x2,...,xn,y1,y2,...,yk)
Y2=f2(x1,x2,...,xn,y1,y2,...,yk)
.........................
Yk=fk(x1,x2,...,xn,y1,y2,...,yk)
pentru semnalele
secundare care definesc starea următoare a circuitului, unde g1,
g2,...,gm şi f1, f2,...,fk sunt funcţii booleene cu argumentele x1,x2,...,xn,y1,y2,...,yk. Materializarea funcţiilor fi
si gi formează un circuit logic
combinaţional reprezentat prin blocul CLC. Blocul M conţine
elementele de memorare care pot fi circuite basculante bistabile de tip R-S,
J-K, D sau T sau, simple elemente de întârziere.
Fig. 1
1. Analiza circuitelor secvenţiale
Problema de analiză a circuitelor secvenţiale se defineşte
astfel: cunoscând structura circuitului secvenţ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 definesc semnalele de intrare, de ieşire şi semnalele
secundare (de stare)
2. Se stabilesc expresiile funcţiilor
booleene ale ieşirilor din partea
combinaţională. Funcţiile stabilite se pun în forma
canonică
3. Corespunzător 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ţia semnalelor la ieşire.
Etapa neobligatorie dar
de multe ori utilă din punct de vedere practic presupune obţinerea
expresiilor minimale ale funcţiilor de ieşire şi de
tranziţie. Materializarea expresiilor minimale are drept rezultat
obţinerea unui circuit echivalent cu primul dar mai economic decât primul.
Exemplul 1.
Se dă circuitul din Fig.2. realizat din 9 porţi logice şi
două CBB tip D.
Fig. 2.
Observându-se că în cadrul circuitului există legături de
reacţie, rezultă că circuitul este unul secvenţial. Ca
urmare, se urmăresc etapele de analiză a unui circuit
secvenţial.
1. Pe schemă s-a pus în evidenţă partea
combinaţională (CLC) şi partea de memorie (M). Circuitul are o
bornă de intrare (x), una de ieşire (z) şi două bucle de
reacţie cu variabilele secundare y1 şi y2.
2. Expresiile funcţiilor de ieşire a părţii
combinaţionale se determină în mod similar ca în cazul analizei
circuitelor combinaţionale. Rezultă următoarele expresii:
z=y1y2
Y1=y1y2+xy1+x’y2
Y2=xy1’+x’y2+y1’y2
Prin dezvoltare se obţin formele canonice ale funcţiilor:
z=xy1y2+x’y1y2
Y1=xy1y2+ x’y1y2+xy1y2’+x’y1’y2
Y2=xy1’y2+ xy1’y2’+x’y1y2+x’y1’y2
Obţinerea formelor canonice poate fi
realizată şi direct pe diagrama Veitch-Karnaugh
(V-K). În Fig. 3, funcţiile y1 şi y2 sunt
reprezentate pe aceeaşi diagramă şi separat este
reprezentată funcţia z.
|
|
|
|
|
|
Y1-Y2 |
|
|
|
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
y1y2 |
|
|
y1 |
|
|
|
|
y1y2 |
|
|
y1 |
|
|
|
|
|
|
|
x |
|
00 |
01 |
11 |
10 |
|
|
x |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
|
0 |
00 |
11 |
11 |
00 |
|
|
|
0 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
|
1 |
01 |
01 |
10 |
10 |
|
x |
|
1 |
0 |
0 |
1 |
0 |
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y2 |
|
|
|
|
|
|
|
y2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fig. 3
3. Circuitul studiat are două variabile de
stare. Ca urmare, cele 4 combinaţii posibile ale valorilor acestora
definesc stările circuitului. Putem scrie următoarea codificare:
y1 |
y2 |
|
sk |
0 |
0 |
-> |
s0 |
0 |
1 |
-> |
s1 |
1 |
0 |
-> |
s2 |
1 |
1 |
-> |
s3 |
Conform acestei codificări şi a
condiţiilor problemei, starea iniţială a circuitului studiat
este starea s0.
4. Având în vedere codificarea realizată
şi diagrama din Fig. 3, se poate stabili imediat tabelul stărilor.
Tabelul corespunde unei reprezentări prin tabel a automatelor Moore.
În tabel s-au evidenţiat stările stabile
adică, stările pentru care stare prezentă şi starea
următoare sunt identice.
x sk |
0 |
1 |
z |
s0 |
s0 |
s1 |
0 |
s1 |
s3 |
s1 |
0 |
s2 |
s0 |
s2 |
0 |
s3 |
s3 |
s2 |
1 |
Pe baza acestui tabel se poate stabili imediat
graful de tranziţie al circuitului care este dat în Fig. 4. Starea
iniţială este reprezentată printr-un cerc cu linie dublă.
Fig.4
3. Sinteza circuitelor secvenţiale
Problema de sinteză a circuitelor
combinaţionale se defineşte în modul urmă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 de ieş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ă sub formă de
descriere verbală
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 următoare dorită pentru fiecare combinaţ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 memorie
corespunză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 poate fi parcurse în mod sistematic
manual sau folosind programe pe calculator specializate.
În ceea ce priveşte prima etapă, se
recomandă construirea unui tabel 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 de starea curentă. În acest
fel este posibil să se introducă stări suplimentare care
însă pot fi eliminate mai târziu în etapa de minimizare a stărilor.
Exemplul 2
Să se realizeze circuitul secvenţial care are 2 intrări, a
şi b, o ieşire z care iniţial este 0. Secvenţa semnalelor
de intrare 10, 11, 01 face ca ieşirea să devină 1.
Următoarea modificare a intrării duce la trecerea ieşirii în 0.
Nici o altă secvenţă a semnalelor de intrare nu mai produce 1 la
ieşire.
Etapa 1.
Se realizează tabelul de tranziţii
primar. Acesta are următorul cap de tabel:
Semnificaţia stării |
Numele stării |
Intrări |
Ieşire |
|||
00 |
01 |
11 |
10 |
|||
|
|
|
|
|
|
|
Tabelul de tranziţii primar se
completează apoi linie cu linie pe baza descrierii verbale a
funcţionării circuitului.
Se consideră că funcţionarea
circuitului începe dintr-o stare care de obicei este starea în care se
află sistemul după ce a fost cuplat la sursa de alimentare.
Această stare o vom numi starea iniţială şi o vom nota cu SInit.
Apoi pentru fiecare combinaţie a variabilelor
de intrare vom analiza evoluţia circuitului. Conform descrierii
funcţionării circuitului, o singură secvenţă a
semnalelor de intrare poate duce la activarea ieşirii şi prima
combinaţie din această secvenţă este 10. Rezultă ca
pentru combinaţiile 00, 01, şi 11 circuitul va rămâne în starea
în care se află 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 Detect1. Pentru starea
iniţială ieşirea va fi 0.
Semnificaţia
stării |
Numele stării |
Intrări |
Ieşire |
|||
00 |
01 |
11 |
10 |
|||
Starea iniţială |
SInit |
SInit |
SInit |
SInit |
Detect1 |
0 |
Noua stare Detect1 se adaugă tabelului primar
prin adăugarea unei linii suplimentare şi procesul prezentat mai sus
se reia.
Semnificaţia stării |
Numele stării |
Intrări |
Ieşire |
|||
00 |
01 |
11 |
10 |
|||
Starea iniţială |
SInit |
SInit |
SInit |
SInit |
Detect1 |
0 |
S-a detectat prima combinaţie din secvenţă |
Detect1 |
|
|
|
|
|
Următoarea combinaţie din secvenţa
care duce la activarea ieşirii z este 11.
Asta înseamnă că dacă, aflându-ne în starea Detect1, la
intrare se aplică combinaţiile 00 sau 01, secvenţa
rezultată va fi una din (10, 00) sau
(10, 01) care conform specificaţiilor nu vor putea duce la
validarea ieşirii z. 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ă că aceasta a rămas
neschimbată aşa încât circuitul va rămâne în continuare în
starea Detect1 aşteptând modificarea secvenţei de intrare. 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ţie din secvenţa care activează
ieşirea z aşa încât o vom numi Detect2. Ieşirea circuitului
rămâne în continuare 0. Tabelul primar va arăta astfel:
Semnificaţia
stării |
Numele stării |
Intrări (ab) |
Ieşire |
|||
00 |
01 |
11 |
10 |
|||
Starea iniţială |
SInit |
SInit |
SInit |
SInit |
Detect1 |
0 |
S-a detectat prima combinaţie din secvenţă |
Detect1 |
SInit |
SInit |
Detect2 |
Detect1 |
0 |
S-a detectat a doua combinaţie din secvenţă |
Detect2 |
|
|
|
|
|
Raţionând în mod similar rezultă că
pentru combinaţiile 00 şi 10 circuitul revine în starea
iniţială, pentru combinaţia 11 circuitul rămâne în starea
Detect2 iar pentru combinaţia 01 circuitul trece într-o stare nouă.
Aceasta este starea în care a fost detectată şi cea de a treia
combinaţie din secvenţă de activare a ieşirii z ş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 recepţionată, adică 01.
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 acestuia
este:
Semnificaţia
stării |
Numele stării |
Intrări |
Ieşire |
|||
00 |
01 |
11 |
10 |
|||
Starea iniţială |
SInit |
SInit |
SInit |
SInit |
Detect1 |
0 |
S-a detectat prima combinaţie din secvenţă |
Detect1 |
SInit |
SInit |
Detect2 |
Detect1 |
0 |
S-a detectat a doua combinaţie din secvenţă |
Detect2 |
SInit |
Detect3 |
Detect2 |
SInit |
0 |
S-a detectat a treia combinaţie din secvenţă |
Detect3 |
SInit |
Detect3 |
SInit |
SInit |
1 |
Din tabelul de tranziţie primar se
obţine imediat tabelul de tranziţie al circuitului:
Numele stării |
Intrări (ab) |
Ieşire z |
|||
00 |
01 |
11 |
10 |
||
SInit |
SInit |
SInit |
SInit |
Detect1 |
0 |
Detect1 |
SInit |
SInit |
Detect2 |
Detect1 |
0 |
Detect2 |
SInit |
Detect3 |
Detect2 |
SInit |
0 |
Detect3 |
SInit |
Detect3 |
SInit |
SInit |
1 |
Etapa 2.
În această etapă se urmăreşte
eliminarea stărilor suplimentare introduse în procesul de determinare a
tabelului de tranziţie a circuitului. Diverse metode de reducere a
stărilor suplimentare pot fi găsite în manulalele
de specialitate.
Etapa 3.
Stările automatului sunt realizate prin itermediul 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 y1 şi y2. Vom alege
următoarea codificare a stărilor:
SInit ->
y1=0 y2=0
Detect1 -> y1=0
y2=1
Detect2 ->
y1=1 y2=1
Detect3 ->
y1=1 y2=0
În general există n! posibilităţi
de codificare a celor n stări.
Etapa 4.
Înlocuind codurile de mai sus în tabelul de
tranziţie obţinem:
ab y1y2 |
00 |
01 |
11 |
10 |
z |
00 |
00 |
00 |
00 |
01 |
0 |
01 |
00 |
00 |
11 |
01 |
0 |
11 |
00 |
10 |
11 |
00 |
0 |
10 |
00 |
10 |
00 |
00 |
1 |
Din acest tabel putem obţine diagramele Veitch-Karnaugh
(V-K) corespunzătoare funcţiilor de stare Y1 şi Y2
corespunzătoare variabilelor de stare y1 şi y2
precum şi funcţiei de ieşire z. Utilizând aceste diagrame putem
minimiza aceste funcţii.
Grupând valorile de 1 se obţin
următoarele expresii:
Y1=a’by1+aby2
Y2=ab’y1’+aby2
z=y1y2’
Etapa 5.
În această etapă se alege tipul de celule
de memorie folosite (tip R-S, J-K, D, T).
Etapa 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 starea următoare dorită pentru fiecare combinaţie
stare actuală-intrare. Aplicând regulile din Anexa 1 se obţin
următoarele tabele de excitaţii:
Celule
de memorie tip D
Celule
de memorie tip R-S
Celule
de memorie tip J-K
Celule
de memorie tip T
Etapa 7.
Pe baza diagramei V-K şi a tabelelor de
excitaţie celulelor de memorie folosite se obţin expresiile
funcţiilor de excitaţie.
Celule
de memorie tip D
D1=a’.b.Q1+a.b.Q2
D2=a.b’.Q1’+a.b.Q2
Celule
de memorie tip R-S
R1=b’+a.Q2’
S1=a.b.Q2
R2=a’+b’.Q1
S2=a.b’.Q1’
Celule
de memorie tip J-K
J1=a.b.Q2
K1=b’.Q1+a.Q2’
J2=a.b’.Q1’
K2=a’.b’+b’.Q1
Celule
de memorie tip T
T1=b’.Q1+a.Q1.Q2’+a.b.Q1’.Q2
T2=a’.Q2+b’.Q1.Q2+a.b’.Q1’.Q2’
Etapa 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 diagramei V-K
de mai jos va avea expresia:
z= Q1.Q2’
Etapa 9.
Pe baza ecuaţiilor determinate în etapele 8
şi 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 memorie corespunzătoare.
Schemele logice sunt date mai jos pentru fiecare tip de celulă de memorie.
Celule
tip D
Celule
tip RS
Celule
tip JK
Celule
tip T
După cum se observă, în funcţie de
tipul de celule de memorie alese, numărul şi tipul porţilor
logice necesare pentru materializarea funcţiilor de excitaţie şi
a funcţiei de ieşire diferă.
Anexa 1
Reguli privind determinarea expresiilor
excitaţiei CBB din diagrama stărilor următoare.
|
|
Qn=0 |
Qn=1 |
Reguli |
|||
Tip |
Intrare |
Qn+1=0 |
Qn+1=1 |
Qn+1=0 |
Qn+1=1 |
Qn=0 |
Qn=1 |
D |
|
0 |
1 |
0 |
1 |
nu se schimbă |
nu se schimbă |
T |
EN |
0 |
1 |
1 |
0 |
nu se schimbă |
complementează |
S-R |
S |
0 |
1 |
0 |
* |
nu se schimbă |
înlocuieşte 1 cu * |
|
R |
* |
0 |
1 |
0 |
schimbă 0 cu * |
complementează |
J-K |
J |
0 |
1 |
* |
* |
nu se schimbă |
completează cu * |
|
K |
* |
* |
1 |
0 |
completează cu * |
complementează |
Observaţii
1. * semnifică valori indiferente
2. Întotdeauna se copie mai întâi valorile
indiferente din diagrama stărilor următoare în diagrama
intrărilor
3. Pentru diagrama lui S, rândul de
căsuţe pentru care Qn=1 şi pentru diagrama R, rândul
de căsuţe pentru care Qn=0
se completează căsuţele rămase libere cu valori de 0.
Exemplul 3. Pentru diagrama de mai jos,
|
|
|
|
|
|
|
Qn*1 |
|
|
|
|
|
|
|
|
xy |
|
|
x |
|
|
|
|
|
|
|
Qn |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
* |
|
Qn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
se obţin
următoarele diagrame ale funcţiilor de excitaţie:
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
|
|
|
T |
|
|
|
|
|
|
|
xy |
|
|
x |
|
|
|
|
|
|
|
|
xy |
|
|
x |
|
|
|
|
|
|
Qn |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
Qn |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
1 |
1 |
0 |
0 |
* |
|
Qn |
|
|
|
|
|
1 |
0 |
1 |
1 |
* |
|
Qn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R |
|
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|
|
|
xy |
|
|
x |
|
|
|
|
|
|
|
|
xy |
|
|
x |
|
|
|
|
|
|
Qn |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
Qn |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
0 |
* |
0 |
* |
0 |
|
|
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
1 |
0 |
1 |
1 |
* |
|
Qn |
|
|
|
|
|
1 |
* |
0 |
0 |
* |
|
Qn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
J |
|
|
|
|
|
|
|
|
|
|
|
K |
|
|
|
|
|
|
|
xy |
|
|
x |
|
|
|
|
|
|
|
|
xy |
|
|
x |
|
|
|
|
|
|
Qn |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
Qn |
|
00 |
01 |
11 |
10 |
|
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|
0 |
* |
* |
* |
* |
|
|
|
|
|
|
1 |
* |
* |
* |
* |
|
Qn |
|
|
|
|
|
1 |
0 |
1 |
1 |
* |
|
Qn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|