Sunteți pe pagina 1din 18

Platformdeelearningicurriculecontent

pentrunvmntulsuperiortehnic

ProiectareaLogic

21.Aplicatiialenumaratoarelor

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

APLICATII ALE NUMARATOARELOR


IMPLEMENTAREA UNUI AUTOMAT FOLOSIND UN NUMRTOR CA REGISTRU DE STRI

Metoda numrtorului de salt presupune implementarea unui automat folosind un


numrtor ca registru de stri. Aceast abordare folosete componente MSI (medium scale
integrates), cum ar fi numrtoare sincrone, multiplexoare, decodificatoare. Pentru o mai
bun nelegere, va fi mai nti prezentat aceast metoda de implementare ca un concept
general, urmnd particularizarea pentru procesorul ales.
Numrtoarele sincrone sunt indicate pentru implementarea automatelor, n
detrimentul celor asincrone, care pot duce la un comportament anormal al circuitului
secvenial considerat. Cele mai frecvent utilizate numrtoare integrate sunt TTL, de exemplu
pentru cazul de fa numrtorul binar direct TTL 74163. Pe lng respectarea unui semnal
de tact, numrtoarele sincrone prezint avantajul implementrii unui registru de stri cu
mecanisme pentru avansarea strii (count - CNT), resetarea la zero (clear - CLR) i saltul la o
stare nou (load - LD). Codificarea strii urmtoare, n loc de implementarea ca o funcie pe
bii de stare, se poate face asertnd n condiiile necesare semnalele de control CNT, LD i
CLR ale numrtorului.
Tranziiile de stare susinute de un numrtor sunt prezentate n figura urmtoare.

METODA NUMRTORULUI DE SALT

Numrtoarele de stare se mpart n doua clase: pure i hibride. Cele pure permit
numai una din patru stri urmtoare posibile: starea curent (numrtorul ateapt), starea
secvenial urmtoare (numrtorul numr), starea 0 (numrtorul se reseteaz), sau o stare
Proiectarea Logic

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

singular de salt (numrtorul ncarc). n acest caz, starea de salt este strict o funcie de
starea curent. Un numrtor hibrid suport aceleai tranziii, dar permite strii de salt s fie o
funcie att de intrri, ct i de starea curent.

Numrtorul de salt pur


Schema bloc a unui numrtor de salt pur este prezentat n figura urmtoare.

Starea de salt este o funcie de starea curent, n timp ce intrrile resetare, ncrcare,
numrare ale registrului de stri depind de starea curent i de intrrile curente. Se face
presupunerea c resetarea precede ncrcarea, care la rndul ei preced numrarea. Blocurile
logice din figur pot fi implementate cu pori logice discrete, PAL/PLA (programmable array
logic/programmable logic arrays) sau ROM (read only memories). n mod frecvent se
folosesc circuite ROM pentru a implementa logica strii urmtoare.
Secvenionarea restrns a strilor numrtorului pur este dat n figura 14. Pentru a
profita maxim de registrul de stri al numrtorului, trebuie ca strile sa fie desemnate n
secven de numrare. Cea mai frecvent trecere a tranziiei trebuie aleas 0.

Proiectarea Logic

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

Aceast structur se dovedete de obicei a fi resctrivctiv pentru strile care necesit o


ramificare multi-ci mai general. Pentru aceste stri, abordarea prin prisma numrtorului de
salt pur va trebui s introduc un surplus de stri, ca n figura urmtoare.

Figura 15(a) prezint diagrama de decodificare a operaiei pentru procesorul


considerat. Pentru a implementa aceast secven folosind un numrtor de salt pur, este
necesar diagrama de stri din figura 15(b). Astfel se introduc dou noi stri de decodificare,
i prin urmare se mrete numrul de stri necesare executrii instruciunilor de ncrcare,
stocare, sau adugare din memorie.
Din aceste motive a fost conceput modelul numrtorului de salt hibrid, mult mai
general dect cel pur.

Numrtorul de salt hibrid


Numrtorul de salt hibrid rezolv problema ramificrii multi-ci prin transformarea
strii de salt ntr-o funcie att de intrri, ct i de starea curent. Acest lucru este evideniat
n figura 16. Starea de salt i logica resetrii, a ncrcrii i a numrrii sunt toate funcii de
intrri i starea curent.

Proiectarea Logic

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

Numrtorul de salt hibrid poate fi implementat folosind o diagram de stri de tip


Mealy. n primul rnd trebuie atribuite diagramei strile codate. Cele mai multe tranziii de
stri avanseaz n starea urmtoare sau ateapt n starea curent depinznd de valoarea
semnalului de ateptare.
Trebuie de asemena gsit starea creia i va fi atribuit 0. Deoarece starea RES este
cea mai frecvent utilizat, este cea mai bun posibilitate. ncepnd cu 0, atribuirea strilor se
va face n sens cu avansarea n diagram, ca n figura 17.
n continuare se identific strile de ramificare, ale cror tranziii ctre strile
urmtoare nu pot fi descrise prin termeni simpli ca ateptare (meninere a strii curente),
numrare (avansare n starea urmtoare), sau resetare (trecere la 0). Singura asemenea stare
este OD (decodificarea operaiei). n acest caz, tranziiile ctre strile urmtoare pot fi
descrise ca funcii ale strii curente i biilor de codare ai operaiilor registrului de instruciuni.
De fapt, din moment ce aceasta este singura ramur multi-ci din ntreaga diagram de stri,
logica strii de salt este o funcie numai de biii de codificare ai operaiilor din registrul de
instruciuni.
Diagrama complet de stri este prezentat n figura 17. Se presupune c strile sunt
numerotate de la S0 la S13. Pentru tranziiile ctre starea RES (reset S0), starea CLR a
numrtorului trebuie asertat n strile S7, S9 (dac semnalul de ateptare este de asemenea
asertat), S12 i S13.
Semnalul LD al numrtorului este asertat numai pentru stri cu ramuri multi-ci.
Pentru aceast diagram de stri, trebuie asertat n starea S4, de decodificare a operaiei (OD).
Logica saltului, determinat de biii de codificare ai operaiei din IR, genereaz ca noua stare
s fie ncrcat n numrtorul de stri.

Proiectarea Logic

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

Pentru asertarea semnalului CNT ecuaiile Boole-ene sunt:


CNT = (S0 + S5 + S8 + S10 ) + Wait (S1 + S9 ) + Wait (S 2 + S 6 + S9 + S10 )

HOLD = Wait (S1 + S9 ) + Wait (S 2 + S 6 + S 9 + S11 )


Trebuie precizat notaia HOLD, fcut pentru starea de Meninere a numrtorului
(figura 14). Starea de meninere este exact negarea strii de numrare: HOLD = CNT

Dup cum se observ, ecuaia pentru HOLD este mai simpl dect cea pentru CNT. Se
va implementa aadar HOLD i apoi se va face negarea.
Logica strii de salt S4 (OD) poate fi implementat cu un ROM ale crui intrri de
adrese sunt cei doi bii de codificare din IR.

Proiectarea Logic

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

Implementarea numrtorului de salt

O descriere schematic a numrtorului de salt este prezentat n figura urmtoare.

Proiectarea Logic

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

Componentele principale sunt:


(1) un numrtor sincron (74163) folosit ca registru de stri
(2) un decodificator cu 4 intrri i 16 ieiri (74154) pentru a genera semnalele de indetificare a
strii curente
(3) logica strii de salt, implementat cu un circuit ROM indexat de cei doi bii de codificare a
instruciunii din IR
(4) un circuit PAL pentru implementarea intrrii CNT a numrtorului
(5) logic discret pentru implementarea intrrii CLR a numrtorului
Din moment ce LD este asertat numai ntr-o singur stare, S4, ieirea decodificatorului
pentru aceasta stare comand direct intrarea LD.
Logica numrtorului de salt hibrid poate fi detaliat, mai nti prin inspectarea
coninutului circuitului ROM. Astfel, pentru fiecare codificare de adres format din biii
IR<15:14>, n ROM sunt stocate strile urmtoare corespunztoare:
Adres
00
01
10
11

Coninut (stare simbolic)


0101 (LD0)
1000 (ST0)
1010 (AD0)
1101 (BR0)

Realizarea restului numrtorului de salt nu este dificil. Totui, exist o complicaie:


polaritatea negativ a semnalelor de control LOAD i CLR ale numrtorului 74163, precum
i ieirile active jos ale decodificatorului 74154.
n ceea ce privete semnalul CLR, n logic pozitiv acesta poate fi exprimat astfel:
CLR = Reset + S7 + S12 + S19 + (S19 Wait )
Deoarece semnalul de intrare CLR este activ jos, funcia trebuie rescris folosind
teorema DeMorgan:
CLR = Reset S7 S12 S19 (S19 + Wait )
Din fericire, decodificatorul furnizeaz exact aceste semnale active jos. Implementarea
se realizeaz cu o poart NAND cu 2 intrri negate (ceea ce deriv de fapt o poart OR) i o
poart NOR cu 5 intrri negate (ceea ce deriv o poart AND).
Este mult mai convenabil implementarea HOLD dect CNT. Cu alte cuvinte,
complementul lui HOLD este CNT. Astfel, HOLD poate fi implementat folosind un circuit
PAL cu polaritatea ieirii programabil i alegnd ca ieirea s fie n logic negtiv. Funcia
PAL devine:
HOLD = S1 Wait + S 2 Wait + S9 Wait + S6 Wait + S9 Wait + S11 Wait
(CNT) HOLD = S1 Wait + S 2 Wait + S9 Wait + S6 Wait + S9 Wait + S11 Wait

Deoarece decodificatorul d starea curent n logic negativ, este preferat


specificarea funciei HOLD folosind versiunile active jos ale intrrilor de stare. Circuitul PAL
este de fapt implementat astfel:
HOLD = S1 Wait + S 2 Wait + S9 Wait + S6 Wait + S9 Wait + S11 Wait
(CNT) HOLD = S1 Wait + S 2 Wait + S9 Wait + S6 Wait + S9 Wait + S11 Wait

Proiectarea Logic

APLICAII ALE

NUMARATOARELOR

_____________________________________________________________________________________________________________________________________________________________________________________

Codificri
Codificarea strilor i a semnalelor de ieire este fcut dup cum urmeaz:
Stare
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13

Cod
stare
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101

Ieire (operaii de transfer la regitri)


0 PC
PC MAR; PC+1 PC
MARMemorie; 1Citire/(Scriere)'; 1Cerere
MemorieMBR
MemorieIR
IR<13:0>MAR
ACMBR
MBRAC
MARMem.;MBRMem.;0Citire/(Scriere)';1Cerere
0Cerere
MBR+ACAC
IR<13:0>PC

Simbol
ieire
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11

Bistabilul JK
Implementarea unitii de control s-a realizat i din punctul de vedere al unui automat
clasic, n sensul implementrii prin folosirea bistabililor JK.
Circuitele basculante bistabile (bistabilii) sunt circuite cu dou stri stabile, trecerea
dintr-o stare n alta fcndu-se numai la modificarea unei variabile de intrare.
Structura bistabililor JK este prezentat n figura 19. n acest caz, J i K sunt intrrile
bistabilului, iar Q i Q' sunt ieirile. Tabelul de funcionare este:
J(t)
0
0
1
1

K(t)
0
1
0
1

Q(t)
x
x
x
x

Q(t+1)
Q(t)
0
1
Q'(t)

Din tabelul de funcionare se poate deduce urmtoarea ecuaie caracteristic, n care


Q(t) reprezint starea curent, iar Q(t+1) starea urmtoare: Q(t + 1) = Q(t ) K '+Q' (t ) J
n cele ce urmeaz au fost realizate tabelele de tranziie, att din punct de vedere
simbolic, ct i codificat. n cele din urm, este prezentat tabela de tranziie pregtitoare
implementrii unitii de control folosind bistabili JK.

Proiectarea Logic

Unitatea de control a unui procesor simplu

_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Tabela de tranziie simbolic


Stare Cod Simbol Reset Wait IR15 IR14 AC15
S0

0000

RES

S1

0001

IF0

S2

0010

IF1

S3

0011

IF2

S4

0100

OD

S5

0101

LD0

S6

0110

LD1

S7

0111

LD2

S8

1000

ST0

S9

1001

ST1

S10

1010

AD0

S11

1011

AD1

S12

1100

AD2

S13

1101

BR0

Proiectarea Logic

1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

x
x
0
1
1
0
0
1
x
x
x
x
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
x
x

x
x
x
x
x
x
x
x
0
0
1
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x

x
x
x
x
x
x
x
x
0
1
0
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x

x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
0

Starea
curent
x
RES (S0)
IF0 (S1)
IF0 (S1)
IF1 (S2)
IF1 (S2)
IF2 (S3)
IF2 (S3)
OD (S4)
OD (S4)
OD (S4)
OD (S4)
LD0 (S5)
LD0 (S5)
LD1 (S6)
LD1 (S6)
LD2 (S7)
LD2 (S7)
ST0 (S8)
ST0 (S8)
ST1 (S9)
ST1 (S9)
AD0 (S10)
AD0 (S10)
AD1 (S11)
AD1 (S11)
AD2 (S12)
AD2 (S12)
BR0 (S13)
BR0 (S13)

Starea
urmtoare
RES (S0)
IF0 (S1)
IF0 (S1)
IF1 (S2)
IF1 (S2)
IF2 (S3)
IF2 (S3)
OD (S4)
LD0 (S5)
ST0 (S8)
AD0 (S10)
BR0 (S13)
LD0 (S5)
LD1 (S6)
LD1 (S6)
LD2 (S7)
LD2 (S7)
RES (S0)
ST0 (S8)
ST1 (S9)
ST1 (S9)
RES (S0)
AD0 (S10)
AD1 (S11)
AD1 (S11)
AD2 (S12)
AD2 (S12)
RES (S0)
RES (S0)
RES (S0)

Operaii de transfer la regitri


0 PC
PC MAR; PC+1 PC
MARMemorie; 1Citire/(Scriere)'; 1Cerere
1Citire/(Scriere)'; 1Cerere; MARMemorie
MemorieMBR
MemorieIR
IR<15:14>=00; IR<13:0>MAR
IR<15:14>=01; IR<13:0>MAR; ACMBR
IR<15:14>=10; IR<13:0>MAR
IR<15:14>=11; IR<13:0>MAR
MARMemorie; 1Citire/(Scriere)'; 1Cerere
1Citire/(Scriere)'; 1Cerere; MARMemorie
MemorieMBR
MBRAC
MARMem.;MBRMem.;0Citire/(Scriere)';1Cerere
0Citire/(Scriere)';1Cerere;MARMem.;MBRMem.
0Cerere
MARMemorie; 1Citire/(Scriere)'; 1Cerere
1Citire/(Scriere)'; 1Cerere; MARMemorie
MemorieMBR
MBR+ACAC
IR<13:0>PC

10

Unitatea de control a unui procesor simplu

_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Tabela de tranziie
Reset
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

Wait
x
x
0
1
1
0
0
1
x
x
x
x
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
x
x

Proiectarea Logic

Intrri
IR15
x
x
x
x
x
x
x
x
0
0
1
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x

IR14
x
x
x
x
x
x
x
x
0
1
0
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x

AC15
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
0

Qt3
x
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1

Stare curent
Qt2
Qt1
Qt0
x
x
x
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1

t+1

Q3
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0

Stare urmtoare
Q2t+1
Q1t+1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0

Ieiri
t+1

Q0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0

C0
C1
C2
C2
C3
C4
C5
C5 ; C6
C5
C5
C2
C2
C3
C7
C8
C8
C9
C2
C2
C3
C10
C11

11

Unitatea de control a unui procesor simplu

_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Tabela de tranziie necesar implementrii cu bistabili JK


Reset
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

Wait
x
x
0
1
1
0
0
1
x
x
x
x
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
x
x

Intrri
IR15 IR14
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
0
0
0
1
1
0
1
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x

Proiectarea Logic

AC15
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
0

Stare curent
Qt2 Qt1 Qt0
x
x
x
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1

Qt3
x
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1

t+1

Q3
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0

Stare urmtoare
Q2t+1 Q1t+1 Q0t+1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0

JK 3
JK 2
JK 1
JK 0
J3 K3 J2 K2 J1 K1 J0 K0
x x x x x x x x
0 x 0 x 0 x 1 x
0 x 0 x 0 x x 0
0 x 0 x 1 x x 1
0 x 0 x x 0 0 x
0 x 0 x x 0 1 x
0 x 0 x x 0 x 0
0 x 1 x x 1 x 1
0 x x 0 0 x 1 x
1 x x 1 0 x 0 x
1 x x 1 1 x 0 x
1 x x 0 0 x 1 x
1 x x 0 0 x x 0
0 x x 0 1 x x 1
0 x x 0 x 0 0 x
0 x x 0 x 0 1 x
0 x x 0 x 0 x 0
0 x x 1 x 1 x 1
x 0 0 x 0 x 0 x
x 0 0 x 0 x 1 x
x 0 0 x 0 x x 0
x 1 0 x 0 x x 1
x 0 0 x x 0 0 x
x 0 0 x x 0 1 x
x 0 0 x x 0 x 0
x 0 1 x x 1 x 1
x 0 x 0 0 x 0 x
x 1 x 1 0 x 0 x
x 1 x 1 0 x x 1
x 1 x 1 0 x x 1

12

Unitatea de control a unui procesor simplu

___________________________________________________________________________________________________________________________________________________________________________________________

MINIMIZAREA FUNCIILOR LOGICE


Minimizarea funciilor logice pentru intrrile J i K ale bistabililor folosii au fost fcute
utiliznd programul de minimizare Espresso.
Fiierele de intrare i de ieire sunt:
Fiierul de intrare
.i 9
.o 8

Fiierul de ieire
.i 9
.o 8

.ilb reset wait ir15 ir14 .ilb reset wait ir15 ir14
ac15 q3 q2 q1 q0
ac15 q3 q2 q1 q0
.ob j3 k3 j2 k2 j1 k1 j0 k0
.ob j3 k3 j2 k2 j1 k1 j0 k0
.p 13

.p 30
1-------0----0000
00---0001
01---0001
01---0010
00---0010
00---0011
01---0011
0-00-0100
0-01-0100
0-10-0100
0-11-0100
00---0101
01---0101
01---0110
00---0110
00---0111
01---0111
00---1000
01---1000
01---1001
00---1001
00---1010
01---1010
01---1011
00---1011
00---1100
01---1100
0---11101
0---01101
.e

Proiectarea Logic

-------0-0-0-10-0-0--0
0-0-1--1
0-0--000-0--010-0--0-0
0-1--1-1
0--00-11--10-01--11-01--00-11--00--0
0--01--1
0--0-000--0-010--0-0-0
0--1-1-1
-00-0-0-00-0-1-00-0--0
-10-0--1
-00--00-00--01-00--0-0
-01--1-1
-0-00-0-1-10-0-1-10--1
-1-10--1

--01-0100
--11-0100
--10-0100
-0---1011
--00-0-0-0----101
-1---0-11
-1---10--0---1-01
-1---110-0---0-1-1---0--1
-----000.e

10010000
10000010
10011000
00100101
00000010
10000000
00110100
00000010
01010001
01010001
00000010
00001001
00000010

13

Unitatea de control a unui procesor simplu

___________________________________________________________________________________________________________________________________________________________________________________________

Conform fiierului de ieire, funciile rezultate sunt urmtoarele:


J 3 = (IR15)' (IR14)Q3' Q 2Q1' Q'0 + (IR15)(IR14)Q3' Q 2Q1' Q '0 + (IR15)(IR14)' Q3' Q 2Q1' Q'0 +
+ ( Wait)' Q 2Q1' Q 0 = [(IR14) + (IR15)(IR14)']Q3' Q 2Q1' Q '0 + ( Wait)' Q 2Q1' Q0

K 3 = ( Wait)' Q3Q1' Q 0 + WaitQ3Q 2Q1'


J 2 = ( Wait)' Q3Q '2Q1Q0 + WaitQ3' Q1Q 0
K 2 = (IR15)' (IR14)Q3' Q 2Q1' Q '0 + (IR15)(IR14)' Q3' Q 2Q1' Q'0 + WaitQ3' Q1Q 0 +
+ ( Wait)' Q3Q1' Q 0 + WaitQ3Q 2Q1' =
= [(IR14) (IR15)]Q3' Q 2Q1' Q'0 + WaitQ3' Q1Q 0 + ( Wait)' Q3Q1' Q 0 + WaitQ3Q 2Q1'
J 1 = (IR15)(IR14)' Q 3' Q 2 Q1' Q '0 + WaitQ 3' Q 0
K1 = ( Wait)' Q3Q'2Q1Q0 + WaitQ3' Q1Q 0
J 0 = (IR15)(IR14)Q3' Q 2Q1' Q '0 + (IR15)' (IR14)' Q3' Q1' + ( Wait)' Q3' Q1 + Q3' Q '2Q1' =
= [(IR14) (IR15)]' Q3' Q 2Q1' Q'0 + ( Wait)' Q3' Q1 + (Q3 + Q 2 + Q1 )'

K 0 = ( Wait)' Q 3 Q '2 Q1Q 0 + WaitQ 3 Q1' Q 0 + WaitQ 3 Q 2 Q1' + WaitQ 3' Q 0


Se observ identitatea K1 = J 2 .
Pentru reducerea numrului de pori logice necesare implementrii acestor funcii, s-a
apelat la simplificri, n sensul utilizrii, pe lng porile OR i AND, a porilor XOR sau NOR.
Pentru minimizarea funciilor logice ce descriu ieirile unitii de comtrol, i.e. operaiile
de transfer la regitri, s-a folosit, ca i n cazul anterior, programul de minimizare Espresso. Au
fost obinute urmtoarele fiiere de intrare i ieire:

Proiectarea Logic

14

Unitatea de control a unui procesor simplu

___________________________________________________________________________________________________________________________________________________________________________________________

Fiierul de intrare

Fiierul de ieire

.i 9
.o 12

.i 9
.o 12

.ilb reset wait ir15 ir14


ac15 q3 q2 q1 q0
.ob c0 c1 c2 c3 c4 c5 c6 c7
c8 c9 c10 c11

.ilb reset wait ir15 ir14


ac15 q3 q2 q1 q0
.ob c0 c1 c2 c3 c4 c5 c6 c7
c8 c9 c10 c11

.p 30

.p 15

1-------0----0000
00---0001
01---0001
01---0010
00---0010
00---0011
01---0011
0-00-0100
0-01-0100
0-10-0100
0-11-0100
00---0101
01---0101
01---0110
00---0110
00---0111
01---0111
00---1000
01---1000
01---1001
00---1001
00---1010
01---1010
01---1011
00---1011
00---1100
01---1100
0---11101
0---01101
.e

Proiectarea Logic

100000000000
010000000000
000000000000
001000000000
001000000000
000100000000
000000000000
000010000000
000001000000
000001100000
000001000000
000001000000
000000000000
001000000000
001000000000
000100000000
000000000000
000000010000
000000000000
000000001000
000000001000
000000000100
000000000000
001000000000
001000000000
000100000000
000000000000
000000000010
000000000001
000000000000

0-01-0100
0---11101
00---1011
00---1001
01---0111
01---1100
01---0011
00---0-10
01---1010----0100
01---1000----0000
01---0-10
01---0-01
1-------.e

000000100000
000000000001
000100000000
000000000100
000000010000
000000000010
000010000000
000100000000
001000000000
000001000000
000000001000
010000000000
001000000000
001000000000
100000000000

15

Unitatea de control a unui procesor simplu

___________________________________________________________________________________________________________________________________________________________________________________________

Conform fiierului de ieire, funciile rezultate sunt urmtoarele:


C0 = Reset
C1 = (Reset)' Q3' Q'2Q1' Q'0
C 2 = (Reset)' Wait(Q3Q'2Q1 + Q3' Q1Q'0 + Q3' Q1' Q0 )
C 3 = (Reset)' (Wait)' (Q 3 Q '2 Q1Q 0 + Q 3' Q1Q 0 )
C 4 = (Reset)' WaitQ 3' Q '2 Q1Q 0
C 5 = (Reset)' Q 3' Q 2 Q1' Q '0
C 6 = (Reset)' (IR15)' (IR14)Q 3' Q 2 Q1' Q '0
C 7 = (Reset)' WaitQ 3' Q 2 Q1Q 0
C 8 = (Reset)' WaitQ 3 Q '2 Q1'
C 9 = (Reset)' (Wait)' Q 3 Q '2 Q1' Q 0
C10 = (Reset)' WaitQ 3 Q 2 Q1' Q '0
C11 = (Reset)' (AC15)Q 3 Q 2 Q1' Q 0

Proiectarea Logic

16

Unitatea de control a unui procesor simplu

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Implementarea unitii de control

Proiectarea Logic

17
Unitatea de control a unui procesor simplu

______________________________________________________________________________________________________________________________________________________________________
___________________________________________________________________________________________________________________________

BIBLIOGRAFIE
Ion I. Bucur Notie de curs
Randy H. Katz Contemporary Logic Design

17

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