5_maquinas de estado con vhdl

Click here to load reader

Upload: lpz-lpz-c

Post on 24-Sep-2015

8 views

Category:

Documents


4 download

DESCRIPTION

Maquinas de Estado Con VHDL

TRANSCRIPT

Mquinas de estado con VHDL

Ing. Diego Barragn Guerrerohttp://www.decom.fee.unicamp.br/~diego/Mquinas de estado con VHDLIntroduccinLa seccin combinacional, tiene dos entradas: pr_state (estado presente) y la seal de entrada externa (input).Adems posee dos salidas: nx_state (estado siguiente) y salida externa.La seccin secuencial tiene tres entradas: clock, reset y nx_state y una salida: pr_state.Si la salida de la mquina depende no solo del estado presente sino tambin de la entrada actual, se denomina mquina de estado de Mealy. Si la mquina depende solo del estado actual, se denomina mquina de Moore.

Diseo de la seccin inferior (secuencial)Los FF estn en la seccin inferior, de tal forma que el reloj y reset se conectan a ella. Siendo la seccin inferior secuencial, es necesario un Proceso, en el cual se puede usar cualquier sentencia secuencial.Una plantilla tpica de diseo de la seccin inferior se muestra a continuacin.Estilo de diseo 1

Reset asncronoRegistro sncronoDiseo de la seccin superior (Combinacional)El cdigo contiene dos cosas:a) Asignacin a la salida; b) Establecimiento de estado siguiente.Observar que no hay asignacin a seal hecha en la transicin de otra seal, de modo que no se infieren FF.

Estilo de diseo 1Estilo de diseo 1: Plantilla

Tipo enumerado: contiene todos los estados.Seccin secuencial.Seccin Combinacional.Un contador es un ejemplo de una mquina de Moore, ya que la salida depende solo del estado presente.Ejemplo 1: contador BCD.

Ejemplo 2: FSM simple.

Ejemplo 2: FSM simple.D = 1x = a

D = 0

En el primer estilo de diseo, solo el estado presente (estado_pr) es almacenado. En este caso, si se usa una mquina de Mealy (la salida depende de la entrada actual), la salida cambia cuando la entrada cambia (salida asncrona).En muchas aplicaciones, las seales deben ser sncronas, de modo que la salida debe actualizarse solo cuando existe un pulso de reloj. Para hacer una mquina de Mealy sncrona, la salida deber ser almacenada tambin.Estilo de diseo 2

El estilo de diseo 2, usa una seal adicional para contener el valor de la salida (en la seccin superior), pero solo pasa este valor a la salida cuando un evento de reloj ocurre (seccin inferior).Estilo de diseo 2: Plantilla

La asignacin de la salida solo se ejecuta al pulso de reloj.El estilo de diseo 2, usa una seal adicional para contener el valor de la salida (en la seccin superior), pero solo pasa este valor a la salida cuando un evento de reloj ocurre (seccin inferior).Estilo de diseo 2: FSM simple.

Cuando una seal es almacenada, su valor permanece esttico entre dos flancos de reloj. Por lo tanto, si la entrada (a o b) cambia durante este intervalo, el cambio no se observar por el circuito.

Estilo de diseo 2: FSM simple.El circuito tiene como entrada una cadena serial de bits y su salida ser 1 cuando la secuencia "111" ocurra. En caso de solapamiento, esto es, una secuencia 0111110 suceda, la salida debe mantenerse activa por tres ciclos consecutivos de reloj.Ejemplo: Detector de secuencia.

Ejemplo: Detector de secuencia.

Solapamiento, la salida sigue siendo 1.

Ejemplo: Detector de secuencia (TB).Notar que la salida no depende de la entrada actual. Todas las asignaciones a q son incondicionales (esto es, no dependen de d). Por lo tanto, la salida es automticamente sincronizada.In: 111Out: 001Ejemplo: controlador de semforo.

Se asume que la frecuencia de reloj es 60Hz (tomada de la misma fuente de poder).Ejemplo: controlador de semforo.

Para visualizar la salida de forma ptima, se ha modificado el valor de todas las contantes a 3, excepto el valor de timeTest, que vale 1. Se espera que el sistema cambie de estado cada tres ciclos de reloj cuando est en modo de operacin regular, o cada ciclo de reloj si est en mode Test.

Ejemplo: controlador de semforo.Se disear dos mquinas de estado, una que operar exclusivamente en la transicin positiva del reloj y otra que operar exclusivamente en el flanco negativo. Esto generar la seal alternativa out 1 y out2 . Estas seales sern tratadas con la operacin and para obtener la seal deseada. Notar que el circuito no posee entradas externas (excepto la seal de reloj), de modo que la salida cambiar solo cuando la seal de reloj cambie (salida sncrona).Ejemplo: generador de funciones.

Ejemplo: generador de funciones.

011101Referencias:Volnei A. Pedroni. 2004. Circuit Design with VHDL. MIT Press, Cambridge, MA, USA.

Maxinez, D.G., Alcal, J. 2003. VHDL: el arte de programar sistemas digitales. Compaa Editorial Continental.