Sunteți pe pagina 1din 13

Automate numerice

Structura dispoziivelor numerice complexe conține două blocuri de bază: automatul


operaținal și automatul de commandă.
Diagrama structurală a sistemului complex este prezentată în figura 1.

Y
Automat de comandă Automat Operațional

CLK

Figura 1. Diagrama structurală a sistemului complex


Automatul operațional are funcția de execuție a operațiilor.
Automatul de comandă generează semnale de comandă pentru automatul operațional în
conformitate cu algoritmul respectiv.
Automatul operațional
Automatul operațional realizează următoarele funcții:
1. Memorarea și păstrarea datelor.
2. Procesarea datelor.
3. Transmiterea datelor dintr-o componentă în alta.
4. Calcularea condițiilor logice
În componența automatului operațional sunt incluse elemente funcționale combinaționale și
secvențiale unite într-o schemă conform destinației automatului operațional.
Elementele funcționale sunt: sumatoare, codificatoare, decodificatoare, multiplexoare,
registre, numărătoare etc.
Automatul operațional este destinat îndeplinirii unui anumit număr de operații conform unui
algoritm.
Algoritmul se realizează conform unui microprogram.
Microprogramul constă din microinstrucțiuni.
Microinstricțiunea conține una sau mai multe microoperații care pot fi îndeplinite
concomitent.
Microoperația este o acțiune elementară asupra datelor în automatul operațional care nu poate
fi divizată în componente mai mici.
Ordinea îndeplinirii microoperațiilor poate fi condiționată (în dependență de condițiile logice
care pot fi adevărate sau false) și necondiționată (în conformitate cu semnalul de tact CLK).
Pentru descrierea microoperațiilor se utilizează următoarele simboluri:
( ) - conținutul elementului funcțional (ex. (RgX));
< > - valoarea concretă într-un anumit sistem de numerație (ex. <29>d, <1011>b, <A9>h)<
← - transmiterea datelor (ex. (RgX) ←(RgY));
Pentru descrierea microoperațiilor se utilizează următoarele microoperații:
a) de transfer (RgX) ← (RgY)
b) de inversare (RgX) ← (!RgX), aici și în continuare ! semnifică negarea;
c) de deplasare
(RgX) ← (RgX)*2
(RgX) ← (RgY)*2-1
d) de incrementare/decrementare
(CT) ←(CT)+1
(CT) ←(CT)-1
e) de adunare/scădere
(RgX) ← (RgX)+(RgY)
(RgX) ← (RgX)-(RgY)
f) microoperații logice
RgX) ← (RgX)˄(RgY)
RgX) ← (RgX)˅ (RgY)

Sinteza automatului operațional

Informația inițială este descrierea algoritmului care trebuie realizat în automatul


operațional

Etapele sintezei:
1. Alegerea componentelor automatului operațional (registre, sumator, numărător etc);
2. Elaborarea schemei-bloc al algoritmului de funcționare al automatului operațional la
nivelul descrierii microoperațiilor;
3. Elaborarea schemei-bloc marcate al algoritmului de funcționare al automatului operațional
la nivelul notării microoperațiilor și condițiilor logice;
4. Elaborarea listei microoperațiilor și a condițiilor logice;
5. Elaborarea schemei de structură al automatului operațional.
Exemplu.

Sinteza automatului operațional pentru realizarea operației de înmulțire a numerelor binare


fără semn în virgulă fixă prin metoda: începând cu bitul cel mai puțin semniifcativ al înmulțitorului
cu deplasarea deînmulțitului la stânga.
X=13 X=1101
Y=11 Y=1011
Efectuăm operația de înmulțire

Rezultatul înmulțirii Z=10001111


Descrierea operației
Operația de înmulțire începe cu resetarea registrelor utilizate și încărcarea datelor în aceste registre.
Înmulțirea se va îndeplini ciclic. Fiecare iterație va începe cu analiza bitului cel mai puțin
semniifcativ al înmulțitorului. Dacă acest bit este egal cu 1 se adună deînmulțitul la produsul
intermediar și apoi are loc deplasarea deînmulțitului la stânga iar a înmulțitorului la dreapta. Dacă
bitul cel mai puțin semnificativ este egal cu 0 nu se efectuiază adunarea și se trece la deplasări.
Numărul iterațiilor se reglementează de un numărător care se decrementează după fiecare iterație.

Să trecem la etapele sintezei.


1. Alegerea componentelor automatului operațional (registre, sumator, numărător etc);

RgX 4 biți;
RgY 8 biți (deoarece deînmulțitul se deplasează la stănga);
RgZ 8 biți pentru acumularea produsului;
SM 8 biți pentru efectuarea operației de adunare;
CT 3 biți (pentru încărcarea numărului de iterații 4=100b).
2. Elaborarea schemei-bloc al algoritmului de funcționare al automatului operațional la
nivelul descrierii microoperațiilor (Figura 2);

Start
Pentru început se verifică condiția de demaraj al
procesului. Dacă această condiție este falsă
Nu automatul rămâne în starea de așteptare.Dacă
Demaraj
condiția este adevărată, automatul începe operația de
Da înmulțire
(RgX) <0>
(RgY) <0> Resetarea registrelor și numărătorului
(RgZ) <0>
(CT) <0>

Încărcarea datelor în regiștrii respectivi. În


(RgX)<X> numărător se încarcă numărul de iterații
(RgY)<Y>
(CT)<4>

Analiza bitului cel mai puțin semnificativ al


Nu înmulțitorului
(RgY)[0]=1

Da
Adunarea deînmulțitului la produsul intermediar
(RgZ)(RgZ)+(RgX)
acumulat în RgZ

(RgX)(Rgx)*2 Deplasarea RgX la stânga, RgY la dreapta și


(RgY)(RgY)*2-1 decrementarea numărătorului
(CT)(CT)-1

Nu
(CT)=0
Se verifică dacă conținutul numărătorului este egal
cu zero
Da

MD(RgZ)
Transmiterea rezultatului la magistrala de date

Stop

Figura 2. Schema-bloc a algoritmului


3. Elaborarea schemei-bloc marcate al algoritmului de funcționare al automatului operațional
la nivelul notării microoperațiilor și condițiilor logice (Figura 3).
Desemnarea și marcarea stărilor:
Prin s0 se marchează vârfurile Start și Stop. Celelalte vârfuri se marchează s1, s2 …
Marcarea microoperațiilor: y1, y2…
Marcarea condițiilor logice: x1, x2…
Pentru condițiile logice se substituie Da și Nu cu 1 și 0 în felul următor: Dacă condiția este
adevărată se scrie 1, dacă este falsă se va scrie 0.

Start s0

0
x1

1
y1,y2,y3,y4 s1

y5,y6,y7 s2

0
x2

y8,y9,y10 s3

y11,y12,y13 s4

1
x3

y14 s5

Stop s0

Figura 3. Schema-bloc marcată a algoritmului


4. Elaborarea listei microoperațiilor și a condițiilor logice;
y1 - microoperația de resetare a conținutului RgX;
y2 - microoperația de resetare a conținutului RgY;
y3 - microoperația de resetare a conținutului RgZ;
y4 - microoperația de resetare a conținutului numărătorului CT;
y5 – microoperația de încărcare a datelor în RgX;
y6 – microoperația de încărcare a datelor în RgY;
y7 – microoperația de încărcare a datelor în număărtorul CT;
y8 – microoperația de transfer a datelor din RgX în sumatorul SM;
y9 – microoperația de transfer a datelor din RgZ în sumatorul SM;
y10 – microoperația de încărcare a datelor din sumatorul SM în RgZ;
y11 – microoperația de deplasare a conținutului RgX la stânga;
y12 – microoperația de deplasare a conținutului RgY la dreapta;
y13 – microoperația de decrementare a numărătorului CT;
y14 – microoperația de transfer a conținutului RgZ la magistrala de date MD.

Lista condițiilor logice


x1 –condiția de verificare a demarajului;
x2 – condiția de verificare la 1 a bitului cel mai puțin semnificativ al RgY;
x3 - condiția de comparare cu zero a conținutului numărătorului

Microoperațiile și condițiile logice se notează prin săgeți în schema de structură a


automatului operațional (Fig. 4).
RgX
0

Y8
x1
7
SM
Y5
LD 0
Y11
SH
0
Y1
Res 7
7

RgZ
0
0
0
7
Y9
7
MD
7

Y10
LD

Y3
Res 7

RgY Y14
x2
0
0

7
Y6
LD
Y12
SH
Y2
Res 7

CT
0
0

2
Y7
x3
LD
Y13
-1
Y4 Res

Figura 4. Schema de structură a automatului operațional


Sinteza automatului de comandă

Datele inițiale pentru sinteza automatului de comandă sunt schema-bloc al algoritmului,


schema-bloc marcată și lista microoperațiilor și condițiilor logice.

Etapele sintezei.
1. Elaborarea listei semnalelor de comandă (pentru fiecare microoperație se stabilește câte
un semnal de comadă).
2. Determinarea perioadei semnalelor de tact ale automatului de comandă.
3. Utilizarea schemei-bloc și a schemei-bloc marcate pentru elaborarea grafului de
tranziție al automatului de comandă.
4. Codificarea stărilor automatului de comandă.
5. Elaborarea tabelului de tranziție al automatului de comandă.
6. Minimizarea funcțiilor logice pentru setarea/resetarea bistabilelor și a celor de generare
a semnalelor de comandă.
7. Elaborarea schemei logice a automatului de comandă.

În continuare se va exemplifica fiecare etapă.


1. Elaborarea listei semnalelor de comandă (pentru fiecare microoperație se stabilește câte un
semnal de comadă).

y1 - semnalul de resetare a conținutului RgX;


y2 - semnalul de resetare a conținutului RgY;
y3 - semnalul de resetare a conținutului RgZ;
y4 - semnalul de resetare a conținutului numărătorului CT;
y5 – semnalul de încărcare a datelor în RgX;
y6 – semnalul de încărcare a datelor în RgY;
y7 – semnalul de încărcare a datelor în număărtorul CT;
y8 – semnalul de transfer a datelor din RgX în sumatorul SM;
y9 – semnalul de transfer a datelor din RgZ în sumatorul SM;
y10 – semnalul de încărcare a datelor din sumatorul SM în RgZ;
y11 – semnalul de deplasare a conținutului RgX la stânga;
y12 – semnalul de deplasare a conținutului RgY la dreapta;
y13 – semnalul de decrementare a numărătorului CT;
y14 – semnalul de transfer a conținutului RgZ la magistrala de date MD.

2. Determinarea perioadei semnalelor de tact ale automatului de comandă.


Automatele de comandă pot funcționa în regim sincron și asincron.
În regim sincron durata semnalelor de tact este egală cu durata maximală a semnalelor de
comandă.
În regim asincron durata semnalelor de tact este egală cu durata minimală a semnalelor de
comandă.
Vom considera că automatul de comandă funcționează în regim sincron.

3. Utilizarea schemei-bloc și a schemei-bloc marcate pentru elaborarea grafului de tranziție


al automatului de comandă.
Fiecare stare a automatului din schema-bloc marcată se notează printr-un cerc.
Fiecare tranziție – printr-un arc. Arcului i se atribuie condițiile logice care asigură tranziția
respectivă.Pentru automatul de tip Moore semnalele de comandă se înscriu în interiorul
cercului.
Graful de tranziție pentru exemplul analizat este prezentat în Figura 4. El este elaborat în
baza schemei-bloc (Figura 2) și a schemei-bloc marcate (Figura 3).
s0
-

x1

s1
y1,y2,y3,y4

s2
x2
y5,y6,y7

s3 1 s4
y8,y9,y10 y11,y12,y13

x2x3

s5
y14

Figura 4. Graful de tranziție

4. Codificarea stărilor automatului de comandă.

Pentru codificarea stărilor se determină numărul biților necesari pentru codificare


din relația n   log 2 N  , unde N este numărul stărilor.
Valoarea n va determina numărul bistabilelor din memoria automatului de omandă.
Pentru exemplul analizat N=6 și n=3.
Vom nota bistabilele Q2, Q1 și Q0
Pentru a simplifica sinteza ulterioară a automatului de comandă poate fi utilizat
codul lui Gray. Pentru aceasta e util de folosit diagram Karnaugh (Figura 5).
Figura 5. Codificarea stărilor cu diagram Karnaugh

Stările codificate se întroduc în tabelul stărilor (Tabelul 1):

Tabelul 1. Stările codificate în binar

5. Elaborarea tabelului de tranziție al automatului de comandă.


Tabelul de tranziție (Tabelul 2) se elaborează în baza grafului de tranziție. Fiecare rând
corespunde unei tranziții a automatului.
Tabelul 2. Tabelul de tranziție al stărilor

Starea Codul Starea Codul Condiția Semnale de Semnale de setare/resetare a


(t) stării (t+1) stării logică comandă bistabilelor
Si Q2Q1Q0 Si Q2Q1Q0 Xi Yi J2 K2 J1 K1 J0 K0
1 S0 000 S0 000 ̶ - - - - - -
2 s0 000 S1 001 x1 y1,y2,y3,y4 - - - - J0 -
3 S1 001 S2 011 1 y5,y6,y7 - - J1 - - -
4 S2 011 S3 010 x2 y8,y9,y10 - - - - - K0
4 S2 011 S4 110 x2 y11,y12,y13 J2 - - - - K0
5 S3 010 S4 110 1 y11,y12,y13 J2 - - - - -
6 S4 110 S3 010 x2x3 y8,y9,y10 - K2 - - - -
7 S4 110 S4 110 x2x3 y11,y12,y13 - - - - - -
8 S4 110 S5 100 x3 y14 - - - K1 - -
9 S5 100 S0 000 1 - - K2 - - - -
6. Minimizarea funcțiilor logice pentru setarea/resetarea bistabilelor și a celor de generare a
semnalelor de comandă.

Funcțiile de setare/resetare ale bistabilelor se obțin fără a utiliza metode tradiționale


de minimizare.
Aceste funcții se scriu ca produsul dintre starea din coloana 2 și condițiile logice
din coloana 6.

J 0  s0 x1
K 0  s 2 x2  s 2 x2
J 1  s1
K1  s4 x3
J 2  s 2 x 2  s3
K 2  s4 x2 x3  s5

Funcțiile de generare a semnalelor de commandă se obțin din următorul tabel:

Si Yi
S0 -
S1 y1,y2,y3,y4
S2 y5,y6,y7
S3 y8,y9,y10
S4 y11,y12,y13
S5 y14

y1=y2=y3=y4=s1
y5=y6=y7=s2
y8=y9=y10=s3
y11=y12=y13=s4
y14=s5

7. Elaborarea schemei logice a automatului de comandă.


Schema logică a automatului de comandă (Figura 6) include:
a) Bistabilele care reprezintă memori automatului de comandă;
b) Circuitul logic combinațional pentru implementarea funcțiilor de setare/resetare a
bistabilelor;
c) Decodificator pentru determinarea stării curente a automatului prin activarea unei ieșiri.
Figura 6. Schema logică a automatului de comandă

Etapele de verificare a automatului


a) Se resetează bistabilele (se trece semnalul reset în 0, apoi în 1)
b) Se instalează x1 în 0 și se verifică dacă automatul rămâne în S0
c) Se instalează x1 în 1 și se verifică parcurgerea stărilor conform schemei-bloc marcate
d) Pe rând se instalează condițiile logice în 1 și 0 și se verifică parcurgerea stărilor conform
schemei-bloc marcate

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