Sunteți pe pagina 1din 29

Ministerul Educației, Culturii și Cercetării

Universitatea Tehnica a Moldovei

Departamentul Informatică şi Ingineria Sistemelor

MEMORIU EXPLICATIV
la proiectul de an la disciplina:
Analiza și sinteza dispozitivelor numerice

Tema: Dispozitive numerice

A elaborat : stud. gr. CR-182 Bonari Oleg

Conducătorul de proiect: conf. univ., dr. VIORICA


SUDACEVSCHI

Admis la susținere ___________ “___________”


Susținerea “__________________”
Nota “_______”
2020

1
Cuprins
Introducere 3
Capitolul I. Sinteza registrului numerator direct modulo 24, cu deplasare
aritmetica la dreapta
1.1Date generale despre regiștre și numărătoare 4
1.2 Descrierea registrilor numărător 4
1.3 Registrele 4
1.4 Numaratoarele 4
1.5 Elaborarea tabelului de tranzitii 6
1.6 Minimizarea funcţilor J si K 7
1.7 Schema elementului multifunctional in Logic Works 5 12

Capitolul II Sinteza automatului de comandă


11 2.1 Date generale despre automate 14
2.2 Descrierea algoritmului pentru inmultire in virgulă mobile 14
2.1 Etapele de sinteza a algoritmului 14
2.3.1 Schema bloc a algoritmului 15
2.3.2 Schema bloc marcată 17
2.3.3 Graful de tranziție 20
2.3.4 Codificarea stărilor 21
2.3.5 Tabela de tranziție 22
2.3.6 Minimizarea functiilor logice 22
2.3.7 Schema de structura a AO 23
2.3.8Schema A.C in Logic Works 24
Capitolul III Sinteza automatului operational 25
3.1 Date generale 25
3.2 Alegerea componentelor 15
Concluziile 27
Bibliografie 27

2
Introducere

Dispozitivele numerice sunt o prezență cotidiană atît în structura calculatoarelor numerice,


cît și în componența diferitor altor sisteme orientate spre procesarea rapidă a datelor.[1] Pentru
a implementa astfel de dispozitive, specialistul trebuie să dispune de o mulțime de cunoștințe în
domeniul algebrei booleane, funcționării dispozitivelor numerice și mecanismele care sunt
utilizate în obținerea dispozitivelor numerice.

În primul capitol a memoriului curent este prezentat ciclul de implementare a elementului


multifuncțional. În acesta este inclus tabelul de tranziții și mimizarea funcțiilor obținute, cît și
schema logică a elementului elaborat.

În capitolul numărul doi, se vorbește de implementarea și sinteza unui automat de


comandă. În exemplul dat, se creează un automat de comandă care ne va efectua împărțirea a
două numere în virgulă mobilă. Sinteza se începe cu implementarea algoritmului, după care se
construiește schema bloc marcată. Pentru lucrarea dată, a fost ales automatul de tip Moore, unde
semnalul de comandă depinde doar de starea curentă a automatului, iar starea următoare va
depinde atât de starea precedentă căt și de condițiile logice. După elaborarea schemei bloc
marcate, realizăm graful de tranziție al automatului, pentru a vizualiza mai bine tranzițiile
stărilor în dependență de condiții. La următoarea etapă am elaborat tabelul de tranziție al
stărilor și am finalizat cu crearea schemei funcționale a automatului.

În ultimul capitol, este descrisă implementarea automatului operațional în baza schemei bloc a
algoritmului și schemei bloc marcate. Aici vom vorbi despre componentele de care avem nevoie,
și vom reprezenta doar schematic cum ar arăta un automat în realitate în baza unui exemplu.

Capitolul I Sinteza registrului numerator direct modulo 24, cu deplasare


aritmetica la dreapta
1.1 Date generale despre regiștre și numărătoare
1.2 Descrierea regiștrilor numărător
1.3Registrele
3
Registrele se includ în categoria elementelor funcţionale secvenţiale şi sunt destinate
memorării şi procesării cuvintelor binare. Componenta de bază a oricărui registru sunt bistabilele.
Structura generală a unui registru este prezentată în figura 3.5. şi este constituită din n bistabile
(în cazul de faţă de tip D), avînd un semnal de ceas CLK comun pentru toate bistabilele (B).
Intrarea
de ştergere CLR, activă pe zero logic, este prezentă la majoritatea registrelor şi permite
resetarea celor n bistabile. Intrările S1 şi S0 comandă cele n comutatoare logice (CM),
asigurînd astfel selecţia regimului de lucru al registrului. Comutatoarele, în dependenţă de
codul de selecţie, por asigura conectarea intrărilor bistabilelor în trei moduri: la ieşirea Bi din
stînga, din dreapta sau la intrarea de date D. În dependenţă de conectarea intrărilor
bistabilelor, registrul poate încărca un cuvînt binar în cod paralel sau succesiv (Figura 1).

Figura 1. Structura generală a unui registru

1.4Număratoarele
O clasă importantă de circuite logice secvenţiale o reprezintă numărătoarele (contoarele).
Destinaţia numărătorului este înregistrarea numărului de impulsuri aplicate la intrarea lui şi
divizarea frecvenţei acestor impulsuri. Componenta de bază a numărătoarelor sunt bistabilele.
Un numărător are M stări distincte. Tranziţia între stările succesive se produce în urma
impulsurilor aplicate la intrarea numărătorului. După aplicarea unui număr de M impulsuri,
numărătorul revine în starea iniţială (de exemplu în starea zero). Un astfel de circuit
reprezintă un numărător modulo M. Relaţia dintre modulo M şi numărul de bistabile n, ce
intră în componenţa numărătorului este următoarea: n =[log2M]. Dacă numărul n nu este
întreg, atunci el se rotunjeşte pînă la cel mai apropiat număr întreg mai mare decît cel obţinut.

Numărătoarele se clasifică după două criterii: în dependenţă de ordinea numărării şi în


dependenţă de faptul cum îşi schimbă starea bistabilele, Dacă numărătorul realizează o
succesiune de stări codificate în ordine crescătoare, atunci el se numeşte numărător direct, iar
dacă succesiunea stărilor este în ordine descrescătoare, atunci el se numeşte numărător invers.
Numărătorul care realizează atît numărarea directă, cît şi cea inversă se numeşte reversibil.

4
Numărătoarele se divizează în sincrone sau asincrone în dependenţă de faptul cum îşi schimbă
starea bistabilele ce intră în componenţa lor. Dacă bistabilele îşi schimbă starea concomitent,
atunci numărătoarele se

numesc sincrone, iar dacă starea lor se schimbă succesiv numărătoarele se numesc asincrone.
Pentru un numărător modulo 24 vor fi necesare cinci bistabile JK.
La sinteza unui numărător modulo M, din cele 2n stări posibile un număr de 2n-M sunt stări
-Karnaugh. Se poate neutilizate (ilegale) şi se
consideră ca nedeterminate în diagrama Veitch
întîmpla, însă, ca numărătorul la pornire sau sub influenţa unor semnale para Conținutul a fost
șters intenționat zitare să nimerească în una din aceste stări. Dacă după cîteva tacturi
numărătorul poate ajunge într-o stare legală, atunci funcţionarea lui de mai departe este
corectă. Însă se poate întîmpla ca numărătorul să nu poată ieşi din stările ilegale, decît numai
printr-o nouă pornire. Pentru a evita aceste cazuri, sinteza numărătorului trebuie efectuată în
aşa fel ca în tabelul de tranziţie să se facă tranziţia spre starea iniţială din oricare din stările
ilegale la următorul impuls de numărare.
Mai jos este prezentată sinteza unui numărător direct, sincron modulo 24 în baza bistabilelor JK.
Numărul de bistabile necesar realizării acestui numărător este n=[log224]=5. În tabelul de
tranziţie aceste bistabile sunt notate respectiv: Q4, Q3,Q2, Q1, Q0

Numărul de bistabile necesar n=]log224[=5.


Semnalele de comanda Qt Qt+1 J K
X Regimul de lucru
0 Registru deplasare la dreapta 0 0 0 *
aritmetica
1 Numarator direct mod 24 0 1 1 *
1 0 * 1
1 1 * 0

1.5 Elaborarea tabelului de tranzitii


Tabel 1

5
X t t+1
Q4 Q3 Q2 Q1 Q0 Q4 Q3 Q2 Q1 Q0 J4 K4 J3 K3 J2 K2 J1 K1 J0 K0

0 Q4 Q3 Q2 Q1 Q0 Q4 Q4 Q3 Q2 Q1 Q4 Q4 Q4 Q4 Q3 Q3 Q2 Q 2 Q1 Q 1
0 1 0 0 0 0 0 0 0 0 0 1 0 * 0 * 0 * 0 * 1 *
1 1 0 0 0 0 1 0 0 0 1 0 0 * 0 * 0 * 1 * * 1
2 1 0 0 0 1 0 0 0 0 1 1 0 * 0 * 0 * * 0 1 *
3 1 0 0 0 1 1 0 0 1 0 0 0 * 0 * 1 * * 1 * 1
4 1 0 0 1 0 0 0 0 1 0 1 0 * 0 * * 0 0 * 1 *
5 1 0 0 1 0 1 0 0 1 1 0 0 * 0 * * 0 1 * * 1
6 1 0 0 1 1 0 0 0 1 1 1 0 * 0 * * 0 * 0 1 *

6
7 1 0 0 1 1 1 0 1 0 0 0 0 * 1 * * 1 * 1 * 1
8 1 0 1 0 0 0 0 1 0 0 1 0 * * 0 0 * 0 * 1 *
9 1 0 1 0 0 1 0 1 0 1 0 0 * * 0 0 * 1 * * 1
1 1 0 1 0 1 0 0 1 0 1 1 0 * * 0 0 * * 0 1 *
0
1 1 0 1 0 1 1 0 1 1 0 0 0 * * 0 1 * * 1 * 1
1
1 1 0 1 1 0 0 0 1 1 0 1 0 * * 0 * 0 0 * 1 *
2
1 1 0 1 1 0 1 0 1 1 1 0 0 * * 0 * 0 1 * * 1
3
1 1 0 1 1 1 0 0 1 1 1 1 0 * * 0 * 0 * 0 1 *
4
1 1 0 1 1 1 1 1 0 0 0 0 1 * * 1 * 1 * 1 * 1
5
1 1 1 0 0 0 0 1 0 0 0 1 * 0 0 * 0 * 0 * 1 *
6
1 1 1 0 0 0 1 1 0 0 1 0 * 0 0 * 0 * 1 * * 1
7
1 1 1 0 0 1 0 1 0 0 1 1 * 0 0 * 0 * * 0 1 *
8
1 1 1 0 0 1 1 1 0 1 0 0 * 0 0 * 1 * * 1 * 1
9
2 1 1 0 1 0 0 1 0 1 0 1 * 0 0 * * 0 0 * 1 *
0
2 1 1 0 1 0 1 1 0 1 1 0 * 0 0 * * 0 1 * * 1
1
2 1 1 0 1 1 0 1 0 1 1 1 * 0 0 * * 0 * 0 1 *
2
2 1 1 0 1 1 1 0 0 0 0 0 * 1 0 * * 1 * 1 * 1
3
2 1 1 1 0 0 0 0 0 0 0 0 * 1 * 1 0 * 0 * 0 *
4
2 1 1 1 0 0 1 0 0 0 0 0 * 1 * 1 0 * 0 * * 1
5
2 1 1 1 0 1 0 0 0 0 0 0 * 1 * 1 0 * * 1 0 *
6
2 1 1 1 0 1 1 0 0 0 0 0 * 1 * 1 0 * * 1 * 1
7
2 1 1 1 1 0 0 0 0 0 0 0 * 1 * 1 * 1 0 * 0 *
8
2 1 1 1 1 0 1 0 0 0 0 0 * 1 * 1 * 1 0 * * 1
9
3 1 1 1 1 1 0 0 0 0 0 0 * 1 * 1 * 1 * 1 0 *
0

7
3 1 1 1 1 1 1 0 0 0 0 0 * 1 * 1 * 1 * 1 * 1
1

1.6 Minimizarea funcţilor J si K


J4=Q3 Q2 Q1 Q 0 Functia pentru num. direct

Q4Q3Q
11
2 000 001 011 010 110 101 100
1
Q1Q0
00 * * * *
01 * * * *
11 1 * * * *
10 * * * *

J 4 = x́ Q 4 + x Q3 Q2 Q1 Q0 Functia totala

k 4=Q2 Q1 Q3 +Q3 Functia pentru num. direct


Q4Q3Q2
000 001 011 010 110 111 101 100
Q1Q0
00 * * * * 1 1
01 * * * * 1 1
11 * * * * 1 1 1
10 * * * * 1 1

~
k 4= x́ Q 4 + x (Q 2 Q 1 Q 0 +Q 3) Functia totala

8
Q4Q3Q2
000 001 011 010 110 111 101 100
Q1Q0
00 * * * *
01 * * * *
11 1 * * * *
10 * * * *
Functia pentru
J 3=Q́ 4 Q 2 Q1 Q 0 num. direct

Functia totala
J 3= x́ Q 4 + x ( Q́ 4 Q 2 Q 1 Q 0 )

Q4Q3Q2 010
000 001 011 110 111 101 100
Q1Q0
00 * * 1 1 * *
01 * * 1 1 * *
11 * * 1 1 1 * *
10 * * 1 1 * *
Functia pentru
k 3=Q2 Q1 Q 0 +Q4
num. direct

Functia totala
k 3= x́ Q́4 + x ¿)

9
J2

Q4Q3Q2
000 001 011 010 110 111 101 100
Q1Q0
00 * * * *
01 * * * *
11 1 * * 1 * * 1
10 1 * * * *
Functia pentru
J 2=Q́ 4 Q 1 Q 0 + Q́ 3 Q1 Q 0 num. direct

Functia totala
J 2= x́ Q 3+ x( Q́ 4 Q 1 Q 0 + Q́ 3 Q 1 Q 0 )

Q4Q3Q2
000 001 011 010 110 111 101 100
Q1Q0
00 * * * 1 *
01 * * * 1 *
11 * 1 1 * * 1 1 *
10 * * * 1 *
Functia pentru
k 2=Q1 Q0 +Q4 Q3
num. direct
Functia totala
k 2= x́ Q́3 + x (Q1 Q0+ Q4 Q 3)

10
J1

Q4Q3Q2
000 001 011 010 110 111 101 100
Q1Q0
00
01 1 1 1 1 1 1
11 * * * * * * * *
10 * * * * * * * *
Functia pentru
J 1=Q́3 Q0+ Q́4 Q 0
num. direct

Functia totala
J 1= x́ Q 2+ x ( Q́ 3 Q 0 + Q́ 4 Q 0 )

K1
Q4Q3Q2 110
000 001 011 010 111 101 100
Q1Q0
00 * * * * * 1 * *
01 * * * * * 1 * *
11 1 1 1 1 1 1 1 1
10 1 1
Functia pentru
k 1=¿ Q0 +Q4 Q3
num. direct

Functia totala
k 1=x́ Q1+ x (Q 0 +Q 4 Q 3 )

11
J0

Q4Q3Q2 101
000 001 011 010 110 111 100
Q1Q0
00 1 1 1 1 1 1
01 * * * * * * * *
11 * * * * * * * *
10 1 1 1 1 1 1
Functia pentru
J 0=Q́ 3 + Q́4
num. direct

Functia totala
J 0= x́ Q 1 +x(Q́3 + Q́4 ¿
K0
Q4Q3Q2
000 001 011 010 110 111 101 100
Q1Q0
00 * * * * * * * *
01 1 1 1 1 1 1 1 1
11 1 1 1 1 1 1 1 1
10 * * * * * * * *

Functia pentru
k 0=1
num. direct

k 0= x́ Q́1 + x Functia totala

12
1.7 Schema in Logic Works 5

13
Capitolul II
14
Sinteza utomatului de comandă
2.1 Date generale despre automate
A.C este destinat generarii semnalelor de comanda corespunzatoare catre alte componente ale
calculatorului pentru a asigura indeplinirea operatiilor necesare.Fiecare semnal de comnada
stabileste indeplinirea unei microoperatii.Succesiunea microoperatiilor necesare indeplinirii unei
instructiuni este determinata de microalgoritmul acestei actiuni.In linii generale A.C este format
din doua componente distince:
1.Un circuit logic combinational in care se implementeaza informatia necesara generarii
semnalelor de comanda.
2.Memoria A.C. formate din cateva bistabile,numarul carora depinde de numarul de stari ale
automatului.
Intrarile circuitului logic combinational se imparte in doua grupuri,primul grup sunt asa
numitele semnalele informationale in baza carora se i-au deciziile de ramificari in algoritmul
automatului ,iar cel de-al doilea grup de semnale de intrare sunt iesirile bistabilelor din memoria
A.C

2.2 Descrierea algoritmului de inmultire in virgule mobile


Etapele operatiei:
1.Determinarea semnului produsului prin adunarea modulo 2 a semnelor mantiselor.
Sgmx Sgmy=Sgmz
2.Determinarea modulelor numerelor cu conditia ca ele sunt in CC.Daca numarul e negative,se
inverseaza si se aduna cu 1.
3.Determinarea exponentului rezultatului prin adunarea exponentilor.
Ex+ey=ez
4.Inmultirea modulelor ,dupa unul dintre algoritmi:mx*my.
5.Reprezentarea numerelor in CC in dependent de semnul din punctul 1.
Daca semnul lui mz este negative,se inverseaza si se aduna 1.
6.Normalizarea rezultatului .La inmultire nu poate avea loc depasirea deoarece produsul tot
timpul va vea un nr. X2 de biti.
Poate avea loc denormalizrea ,mantisa se deplaseaza la stanga pana cand semnul si primul bit vor
fi diferiti iar din exponent se scade nr deplasarilor.

15
2.3 Etapele de sinteză a algoritmului

Start

Nu Verificare la demaraj
Demaraj

Da
(RgMx) <0> (RgEx) <0>
(RgMy) <0> (RgEx) <0> Resetarea tuturor registrelor
(RgMz ) <0> (RgEx) <0>
(CT) <0>

(RgMx) <Mx> (RgEx) <Ex > Încărcarea datelor


(RgMy ) <My> (RgEy) <Ey >
(CT) <18>

B RgMx [18] + RgMy [18] Semnul produsului se înscrie în bistabilul B


Calcularea exponentului rezultatului
(RgEz) (RgEx)+(RgEy)

Da Dacă mantisa lui X este negativă ea e


RgMx [18]=1
reprezintă în codul complementar. Pentru a
(RgMx) n(RgMx)+1 găsi modulul, Mx se inversează și se adună 1
Nu

Dacă mantisa lui Y este negativă ea e


Da
RgMy [18]=1 reprezintă în codul complementar. Pentru a
(RgMy) n(RgMy)+1
găsi modulul lui My se inversează și se adună 1
Nu
Acum lucrăm doar cu modulele operanzilor
Nu
RgMy [0]=1
Se verifică bitul cel mai nesemnificativ al
Da înmulțitorului, deoarece e metoda 1.
Dacă el e egal cu 1, în sumator se aduna Mx la
(RgMz) (RgMz)+(RgMx)
produsul parțial.

Dacă e zero se trece la deplasări: Mx la stanga,


(RgMx) (RgMx)*2
-1 My la dreapta.
(RgMy) (RgMy)*2
(CT) (CT)-1
Se decrementează numărătorul

Nu Dacă CT e diferit de zero se trece la


(CT)=0
următoarea iterație
Da
1 Dacă CT=0 se trece la analiza semnului
produsului aflat în bistabilul B (eticheta 1)

16
Dacă B=0, semnul produsului e pozitiv Dacă
B=1, produsul e negativ și pentru obținerea
codului complementar se inversează și se
adună 1,

Se verifică dacă are loc denormalizarea.


Pentru aceasta se adună modulo 2 bitul
semnului [17] șI următorul bit [16]. Dacă
acești biți sunt la fel, funcția XOR va fi egală
cu 0, și în acest caz avem denormalizare.
Pentru normalizare, Mz se deplasează la
stânga și se verifică încă odată biții 17 și 16.
Doar când ei vor fi diferiți (Funcția XOR va fi
egală cu 1), Mx și Ez se transmite la
magistrala de date.

2.3.1Fig 1. Schema- Bloc a algoritmului

17
Start

0
x1

y 1,y2,y3,y4,y5,y6,y7 S1

y 8,y9,y10,y11,12 S2

y 13 S3

y 14,y15,y16 S4

1
X2

y 17
0 S5

1
X3

y 18
0 S6

X4 0

y 19,y20,y21
S7

y 22,y23,y24
S8

0
X5

18
1

1
X6
S9
y 25
0

X7
0

1 S10
y 26,y27

y 14,y15,y16
S11

STOP S0

2.3.2Fig 2. Schema-bloc marcata a algoritmului

Elaborarea listei microoperațiilor și a condițiilor logice;

y1 - microoperația de resetare a conținutului RgMx;


y2- microoperația de resetare a conținutului RgMy;
y3- microoperația de resetare a conținutului RgMz;
y4- microoperația de resetare a conținutului RgEx;
y5- microoperația de resetare a conținutului RgEy;
y6- microoperația de resetare a conținutului RgEz;
y7- microoperația de resetare a conținutului numaratorului CT;
y8- microoperația de încărcare a datelor în RgMx;
y9- microoperația de încărcare a datelor în RgMy;
y10- microoperația de încărcare a datelor în RgEx;
y11- microoperația de încărcare a datelor în RgEy;
y12- microoperația de încărcare a datelor în numaratorul CT;

19
y13-microoperatia de inscriere a semnului produsului in bistabilul B;
y14- microoperația de transfer a datelor din RgEy în sumatorul SM;
y15- microoperația de transfer a datelor din RgEx în sumatorul SM;
y16- microoperația de transfer a datelor din sumatorul SM in RgEz;
y17-microoperatia de obtinere a modulului conținutului RgMx;
y18-microoperatia de obtinere a modulului conținutului RgMy;
y19- microoperația de transfer a datelor din RgMx în sumatorul SM;
y20- microoperația de transfer a datelor din RgMz în sumatorul SM;
y21- microoperația de transfer a datelor din sumatorul SM in RgMz;
y22- microoperația de deplasare a conținutului RgMx la stânga;
y23- microoperația de deplasare a conținutului RgMy la dreapta;
y24- microoperația de decrementare a numărătorului CT;
y25-microoperatia de obtinere a conținutului RgMz in codul complementar;
y26- microoperația de deplasare a conținutului RgMz la stânga;
y27-microoperatia de decrementare a continutului RgEz;
y28- microoperația de transfer a conținutului RgMz la magistrala de date M;
y29- microoperația de transfer a conținutului RgEz la magistrala de date M;

Lista condițiilor logice


x1 –condiția de verificare a demarajului;
x2- condiția de verificare la 1 a bitului cel mai semnificativ al RgMx;
x3- condiția de verificare la 1 a bitului cel mai semnificativ al RgMy;
x4- condiția de verificare la 1 a bitului cel mai puțin semnificativ al RgMy
x5- condiția de comparare cu zero a conținutului numărătorului;
x6-conditia de comparare cu unu a bistabilului B;
x7-conditia de verificare a denormalizarii continutului RgMz;

20
S0

2.3.3Fig3.Graful de tranzitie X1 x́ 1

S1

y 1,y2,y3,y4,y5,y6,y7

S2

y 1,y2,y3,y4,y5,y6,y7

1
S3

y 13

S4 1

X2 y 14,y15,y16

X́ 2 x 3
x́ 2 x́S5
3 x4 S6
y 17
X3 y 18 x4 S7

x́ 3 x 4 y 19,y20,y21 x 4 x́ 5 x́ 2 x́ 3 x́ 4

x́ 4 S8

x́ 3 x́ 4 y 22,y23,y24

x́ 4 x́ 5

X5x6 x 5 x́ 6 x7

x 5 x́ 6 x́7
S9

y 25
x́ 7 S11
S10
X7 y 28,y29
y 26,27

21
X7 x́ 7

4. Codificarea stărilor automatului de comandă.


5. Pentru codificarea stărilor se determină numărul biților necesari pentru codificare din relația
n=]log2 N [, unde N este numărul stărilor.
Valoarea n va determina numărul bistabilelor din memoria automatului de omandă.
Pentru exemplul analizat N=12 și n=4. Vom nota bistabilele Q3,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

Q3Q2
00 01 11 10
Q1Q0
00 S0 S7 S8
01 S1 S6 S9
11 S2 S5 S10
10 S3 S4 S11
2.3.4Codificarea starilor cu diagrama Karnaugh.
2.3.5Tabelul starilor.
Stare Q3 Q2 Q1 Q0
a
S0 0 0 0 0
S1 0 0 0 1
S2 0 0 1 1
S3 0 0 1 0
S4 0 1 1 0
S5 0 1 1 1
S6 0 1 0 1
S7 0 1 0 0
S8 1 1 0 0
S9 1 1 0 1
S10 1 1 1 1
S11 1 1 1 0

22
2.3.5. Elaborarea tabelului de tranziție al automatului de comandă.
Starea Codul Starea Codul Conditia Semnale de Semnale de setare/resetare a
(t) starii (t+1) starii logica comanda bistabilelor

Si Q3Q2Q1Q0 Si Q3Q2Q1Q0 Xi Yi J3 K3 J2 K2 J1 K1 J0 K0
1. S0 0000 S0 0000 x́ 1 - - - - - - - - -
2. S0 0000 S1 0001 X1 y 1,y2,y3,y4,y5,y6,y7 - - - - - -- J0 -
3. S1 0001 S2 0011 1 Y8,y9,y10,y11,y12 - - - - J1 - - -
4. S2 0011 S3 0010 1 y13 - - - - - - - K0
5. S3 0010 S4 0110 1 Y 14,y15,y16 - - J2 - - - - -
6. S4 0110 S5 0111 X2 Y17 - - - - - - J0 -
7. S4 0110 S6 0101 x́ 2 x 3 Y18 - - - - - K1 J0 -
8. S4 0110 S7 0100 x́ 2 x́ 3 x 4 Y19,y20,y21 - - - - - K1 - -
9. S4 0110 S8 1100 x́ 2 x́ 3 x́ 4 Y22,y23,y24 J3 - - - - K1 - -
10. S5 0111 S6 0101 X3 Y18 - - - - - K1 - -
11. S5 0111 S7 0100 x́ 3 x 4 Y19,y20,y21 - - - - - K1 - K0
12. S5 0111 S8 1100 x́ 3 x́ 4 Y22,y23,y24 J3 - - - - K1 - K0
13. S6 0101 S7 0100 x4 Y19,y20,y21 - - - - - - - K0
14. S6 0101 S8 1100 x́ 4 Y22,y23,y24 J3 - - - - - - K0
15. S7 0100 S8 1100 1 Y22,y23,y24 J3 - - - - - - -
16. S8 1100 S7 0100 x 4 x́ 5 Y19,y20,y21 - K3 - - - - - -
17. S8 1100 S8 1100 x́ 4 x́ 5 Y22,y23,y24 - - - - - - - -
18. S8 1100 S9 1101 x5 x6 Y25 - - - - - - J0 -
19. S8 1100 S10 1111 x 5 x́ 6 x́7 Y26,y27 - - - - J1 - J0 -
20. S8 1100 S11 1110 x 5 x́ 6 x7 Y28,y29 - - - - J1 - - -
21. S9 1101 S10 1111 x́ 7 Y26,y27 - - - - J1 - - -
22. S9 1101 S11 1110 X7 Y28,y29 - - - - J1 - - -
23. S10 1111 S10 1111 x́ 7 Y26,y27 - - - - - - - -
24. S10 1111 S11 1110 X7 Y28,y29 - - - - - - - K0

25. S11 1110 S0 0000 1 - - K3 - K2 - K1 - -

2.3.6 Minimizarea funcțiilor logice pentru setarea/resetarea bistabilelor și a celor de generare a


semnalelor de comandă.

K0=S2+S5 x́ 3 x 4 +S5 x́ 3 x́ 4 +S6x4+S6 x́ 4 +¿ S9x7+S10x7=S2+S2x3+S6+S9x7+S10x7

J0=S0x1+S4x2+S4 x́ 2 x 3+S8x5x6+S8 x 5 x́ 6 x́7

K1=S4 x́ 2 x 3+S4 x́ 2 x́ 3 x 4 +S4 x́ 2 x́ 3 x́ 4 +S5x3+S5 x́ 3 x 4 +S5 x́ 3 x́ 4 +S11= S4 x́ 2 x 3+ S4 x́ 2 x́ 3+S5x3+S5 x́ 3+S11=

=S4 x́ 2+S5+S11

J1=S1+S8 x 5 x́ 6 x́7 +S8 x 5 x́ 6 x7 +S9 x́ 7 +¿S9x7=S1+ S8 x 5 x́ 6+S9

23
K2=S11

J2=S3

K3=S11+ x 4 x́ 5

J3= x́ 2 x́ 3 x́ 4 +S5 x́ 3 x́ 4 +S6 x́ 4 +S7

2.3.7Figura 4. schema de structura a automatului operational

RgMx

X1
0 0

18
Y8 LD X2 Y19
Y22 sh 18
Res
Y1 RgMy
X4
0 0

18
Y9
LD

Y23 sh 18 X3
Res

Y2 RgMz
X5
0 0 SM

Y21 18
LD
Y26 SHR 18
Res Y14
Y3 RgEx

0 0
MD
6
Y10 Y20
LD
X3
6
Res
Y4
RgEy Y15
X3
0 0

6
Y11 LD
6
Res
Y5
RgEz
24
Y28
0 0

Y16 6
LD
Y27 Y29
-1 6
Res
Y6
CT

0 X5
18
Y12
LD
Y24Y24 -1
Res
Y7Y7

2.3.8 Figura 5. Schema A .C in Logic Work

25
Capitolul III
Sinteza automatului operational
3.1 Date generale
3.2 Alegerea componentelor

Orice unitate a unui calculator numeric are două componente distincte,care la mod
generalizat se împart în automatul de comandă şi automatul operaţional (în continuare A.O.).
A.O. este acea componentă a unităţii de calcul care este destinată îndeplinirii tuturor
operaţiilor logice de transfer,de memorare ş.a. din calculator,iar auotmatul de
comandă (în continuare A.C.) este acea parte componentă a unităţii de calcul care stabileşte
pentru A.O. în ce ordine şi -n care operaţii trebuie îndeplinite pentru a atinge scopul
scondat.
În componenţa A.O. intră: elementele functionale care asigură memoria
datelor,adică registrele,numărătoarele; elementele funcţionale ce asigură procesarea datelor,
adică sumatorile,circuite cu operaţii logice.
În componenţa unităţilor de comandă intră două componente de bază:Conținutul a fost șters
intenționat

1) un circuit logic combinaţional care asigură examinarea informaţiei în baza căreia


se emit aşa numitele semnale de comandă pentru a îndeplini operaţiile necesare;
2) un grup de bistabile care determină starea automatului de comandă şi în baza
acestei stări se stabilleţâşte în fiecare moment de timp care semnale de comandă trebuie
transmise automatului operaţional şi care semnale de comandă sunt necesare pentru a asigura
tranziţia A.C. dintr-o stare în alta.
Pentru îndeplinirea fiecărei operaţii este necesară elaborarea algoritmului care
stabileşte succesiunea de microoperaţii care trebuie îndeplinite de A.O. Această succesiune
de microoperaţii formează microprogramul de realizare a microoperaţiei respective,
microprogramul se împarte în microinstrucţiuni.O microinsrucţiune include cîteva
microoperaţii care se îndeplinesc în una din stările A.C. (într-un tact de calcul). Pentru
îndeplinirea fiecărei microoperaţii A.C. trebuie să genereze un semnal de comandă, iar A.O.
în baza acestui semnal de comandă trebuie să îndeplinească microoperaţia respectivă.
Pentru a efectua sinteza A.O. la început se stabileşte cîte variabile iniţiale se vor
prelucra în acest automat şi pentru fiecare dintre ele se rezervează câte un registru în care ele
vor fi păstrate. Dacă pentru a îndeplini operaţia respectiv ă este necesar un proces ciclic
atunci în componenţa A.O. trebuie inclus minimum un numărător cu ajutorul căreia se va
stabili numărul de iteraţii necesare. Dacă pentru a realiza operaţia sunt necesare operaţii

26
aritmetice, în componenţa A.O. trebuie inclus un sumator. Dacă pentru a realiza operaţii sunt
necesare microoperaţii de decodificare sau codificare a unor cuvinte în componenţa A.O.
trebuie inclus un

codificator sau un decodificator. În cazul cînd pentru a realiza algoritmi sunt necesare
operaţii de comparare atunci în componenţa A.O. se includ operatoare sau în unele cazuri se
includ operatoare, sau în unele cazuri se includ circuite de îndeplinire a operaţiilor logice.
În cazul cînd către una şi aceeaşi componentă a A.O. datele se transmit din mai multe
surse atunci în structura A.O. trebuie incluse multiplexoarele care realizează transmiterea
datelor din sursa necesară în fiecare tact de calculator. Î afară de registre în care se păstrează
variabilele iniţiale, operanzii în componenţa A.O. mai trebuie inclus unul sau mai multe
registre pentru păstrarea datelor intermediare. Toate cele enumerate mai sus formează etapa
de stabilire a componentelor A.O.
A doua etapă este stabilirea legăturilor între componentele A.O. Legăturile se
stabilesc astfel: dacă este necesară îndeplinirea operaţiilor de adunare, de înmulţire şi puteri a
conţinutelor unor registre, atunci ieşirea acestor registre se comuteză la intrările sumatorului
în aşa mod ca ele să poată fi recepţionate.
Ieşirea sumatorului trebuie să fie conectată la intrările acelor componente a A.O. cu
care trebuie să fie transmis rezultatul obţinut. În multe cazuri sumatorul şi un registru sunt
unul faţă de altul şi sursă şi destinator deaceea sunt necesare aceste conexiuni.
Conexiunile necesare în A.O. se efectuează în paralel cu elaborarea algoritmului de
funcţionare a acestui automat.

27
Concluzie:
În cadrul proiectului dat am studiat registrele, numărătorele, automatele de
comanda și operaționale. Datorită faptului că am făcut de la 0 tot
necesarului(tablelele de tranziție, grafurile, schemele bloc) am putut realiza cum
arată întreg procesu, care este rolul registrilor, bistabilelor, a tuturor elementelor
in circuitele finale.

Bibliografie
• http://andrei.clubcisco.ro/cursuri/f/f-sym/3cn2/Laborator%201.pdf
• https://biblioteca.regielive.ro/cursuri/calculatoare/automate -de-comanda-si-automate-
operationale114860.html
• http://www.eed.usv.ro/~andy/tutoriale_fpga/index6.htm
• http://elf.cs.pub.ro/asm/wiki/laboratoare/laborator -12
• Indrumar de Laborator de ASDN.

Efectuarea operatiei de inmlutire virgula mobila metoda 1.


A=436.69
B=-712.71
A*B=311233.3299
A=0110110100,10110000101
B=-01011001000,1011010111
Ex=01001
Ey=01010
Ex 01001
+ey 01001
Ez=10011

28
011011010010110000101
010110010001011010111
011011010010110000101
011011010010110000101
1010001111000010001111
011011010010110000101
10111111000011010100011
011011010010110000101
1001110011101111011110011
011011010010110000101
100101000110100000000110011
011011010010110000101
1011011101100000001010110011
011011010010110000101
100110110000010000110010110011
011011010010110000101
0111011011011100011010110010110011
011011010010110000101
0111110000000111101101010110010110011
011011010010110000101
10101011001100000000001010110010110011
011011010010110000101
01001011111111000001010001010110010110011

Mz=01001011111111000001010001010110010110011
Mantisa este normalizata
Atribuim semnul rezultatului care este negativ
Mz=1.1001011111111000001010001010110010110011

Efectuam conversia in sistemul zecimal


Z=-0.1001011111111000001,010001010110010110011=311233,292

29

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