Está en la página 1de 0

9: Secuenciales

1
9-Sistemas Secuenciales
9.1 Mquinas de Estados Finitos
9.2 Mealy y Moore
9.3 Implementacin en erilo!
9: Secuenciales
2
"#straccin

$i%idir circuito en l!ica com#inacional y estado &state'

(ocali)ar los enlaces de *eed#ac+ &loops'

Implementacin de elementos de almacenamiento &stora!e


elements' nos da di*erentes *ormas de l!ica secuencial
Combinational
Logic
Storage Elements
Outputs
State Outputs State Inputs
Inputs
9: Secuenciales
3
Formas de l!ica secuencial

"sincrnica , estados cam#ian cuandos los inputs


cam#ian &elemento de almacenamiento pueden ser
simples alam#res o* retardos'

Sincrnica , cam#ios de estados ocurren en todos los


elementos de almacenamiento al mismo tiempo &de
acuerdo a una senal peridica , el relo- o cloc+'
Clock
9: Secuenciales
4
comportamiento no es el mismo si es que los inputs
cam#ian cuando el cloc+ esta alto
$ .
/(0
positi%e
ed!e-tri!!ered
*lip-*lop
$ .
1
/(0
transparent
&le%el-sensiti%e'
latc2
$
/(0
.ed!e
.latc2
Elementos de almacenamiento:
latc2es y *lip-*lops
9: Secuenciales
5
Flip Flop 30

$ia!rama de estados

4a#la transiciones

Ecuacion carater5stica
9: Secuenciales
6
Flip Flop 30

4a#la /aracter5stica

4a#la de E6citaciones
9: Secuenciales
7
Flip Flop 4
9: Secuenciales
8
Flip Flop $
9: Secuenciales
9
x = 0
x = 1
x = 0 x = 1
100
010
110
111
001
7epresentaciones de mquinas de
estados *initos &*inite state mac2ines'

Estados: determinado por posi#les %alores en


elementos de almacenamiento

4ransiciones: cam#ios de estado

7elo- &cloc+': controla cuando los estados pueden


cam#iar al controlar elementos de almacenamiento

(!ica secuencial

secuencia a tra%8s una serie de estados

#asado en secuencia de %alores de se9ales de input


&6'
9: Secuenciales
10
$ia!rama de mquina de estados *initos

E-emplo: /andado de com#inacin

: estados

: auto-transiciones

; otras transiciones entre estados

1 transicin de reset &de todos los estados' al estado


S1
reset
S3
closed
closed
mu6</1
equal
= ne>
not equal
= ne>
not equal
= ne>
not equal
= ne>
not ne> not ne> not ne>
S1 S2 OPEN
ERROR
closed
mu6</2
equal
= ne>
closed
mu6</3
equal
= ne>
open
9: Secuenciales
11
E-emplo: 7e!istro de corrimiento &s2i*t re!ister'

S2i*t re!ister

input mostrado en
arcos de transiciones

%alores de output
mostrado en nodo
de estado
1??
11?
111
?11
1?1 ?1?
???
??1
1
1
1
1
?
?
?
?
1
1
1
?
?
1
?
?
$ . $ . $ .
I@
AB41 AB42 AB43
/(0
9: Secuenciales
12
?1?
1??
11?
?11
??1
???
1?1
111
3-#it up-counter
E-emplo: /ontadores

/ontadores

proceden a tra%8s de secuencia de estados #ien


de*inida en respuesta a ena#le.

Muc2os tipos de contadores: #inarioC D/$C cdi!o 1ray

contador de su#ida de 3 #its: ???C ??1C ?1?C ?11C


1??C 1?1C 11?C 111C ???C ...

contador de #a-ada de 3-#its: 111C 11?C 1?1C 1??C


?11C ?1?C ??1C ???C 111C ...
9: Secuenciales
13
?1?
1??
11?
?11 ??1
???
1?1
111
3-#it up-counter
present state ne6t state
? ??? ??1 1
1 ??1 ?1? 2
2 ?1? ?11 3
3 ?11 1?? E
E 1?? 1?1 :
: 1?1 11? ;
; 11? 111 F
F 111 ??? ?
/omo con%ertir dia!rama de estados
a ta#la de transicionesG

4a#la de transiciones: *orma ta#ular de


dia!rama de estados.

/omo una ta#la de %erdad &se especi*ican


todos los outputs para las com#inaciones de
input'.

E-emplo: contador
9: Secuenciales
14
/3 /2 /1 @3 @2 @1
? ? ? ? ? 1
? ? 1 ? 1 ?
? 1 ? ? 1 1
? 1 1 1 ? ?
1 ? ? 1 ? 1
1 ? 1 1 1 ?
1 1 ? 1 1 1
1 1 1 ? ? ?
@1 H< /1I
@2 H< /1/2I J /1I/2
H< /1 6or /2
@3 H< /1/2/3I J /1I/3 J /2I/3
H< &/1/2'/3I J &/1I J /2I'/3
H< &/1/2'/3I J &/1/2'I/3
H< &/1/2' 6or /3
cdi!o en erilo! para
mostrar que la *uncin
es un input a un $-FF
Implementacin

Bn *lip-*lop para cada #it de estado

(!ica com#inacional #asada en codi*icacin


? ?
? 1
1 1
? 1
/1
/2
/3
@3
? 1
1 ?
1 ?
? 1
/1
/2
/3
@2
1 1
? ?
1 1
? ?
/1
/2
/3
@1
9: Secuenciales
15
Implementacin &cont'

/ontador

3 *lip-*lops para tener estado.

l!ica para calcular pr6imo estado.

relo- controla cuando la memoria de los *lip-*lops


cam#ia.
K 2ay que esperar para que la l!ica calcule nue%o %alor
K no 2ay que esperar muc2o para no tener %elocidad muy
lenta
$ . $ . $ .
AB41 AB42 AB43
/(0
L1L
9: Secuenciales
16
In /1 /2 /3 @1 @2 @3
? ? ? ? ? ? ?
? ? ? 1 ? ? ?
? ? 1 ? ? ? 1
? ? 1 1 ? ? 1
? 1 ? ? ? 1 ?
? 1 ? 1 ? 1 ?
? 1 1 ? ? 1 1
? 1 1 1 ? 1 1
1 ? ? ? 1 ? ?
1 ? ? 1 1 ? ?
1 ? 1 ? 1 ? 1
1 ? 1 1 1 ? 1
1 1 ? ? 1 1 ?
1 1 ? 1 1 1 ?
1 1 1 ? 1 1 1
1 1 1 1 1 1 1
@1 H< In
@2 H< /1
@3 H< /2

Implementacin: 7e!istro de
corrimiento

Input determina pr6imo estado


1?? 11?
111
?11
1?1 ?1? ???
??1
?
1
1
1
1
1
1
1
?
?
?
? ?
1
?
?
$ . $ . $ .
I@
AB41 AB42 AB43
/(0
9: Secuenciales
17
E-emplo: /ontador ms comple-o

/ontador /omple-o

repite : estados en secuencia

secuencia no es una representacin num8rica #inaria

Maso 1: 2acer dia!rama de transicin de estados

contar secuencia: ???C ?1?C ?11C 1?1C 11?

Maso 2: 2acer ta#la de transicin de estados


Mresent State @e6t State
/ D " /J DJ "J
? ? ? ? 1 ?
? ? 1 , , ,
? 1 ? ? 1 1
? 1 1 1 ? 1
1 ? ? , , ,
1 ? 1 1 1 ?
1 1 ? ? ? ?
1 1 1 , , ,
notar condiciones donNt care por los estados no usados
?1?
??? 11?
1?1
?11
9: Secuenciales
18
/J H< "
DJ H< DI J "I/I
"J H< D/I
E-emplo: /ontador ms comple-o &cont'

Maso 3: mapas 0arnau!2 para pr6imas *unciones


? ?
O 1
? O
O 1
"
D
/
/J
1 1
O ?
? O
O 1
"
D
/
DJ
? 1
O 1
? O
O ?
"
D
/
"J
9: Secuenciales
19
/ontadores con estados iniciales

Estados iniciales

durante el inicioC el contador puede estar en un


estado sin usar o in%lido

el dise9ador de#e !aranti)ar que e%entualmente


entre en un estado %lido

dise9ar para que estados in%lidos transiciones a


%lidos
?1?
??? 11?
1?1
?11
??1 111
1??
?1?
??? 11?
1?1
?11
??1
111
1??
9: Secuenciales
20
/ontadores con estados iniciales
&cont'

1enerar ta#la de transicin de estados con estados


iniciales
? ?
1 1
? ?
1 1
"
D
/
/J
1 1
1 ?
? 1
? 1
"
D
/
DJ
? 1
? 1
? ?
? ?
"
D
/
"J
Mresent State @e6t State
/ D " /J DJ "J
? ? ? ? 1 ?
? ? 1 1 1 ?
? 1 ? ? 1 1
? 1 1 1 ? 1
1 ? ? ? 1 ?
1 ? 1 1 1 ?
1 1 ? ? ? ?
1 1 1 1 ? ?
?1?
??? 11?
1?1
?11
??1 111
1??
9: Secuenciales
21
"cti%idad

/ontador up-do>n de 2-#its &2 inputs'

direccin: $ < ? para upC $ < 1 para do>n

cuenta: / < ? para pararC / < 1 para contar


?1
?? 11
1?
/<?
$<O
/<?
$<O
/<?
$<O
/<?
$<O
/<1
$<?
/<1
$<?
/<1
$<?
/<1
$<?
/<1
$<1
S1 S? / $ @1 @?
? ? ? ? ? ?
? ? ? 1 ? ?
? ? 1 ? ? 1
? ? 1 1 1 1
? 1 ? ? ? 1
? 1 ? 1 ? 1
? 1 1 ? 1 ?
? 1 1 1 ? ?
1 ? ? ? 1 ?
1 ? ? 1 1 ?
1 ? 1 ? 1 1
1 ? 1 1 ? 1
1 1 ? ? 1 1
1 1 ? 1 1 1
1 1 1 ? ? ?
1 1 1 1 1 ?
9: Secuenciales
22
"cti%idad &cont'
S1 S? / $ @1 @?
? ? ? ? ? ?
? ? ? 1 ? ?
? ? 1 ? ? 1
? ? 1 1 1 1
? 1 ? ? ? 1
? 1 ? 1 ? 1
? 1 1 ? 1 ?
? 1 1 1 ? ?
1 ? ? ? 1 ?
1 ? ? 1 1 ?
1 ? 1 ? 1 1
1 ? 1 1 ? 1
1 1 ? ? 1 1
1 1 ? 1 1 1
1 1 1 ? ? ?
1 1 1 1 1 ?
@1 < /IS1
J /$S?IS1I J $S?S1
J /$IS?S1I J $IS?IS1
@? < /S?I J /IS?
? 1 1 ?
? 1 1 ?
1 ? ? 1
1 ? ? 1
$
S1
S?
/
? ? 1 1
? ? 1 1
1 ? 1 ?
? 1 ? 1
$
S1
S?
/
9: Secuenciales
23
9-Sistemas Secuenciales
9.1 Maquinas de Estados Finitos
9.2 Mealy y Moore
9.3 Implementacin en erilo!
9: Secuenciales
24
Modelo de /ontadorPre!istro de
corrimiento

alores almacenados en re!istros representan


estado del circuito

(!ica com#inacional calcula:

pr6imo estado
K *uncin de estados actuales e inputs

salidas &o outputs'


K %alores de *lip-*lops
Inputs
Autputs
@e6t State
/urrent State
ne6t state
lo!ic
9: Secuenciales
25
Modelo !eneral

alores almacenados en re!istros representan el estado del


circuito: y

(!ica com#inacional calcula

pr6imo estado: FME &Funcin Mr6imo Estado'


K *uncin de estados actuales e inputs

outputs: FS &Funcin Salida'


K Mealy: *uncin de estado actual e inputsC ) < F&yC 6'
K Moore: solo *uncin de estado actualC ) < F&y'
Inputs: 6
Autputs: )
@e6t State: y&nJ1'
/urrent State: y&n'
l!ica output
FS
l!ica pr6imo
estado: FME
9: Secuenciales
26
Modelo !eneral &cont'
Estados: y
1
C y
2
C ...C y
+
Inputs: 6
1
C 6
2
C ...C 6
m
Autputs: )
1
C )
2
C ...C )
n
Funcin transicin: FME&y
i
C 6
-
'
Funcin de output: FS&y
i
' or FS&y
i
C 6
-
'
Inputs
Autputs
@e6t State
/urrent State
output
lo!ic
ne6t state
lo!ic
/loc+
@e6t State
State
? 1 2 3 E :
9: Secuenciales
27
Mquinas Mealy %s Moore

Mquinas Mealy tienden a tener menos estados

outputs son di*erentes en arcos &n


2
' no en estados &n'

Mquinas Moore

outputs cam#ian durante cam#ios del relo- &siempre un


ciclo ms tarde'

en mquinas MealyC input puede causar cam#ios en output


de inmediato cuando cam#ie l!ica , puede causar
pro#lemas cuando se conectan mQltiples mquinas

Mquinas Mealy reaccionan mas rpido

reaccionan en el mismo ciclo , no tienen que esperar el


relo- en al!unos casos

en mquinas Moore , mas l!ica puede ser necesaria para


decodi*icar estado en outputs
9: Secuenciales
28
/omparar maquinas Mealy y Moore &cont'

Moore: ) < F&y'

Mealy: ) < F&yC 6'

Mealy Sincrnica
) < F&yC 6' con FF en salida
state feedback
inputs
outputs reg
combinational
logic for
next state logic for
outputs
inputs outputs
state feedback
reg
combinational
logic for
next state
logic for
outputs
inputs outputs
state feedback
reg
combinational
logic for
next state
logic for
outputs
9: Secuenciales
29
$P1
EP1
DP?
"P?
/P?
1
?
?
?
?
1
1
1
1
?
reset
current ne6t
reset input state state output
1 , , "
? ? " D ?
? 1 " / ?
? ? D D ?
? 1 D $ ?
? ? / E ?
? 1 / / ?
? ? $ E 1
? 1 $ / 1
? ? E D 1
? 1 E $ 1
Especi*icar outputs para mquina Moore

Autput es solo una *uncin del estado

se especi*ica en nodos del dia!rama de estado

E-emplo: detector de secuencia para ?1 o 1?


9: Secuenciales
30
current ne6t
reset input state state output
1 , , " ?
? ? " D ?
? 1 " / ?
? ? D D ?
? 1 D / 1
? ? / D 1
? 1 / / ?
D
"
/
?P1
?P?
?P?
1P1
1P?
1P?
resetP?
Especi*icar outputs para mquina Mealy

Autput es *uncin de estados e inputs

especi*icar output en transicin entre estados

E-emplo: $etector de secuencia para ?1 o 1?


9: Secuenciales
31
Maquina Mealy

Maquina Mealy Sincrnica

estados y outputs con re!istros

e%ita outputs con ruidos &R!litc2esI'

t5picamente se implementa en M($s


Inputs
Autputs
/urrent State
output
lo!ic
ne6t state
lo!ic
9: Secuenciales
32
endin!
Mac2ine
FSM
@
$
7eset
/loc+
Apen
/oin
Sensor
7elease
Mec2anism
E-emplo: mquinas de #e#idas

Entre!a #e#ida despu8s que 1:? pesos


son depositados

"cepta di*erentes monedas :? &@'C 1??


&$'

@o entre!a cam#io
9: Secuenciales
33
E-emplo: mquinas de #e#idas &cont'

7epresentacin a#stracta

listar secuencias t5picas:


K tres de cincuenta
K cincuentaC cien
K cienC cincuenta
K dos de cien

di#u-ar dia!rama de estados:


K inputs: @C $C reset
K output: dar #e#ida &AME@'

asumir:
K @ y $ seteadas por un ciclo
K cada estado tiene un auto estado
para @ < $ < ? &no 2ay moneda'
S?
7eset
S2
$
S;
SopenT
$
SE
SopenT
$
S1
@
S3
@
S:
SopenT
@
SU
SopenT
$
SF
SopenT
@
9: Secuenciales
34
E-emplo: mquinas de #e#idas &cont'

Minimi)ar nQmero de estados , reusar


estados si es posi#le
ta#la de estados sim#lica
present inputs ne6t output
state $ @ state open
? ? ? ? ?
? 1 :? ?
1 ? 1?? ?
1 1 , ,
:? ? ? :? ?
? 1 1?? ?
1 ? 1:? ?
1 1 , ,
1?? ? ? 1?? ?
? 1 1:? ?
1 ? 1:? ?
1 1 , ,
1:? , , 1:? 1
?
7eset
:?
@
@
@ J $
1??
$
1:?
SopenT
$
9: Secuenciales
35
present stateinputs ne6t state output
.1 .? $ @ $1 $? open
? ? ? ? ? ? ?
? 1 ? 1 ?
1 ? 1 ? ?
1 1 , , ,
? 1 ? ? ? 1 ?
? 1 1 ? ?
1 ? 1 1 ?
1 1 , , ,
1 ? ? ? 1 ? ?
? 1 1 1 ?
1 ? 1 1 ?
1 1 , , ,
1 1 , , 1 1 1
E-emplo: mquinas de #e#idas &cont'

/odi*icar estados
9: Secuenciales
36
$1 < .1 J $ J .? @
$? < .?I @ J .? @I J .1 @ J .1 $
AME@ < .1 .?
E-emplo: Implementacin Moore

Mapear la l!ica
? ? 1 1
? 1 1 1
O O 1 O
1 1 1 1
.1
$1
.?
@
$
? 1 1 ?
1 ? 1 1
O O 1 O
? 1 1 1
.1
$?
.?
@
$
? ? 1 ?
? ? 1 ?
O O 1 O
? ? 1 ?
.1
Apen
.?
@
$
9: Secuenciales
37
present state inputs ne6t state output
.3.2 .1.? $ @ $3$2 $1$? open
? ? ? 1 ? ? ? ? ? 1 ?
? 1 ? ? 1 ? ?
1 ? ? 1 ? ? ?
1 1 - - - - -
? ? 1 ? ? ? ? ? 1 ? ?
? 1 ? 1 ? ? ?
1 ? 1 ? ? ? ?
1 1 - - - - -
? 1 ? ? ? ? ? 1 ? ? ?
? 1 1 ? ? ? ?
1 ? 1 ? ? ? ?
1 1 - - - - -
1 ? ? ? - - 1 ? ? ? 1
$? < .? $I @I
$1 < .? @ J .1 $I @I
$2 < .? $ J .1 @ J .2 $I @I
$3 < .1 $ J .2 $ J .2 @ J .3
AME@ < .3
E-emplo: Implementacin Moore &cont'

Atra codi*icacin &1 encendido'


9: Secuenciales
38
$ia!ramas de Estados de Mealy y Moore

Moore

outputs asociados con


estados
?
S?T
1??
S?T
:?
S?T
1:?
S1T
@I $I J 7eset
$
$
@
@J$
@
@I $I
7esetI
@I $I
@I $I
7eset
?
1??
:?
1:?
&@I $I J 7eset'P?
$P?
$P1
@P?
@J$P1
@P?
@I $IP?
7esetIP1
@I $IP?
@I $IP?
7esetP?

Mealy

outputs asociados con


transiciones
9: Secuenciales
39
E-emplo: Implementacin Mealy
?
1??
:?
1:?
7esetP?
$P?
$P1
@P?
@J$P1
@P?
@I $IP?
7esetIP1
@I $IP?
@I $IP?
7esetP?
present stateinputs ne6t state output
.1 .? $ @ $1 $? open
? ? ? ? ? ? ?
? 1 ? 1 ?
1 ? 1 ? ?
1 1 , , ,
? 1 ? ? ? 1 ?
? 1 1 ? ?
1 ? 1 1 1
1 1 , , ,
1 ? ? ? 1 ? ?
? 1 1 1 1
1 ? 1 1 1
1 1 , , ,
1 1 , , 1 1 1
$? < .?I@ J .?@I J .1@ J .1$
$1 < .1 J $ J .?@
AME@ < .1.? J .1@ J .1$ J .?$
? ? 1 ?
? ? 1 1
O O 1 O
? 1 1 1
.1
Apen
.?
@
$
9: Secuenciales
40
E-emplo: Implementacin Mealy
&cont'
$? < .?I@ J .?@I J .1@ J .1$
$1 < .1 J $ J .?@
AME@ < .1.? J .1@ J .1$ J .?$
2ay que ase!urar que AME@ es ?
cuando 2ay reset , con compuerta "@$
9: Secuenciales
41
9-Sistemas Secuenciales
9.1 Maquinas de Estados Finitos
9.2 Mealy y Moore FSMs
9.3 Implementacin en erilo!
9: Secuenciales
42
E-emplo: reducir strin! de 1s en 1

Eliminar un 1 de cada strin! de 1s en el


input
1
?
?
?
1
1
)ero
S?T
one1
S?T
t>o1s
S1T
1P?
?P?
?P?
1P1
)ero
S?T
one1
S?T
Moore Mealy
9: Secuenciales
43
module reduce (clk, reset, in, out);
input clk, reset, in;
output out;
parameter zero = 2b00;
parameter one1 = 2b01;
parameter two1s = 2b10;
reg out;
reg [2:1] state; // state variables
reg [2:1] next_state;
ala!s "(posedge clk)
i# (reset) state $ %ero;
else state $ next_state;
asi!nar estados
E-emplo: reducir strin! de 1s en
1

erilo!: Mquina de Moore


1
?
?
?
1
1
)ero
S?T
one1
S?T
t>o1s
S1T
9: Secuenciales
44
ala!s "(in or state)
case (state)
%ero:
// last input as a %ero
begin
i# (in) next_state $ one1;
else next_state $ %ero;
end
one1:
// e&ve seen one 1
begin
i# (in) next_state $ to1s;
else next_state $ %ero;
end
to1s:
// e&ve seen at least 2 ones
begin
i# (in) next_state $ to1s;
else next_state $ %ero;
end
endcase
2ay que incluir todas las se9ales
que son determinan el estado
E-emplo: reducir strin! de 1s en 1
&cont'
el output solo depende del
estado
ala!s "(state)
case (state)
%ero: out $ ';
one1: out $ ';
to1s: out $ 1;
endcase
endmodule
9: Secuenciales
45
module reduce (clk, reset, in, out);
input clk, reset, in;
output out;
reg out;
reg state; // state variables
reg next_state;
ala!s "(posedge clk)
i# (reset) state $ %ero;
else state $ next_state;
ala!s "(in or state)
case (state)
%ero: // last input as a %ero
begin
out $ ';
i# (in) next_state $ one;
else next_state $ %ero;
end
one: // e&ve seen one 1
i# (in)
begin
next_state $ one; out $ 1;
end
else
begin
next_state $ %ero; out $ ';
end
endcase
endmodule
erilo! para MEF Mealy
1/0
0/0
0/0
1/1
ero
!0"
one1
!0"
9: Secuenciales
46
module reduce (clk, reset, in, out);
input clk, reset, in;
output out;
reg out;
reg state; // state variables
ala!s "(posedge clk)
i# (reset) state $ %ero;
else
case (state)
%ero: // last input as a %ero
begin
out $ ';
i# (in) state $ one;
else state $ %ero;
end
one: // e&ve seen one 1
i# (in)
begin
state $ one; out $ 1;
end
else
begin
state $ %ero; out $ ';
end
endcase
endmodule
erilo! para MEF Mealy &otra
%ersin'
1/0
0/0
0/0
1/1
ero
!0"
one1
!0"
9: Secuenciales
47
7esumen MEFs

Modelos para representar circuitos secuenciales

a#straccin de elementos secuenciales

mquinas de estados *initos y dia!ramas de estados

MealyC Moore y maquinas sincrnicas Mealy

Mrocedimiento de dise9o usando MEFs

!enerar dia!rama de estados

!enerar ta#la de transiciones de estados

determinar *unciones de pr6imo estado y output

implementar l!ica com#inacional

V$(s

También podría gustarte