Sunteți pe pagina 1din 15

Automate programabile Laborator 7

Analiza şi sinteza 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.

x1 z1
: :
xn CLC zm

y1 Y1
: :
yk Yk

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
Automate programabile Laborator 7

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..

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. Cu literă mare s-au notat variabilele
asociate bobinelor releelor (Y1 şi respectiv Y2), iar cu literă mică s-au notat variabilele
asociate contactelor auxiliare ale aceluiaşi releu (y1 şi respectiv y2). Rezultă următoarele
expresii:

2
Automate programabile Laborator 7

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 0 1 z
sk
s0 s0 s1 0
s1 s3 s1 0
s2 s0 s2 0
s3 s3 s2 1

3
Automate programabile Laborator 7

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ă.

x’ x

x
s0/0 s1/0

x’
x’

x
s2/0 s3/1

x x’

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

4
Automate programabile Laborator 7

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
Se cere să se realizeze circuitul secvenţial care primeşte semnale de intrare de la 2
senzori de proximitate, a şi b, şi controlează un braţ manipulator care iniţial este în
poziţia retras, prin intermediul ieşirii z. Senzorii detectează trecerea unor piese pe banda
transportoare. În cazul în care o piesă este mai mare decât trebuie, secvenţa semnalelor de
senzori va fi 10, 11, 01 ceea ce va face ca ieşirea z să devină 1, braţul manipulatorului să
fie acţionat şi piesa necorespunzătoare să fie scoasă din fluxul de producţie prin
schimbarea traiectoriei acesteia. Următoarea modificare a semnalelor de intrare duce la
trecerea ieşirii în 0 şi deci revenirea braţului în poziţia iniţială. Nici o altă secvenţă a
semnalelor de intrare nu mai produce 1 la ieşire.

0
a b
0
a 1 b 0

a) b)

0 0 0 1
a b a b

c) d)
z
a 0 b
0

e)

Fig. Secvenţa semnalelor de la senzori pentru o piesă bună.

5
Automate programabile Laborator 7

0
a b
0
a 1 b
0

a) b)

1 1 0 1
a b a b

c) d)

0 1 z
a b

e)
Fig. Secvenţa semnalelor de la senzori pentru o piesă prea lungă care trebuie eliminată
din fluxul de prelucrare.

Etapa 1.
Se realizează tabelul de tranziţii primar. Acesta are următorul cap de tabel:

Semnificaţia stării Numele Intrări Ieşire


stării 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 Intrări Ieşire

6
Automate programabile Laborator 7

stării 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 Intrări Ieşire


stării 00 01 11 10
Starea iniţială SInit SInit SInit SInit Detect1 0
S-a detectat prima combinaţie din Detect1
secvenţă

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 Intrări (ab) Ieşire


stării 00 01 11 10
Starea iniţială SInit SInit SInit SInit Detect1 0
S-a detectat prima combinaţie Detect1 SInit SInit Detect2 Detect1 0
din secvenţă
S-a detectat a doua combinaţie Detect2
din secvenţă

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 Intrări Ieşire


stării 00 01 11 10
Starea iniţială SInit SInit SInit SInit Detect1 0
S-a detectat prima combinaţie Detect1 SInit SInit Detect2 Detect1 0
din secvenţă

7
Automate programabile Laborator 7

S-a detectat a doua Detect2 SInit Detect3 Detect2 SInit 0


combinaţie din secvenţă
S-a detectat a treia combinaţie Detect3 SInit Detect3 SInit SInit 1
din secvenţă

Din tabelul de tranziţie primar se obţine imediat tabelul de tranziţie al circuitului:

Numele Intrări (ab) Ieşire


stării 00 01 11 10 z
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 00 01 11 10 z
y1y2
00 00 00 00 01 0
01 00 00 11 01 0
11 00 10 11 00 0
10 00 10 00 00 1

8
Automate programabile Laborator 7

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’

Având expresiile determinate se poate realiza circuitul folosind scheme cu contacte.


Schema care rezultă este următoarea:

În cazul în care se doreşte realizarea circuitului folosind celule de memorie, se


parcurg etapele care urmează

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:

9
Automate programabile Laborator 7

Celule de memorie tip D

Celule de memorie tip R-S

Celule de memorie tip J-K

10
Automate programabile Laborator 7

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:

11
Automate programabile Laborator 7

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
a b

z
D1 Q 1
Q1

D2 Q 2
Q2

Celule tip RS
a b

R1 Q1
z
S1 Q1

R2 Q2
S2 Q 2

Celule tip JK

12
Automate programabile Laborator 7

a b

J 1 Q1
z
K 1 Q1

J2 Q2
K2 Q2

Celule tip T

a b

T1 Q1
z
Q1

T2 Q2
Q2

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ă.

Procedeu experimental

1. Să se analizeze circuitul din figură şi să se deseneze automatul finit asociat.

13
Automate programabile Laborator 7

2. Se cere să se realizeze circuitul secvenţial cu două intrări şi o ieşire care


detectează secvenţa 10, 11, 01. La detectarea secvenţei ieşirea devine 1 şi este 0
în rest.

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= Qn+1=1 Qn=0 Qn=1
0
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

14
Automate programabile Laborator 7

xy x
Qn 00 01 11 10
0 0 1 0 1
1 1 0 0 * Qn

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

15

S-ar putea să vă placă și