Sunteți pe pagina 1din 6

Desarrollar la mquina de estados que cumpla el diagrama siguiente:

Se visualizarn mediante un display los nmeros del 0 al 4 y segn el valor de una seal
externa el sistema pasar de un estado a otro por cada impulso de reloj segn el diagrama
adjunto

Tabla de verdad general del


proceso

X=0

I0

X
0
0
0
0
0
1
1
1
1
1

X=1

X=0

X=1

I1
X=0

I2

X=1

X=1

Inicial Salida Siguiente

I3

X=0
X=0

0
1
2
3
4
0
1
2
3
4

I0
I1
I2
I3
I4
I0
I1
I2
I3
I4

I4

X=1

Tabla de verdad a disear


X Q2 Q1
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
1 1 0
1 1 0
1 1 1
1 1 1

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

Q2'
0
0
1
1
0
x
x
x
0
0
0
0
1
x
x
x

Q1'
0
1
0
0
0
x
x
x
0
1
1
0
0
x
x
x

Q0'
0
0
0
0
0
x
x
x
1
1
1
0
0
x
x
x

A
1
0
1
1
0
x
x
x
1
0
1
1
0
x
x
x

B
1
1
1
1
1
x
x
x
1
1
1
1
1
x
x
x

C
1
1
0
1
1
x
x
x
1
1
0
1
1
x
x
x

D
1
0
1
1
0
x
x
x
1
0
1
1
0
x
x
x

E
1
0
1
0
0
x
x
x
1
0
1
0
0
x
x
x

F
1
0
0
0
1
x
x
x
1
0
0
0
1
x
x
x

G
0
0
1
1
1
x
x
x
0
0
1
1
1
x
x
x

I0
I2
I4
I4
I0
I1
I3
I3
I0
I4

Clculos para diseo con biestables D


Q1,Q0

Q1,Q0
00

01

11

10

X,Q2

X,Q2

00
01
11

Q1,Q0
00 01 11 10

00 01 11

10

X,Q2

00

01

01

11

11

10

10

10

00

Q 2' =X Q 2 +X Q1

Q1' =Q1Q 0 +X Q1Q 0

Q 0' =X Q1Q 0 +X Q 2Q 0

Circuito Combinacional CC0

Circuito Combinacional CC1

Circuito Combinacional CC2

Circuito Combinacional CC3 resuelto directamente con la tabla de verdad

Clock

CC0
IO1

X2
IO5

F0

IO2

Q0.D

Q0.CLK

IO3

Q0

~Q

IO4

IO1

IO2

IO5

IO3

IO6

IO4

IO7

IO8

CC0

CC3

CC1
IO1

IO5

F1

IO2

Q1.D

Q1.CLK

IO3

CC0
CC2
IO5

IO2

F2

Q2.D
Q2.CLK

IO3

Q2

~Q

IO4

CC0

Module Ejemplo
DECLARATIONS
CLOCK PIN 10;
Q0,Q1,Q2 PIN ISTYPE REG_D;
X,a,b,c,d,e,f,g PIN 44, 3, 4, 5, 6, 7, 8, 9 ISTYPE COM;

EQUATIONS
Q0.CLK = CLOCK;

e
X1

IO4

IO1

Q1

~Q

IO1

IO2

IO5

IO3

IO6

IO4

IO7

IO8
CC3

Q1.CLK = CLOCK;
Q2.CLK = CLOCK;
Q2.D = (X & Q2) # (!X & Q1);
Q1.D = (!Q1 & Q0) # (X & Q1 & !Q0);
Q0.D = (X & !Q1 & Q0) # (X & !Q2 & !Q0);
TRUTH_TABLE
( [X, Q2, Q1, Q0] -> [a, b, c, d, e, f, g] )
[0,0,0,0]->[1,1,1,1,1,1,0];
[0,0,0,1]->[0,1,1,0,0,0,0];
[0,0,1,0]->[1,1,0,1,1,0,1];
[0,0,1,1]->[1,1,1,1,0,0,1];
[0,1,0,0]->[0,1,1,0,0,1,1];
[0,1,0,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[0,1,1,0]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[0,1,1,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,0,0,0]->[1,1,1,1,1,1,0];
[1,0,0,1]->[0,1,1,0,0,0,0];
[1,0,1,0]->[1,1,0,1,1,0,1];
[1,0,1,1]->[1,1,1,1,0,0,1];
[1,1,0,0]->[0,1,1,0,0,1,1];
[1,1,0,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,1,1,0]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,1,1,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
END
Realizacin del mismo ejercicio con ABEL pero utilizando tablas de verdad
tanto para las funciones de salida como para las funciones de entrada a los
biestables
Module Ejemplo
DECLARATIONS
CLOCK PIN 10;
Q0,Q1,Q2 PIN ISTYPE REG_D;
X,a,b,c,d,e,f,g PIN 44, 3, 4, 5, 6, 7, 8, 9 ISTYPE COM;
F2, F1, F0 NODE ISTYPE COM;
EQUATIONS
Q0.CLK = CLOCK;
Q1.CLK = CLOCK;
Q2.CLK = CLOCK;
Q2.D = F2;
Q1.D = F1;
Q0.D = F0;

TRUTH_TABLE
( [X, Q2, Q1, Q0] -> [F2, F1, F0] )
[0,0,0,0]->[0,0,0];
[0,0,0,1]->[0,1,0];
[0,0,1,0]->[1,0,0];
[0,0,1,1]->[1,0,0];
[0,1,0,0]->[0,0,0];
[0,1,0,1]->[.X.,.X.,.X.];
[0,1,1,0]->[.X.,.X.,.X.];
[0,1,1,1]->[.X.,.X.,.X.];
[1,0,0,0]->[0,0,1];
[1,0,0,1]->[0,1,1];
[1,0,1,0]->[0,1,1];
[1,0,1,1]->[0,0,0];
[1,1,0,0]->[1,0,0];
[1,1,0,1]->[.X.,.X.,.X.];
[1,1,1,0]->[.X.,.X.,.X.];
[1,1,1,1]->[.X.,.X.,.X.];
TRUTH_TABLE
( [X, Q2, Q1, Q0] -> [a, b, c, d, e, f, g] )
[0,0,0,0]->[1,1,1,1,1,1,0];
[0,0,0,1]->[0,1,1,0,0,0,0];
[0,0,1,0]->[1,1,0,1,1,0,1];
[0,0,1,1]->[1,1,1,1,0,0,1];
[0,1,0,0]->[0,1,1,0,0,1,1];
[0,1,0,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[0,1,1,0]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[0,1,1,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,0,0,0]->[1,1,1,1,1,1,0];
[1,0,0,1]->[0,1,1,0,0,0,0];
[1,0,1,0]->[1,1,0,1,1,0,1];
[1,0,1,1]->[1,1,1,1,0,0,1];
[1,1,0,0]->[0,1,1,0,0,1,1];
[1,1,0,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,1,1,0]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,1,1,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
END

Clculos para diseo con biestables JK


Q1,Q0

Q1,Q0
00

01

11

00 01 11 10

X,Q2

X,Q2

00
01
11

Q1,Q0

10

00 01 11

10

X,Q2

00

01

01

11

11

10

10

10
Q 2' =X Q 2 +X Q1Q 2

00

Q 0' =X Q1Q 0 +X Q 2Q 0

J 2 =X Q1

Q1' =Q 0Q1 +X Q 0Q1


J 1 =Q 0

K 2 =X
K 2 =X

K1 = X Q 0 K1 = X Q 0

K 0 =X Q1
K 0 =X Q1

Circuito combinacional X4

Circuito combinacional X3

J 0 =X Q 2

Circuito combinacional X5

Circuito Combinacional X3-CC3 resuelto directamente con la tabla de verdad

Clock

U1

X4
IO1

IO5

Q0.J

IO2

IO6

Q0.CLK

IO3

Q0.K

IO4

SET
J

~Q

Q0
X2

RESET
JK_FF

JJ

IO1

IO5

Q1.J

IO2

IO6

Q1.CLK

IO3

Q1.K

IO4

SET
J

~Q

Q1

JK_FF

U3

X5
IO1

IO5

Q2.J

IO2

IO6

Q2.CLK

IO3

Q2.K

IO4

SET
J

Q2

~Q

RESET

JJ

IO3

IO6

IO4

IO7

IO8

IO1

RESET

JJ

IO2

IO5

X1

U2

X3

IO1

JK_FF

Module Ejemplo
DECLARATIONS
CLOCK PIN 10;
Q0,Q1,Q2 PIN ISTYPE REG_JK;
X,a,b,c,d,e,f,g PIN 44, 3, 4, 5, 6, 7, 8, 9 ISTYPE COM;

CC3

IO2

IO5

IO3

IO6

IO4

IO7

IO8
CC3

a
b
c
d
e
f
g

EQUATIONS
Q0.CLK = CLOCK;
Q1.CLK = CLOCK;
Q2.CLK = CLOCK;
Q0.J = X&!Q2;
Q0.K = !(X!Q1));
Q1.J = Q0;
Q1.K = !(X!Q0)
Q2.J = !XQ1
Q2.K = !X
TRUTH_TABLE
( [X, Q2, Q1, Q0] -> [a, b, c, d, e, f, g] )
[0,0,0,0]->[1,1,1,1,1,1,0];
[0,0,0,1]->[0,1,1,0,0,0,0];
[0,0,1,0]->[1,1,0,1,1,0,1];
[0,0,1,1]->[1,1,1,1,0,0,1];
[0,1,0,0]->[0,1,1,0,0,1,1];
[0,1,0,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[0,1,1,0]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[0,1,1,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,0,0,0]->[1,1,1,1,1,1,0];
[1,0,0,1]->[0,1,1,0,0,0,0];
[1,0,1,0]->[1,1,0,1,1,0,1];
[1,0,1,1]->[1,1,1,1,0,0,1];
[1,1,0,0]->[0,1,1,0,0,1,1];
[1,1,0,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,1,1,0]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
[1,1,1,1]->[.X.,.X.,.X.,.X.,.X.,.X.,.X.];
END

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