Sunteți pe pagina 1din 30

Maquinas de estado algortmicas

Miguel Melgarejo

Facultad de Ingeniera Universidad Distrital Francisco Jos de Caldas

Documento entregado bajo licencia GPL

Contenido
! Definiciones ! Ejemplos ! Modelado de Maquinas de estado algortmicas ! Modelo circuital y modo de operacin ! Implementacin

Definiciones
Algoritmo Segn el MW: Procedimiento que se ejecuta paso a paso para resolver un problema o lograr un fin determinado. Ej.: El algoritmo de Booth ( leccin 2)

Clasificacin de los algoritmos


Segn su funcionalidad: ! ! ! ! ! ! Clculo de funciones Conteo Ordenamiento Factorizacin Codificacin Flujo Segn su estructura: !Lineales !Recursivos Segn su complejidad: !P !NP !NPH

Definiciones
Maquina de estados Conjunto de estados, transiciones, entradas y salidas que permite modelar la dinmica de un fenmeno particular. Maquina de estados digital Maquina de estados que permite modelar la dinmica de un circuito digital.

Definiciones
Maquina de estados algortmica (Algorithmic State Machine, ASM) Maquina de estados que se emplea para modelar un algoritmo. En el contexto de este curso las ASMs emplearn maquinas de estado digitales.

Definiciones
Diagrama ASM Modificacin del diagrama de estados para representar apropiadamente un algoritmo. Se representan tres tipos de estado: 1.Estados de accin 2. Estados de decisin 3. Estados de accin decisin.

Definiciones
Estado de accin Estado en el cual se ejecuta una operacin.
Estado anterior Particularidades: C <= A + B Z <= X * Y ! Puede haber varias asignaciones Concurrentes ! Las asignacin tienen lugar en la transicin de salida del estado. Estado futuro

Sj

Definiciones
Estado de decisin
Estado en el cual se evala una condicin que permite seleccionar : uno de dos estados futuros o una de dos posibles acciones.
Estado anterior

Sj

Particularidades: 1 A=0 0 ! Tanto la condicin como la asignacin que tenga lugar se evalan en la transicin de salida del estado.

z <= x + y Ef (1)

z <= x - y Ef (2)

Definiciones
Estado de accin-decisin
Sj
m <= k * n t <= p + r

Particularidades: Las asignaciones y las condiciones tienen lugar en la transicin de salida del estado.

A=0

z <= x + y

z <= x - y

Definiciones
Bloques Incorrectos !!!
s1 0 0 1 0 1 0 1 1

s2

s3

Ejemplos
Contador de unos Algoritmo para obtener el numero de unos en una palabra de n-bits.

Inicio, iniciar con una seal de aviso { Capturar dato A, Repetir hasta que A sea igual a cero { si el bit ms significativo en A es uno hacer cuenta = cuenta + 1 desplazar A hacia la izquierda } Mostrar cuenta Volver a inicio }

Ejemplos
ASM contador de unos 1.! Si i = 0 entonces A=0, C=0, F=0,Ct =0 si no, 2. A <= dato 3. F <= A(3) 4. Si F =1 entonces C <= C + 1 si no, nada 5. A <= A << (desplazamiento izquierda) 6.! Si A = 0, vaya al paso siete, si no vaya al paso tres, 7.! Ct <= C, vaya al paso uno. Nota:
S4 S0
0 A <=0 C <=0 F <=0

i=0

A <= dato F <= A(3) F=1

S1 S2 S3

C <= C+1

Seales que provienen del exterior Dato e i . Ct <= C


S6

A <= A <<
1

A=0

S5

Ejemplos Juego de ruleta


T1

T2

TN

1.! 2.! 3.!

La posicin inicial se define aleatoriamente Luego se da una rotacin a derecha La velocidad de rotacin se hace cada vez ms lenta hasta que la bola se detiene

Ejemplos
Juego de ruleta
begin --inicio pos = rand --generar posicin ala azar rul(pos) = 1 --Cargar la posicin con uno while dem < N -- bucle hasta que el retardo sea mayor a N { rotd(rul) -- rotar dato ( desplazar bit) while cont < dem -- bucle de retardo {cont++ } led = rul -- Se visualiza la ruleta cont = 0 --inicializo contador de retardo dem++ --incremento el retardo }

Ejemplos
Juego de ruleta
! ! ! ! ! ! ! ! ! ! ! ! Pseudo-codigo: begin S0 pos = rand S1 rul(pos) = 1 S2 while dem < N S3 { rotd(rul) S4 while cont < dem S5 { cont++}S6 led = rul S7 cont = 0 S8 dem++ S9 } s4 Nota : ! Seales que provienen del Exterior: rand e i
Pos = 0 Rul = 0 Dem =0 Cont =0

s5 No s0
Cont < dem

Si

i=0 No

Si cont = cont +1 s6

s1 Pos = rand s2 rul(pos)=1 s3


Dem < N

Led = rul

s7 s8

No

Cont = 0

Rul = Rul(n-2..0)&Rul(n-1)

Dem = dem +1 s9

Modelado de ASMs
Metodologa para modelar ASMs: 1.! Plantee un algoritmo estructurado 2.! Para cada paso del algoritmo defina un estado. 3. Defina el diagrama ASM 4. Reduzca estados Punto crtico: (1)!!

Modelado de ASMs
ASMs estructurados No hay transiciones entre bucles

Estructurado

No estructurado

Reduccin de estados
z <= a + b z <= a + b W <= p q W <= p q Sentencias concurrentes

Las sentencias deben ser independientes en el sentido lgico

Reduccin de estados
s0 x <= x + 1 sj
x=6
X=6

x=x +1

s1

En este caso : ! (s0) Primero se incrementa X ! (s1) Luego se pregunta si x es Igual a seis.

En este caso : (sj) Se incrementa x y se pregunta si x est en seis ( valor antes del incremento)

Reduccin de estados
Estados tipo Moore s0
J=L J=L

Estados tipo Mealy

J=0 s1

J=J+1

s2

J=0

J=J+1

Se dice que un ASM es Moore, Si todos sus estados de decisin son estados Moore

Se dice que un ASM es Mealy, Si uno o ms estados de decisin son estados Mealy.

Modelo circuital del ASM


Entradas de control Entradas del camino de datos

Control Unidad de Control (FSM)

Camino de datos
realimentacin

Salidas de control

Salidas del camino de datos

Maquina de estados digital !!

Circuitos de procesamiento Sumadores,registros,.

Ejemplo
ASM para calcular la funcin: y=x2+1
x=0 p1=0 y=0 i=1 s0

s1

s0

s1 x = ent

s2

s2 p1 = x^2 s3 s3 y = p1+1 Maquina de estados Unidad de control

Modelo circuital Camino de datos


0 Unidad de Control
e0
s0 s1

0 D 1
e clk rst

Ent

CEF

Q
clk rst

CS
s2

0 ^2
e1

0 D 1
e clk rst

clk Reset

p1 0 +1

0 D 1
e clk rst

e2

Modo de operacin
clk rst s0 i=1 s1 0 s2 ^2
e1
0 D 1
e clk rst

i=0 e = 111 s = 000

0 Ent 0

0 D 1
e clk rst

0 s3 0 +1 0

p1

clk

0 D 1
e clk rst

Modo de operacin
clk rst s0 i=1 s1 e = 001 s = 001 ^2
e1

i=0

0 Ent 1

0 D 1
e clk rst

Ent
Q

0 D 1 Q

s2

e clk rst

p1

s3

clk

0 +1 0

0 D 1
e clk rst

Modo de operacin
clk rst s0 i=1 s1 0 s2 e = 010 s= 010 ^2
e1
0 D 1
e clk rst

i=0

0 Ent 0

0 D 1
e clk rst

Ent
Q

Ent^2
Q

1 0 +1 0

p1

s3

clk

0 D 1 Q

e clk rst

Modo de operacin
clk rst s0 i=1 s1 0 s2 ^2
e1
0 D 1 Q

i=0 clk

0 Ent 0

0 D 1
e clk rst

e clk rst

p1

s3

e = 100 s = 100

0 +1 1

0 D 1
e clk rst

(Ent^2)+1 y

Modo de operacin

Referencias
Esta leccin se basa en las siguientes obras de referencia: !D. Gajski, Principios de diseo digital, Prentice Hall, 1999, Cap 8, sec 8.1-8.4 !S. Brown, Fundamentos de lgica digital con diseo VHDL, McGraw Gil, 2006, Cap 10, sec 10.2

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