Documente Academic
Documente Profesional
Documente Cultură
MEMORIU EXPLICATIV
la proiectul de an la disciplina:
Analiza și sinteza dispozitivelor numerice
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
2
Introducere
Î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.
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.
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
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
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= 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
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
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>
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,
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
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;
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
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
=S4 x́ 2+S5+S11
23
K2=S11
J2=S3
K3=S11+ x 4 x́ 5
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
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
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.
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
29