Sei sulla pagina 1di 16

Diseo lgico secuencial con

VHDL
Ing. Diego Barragn Guerrero
http://www.decom.fee.unicamp.br/~
diego/
Introduccin
La mayora de los sistemas digitales que se
encuentran en la prctica incluyen
elementos de memoria, los cuales
requieren que el sistema se describa en
trminos de lgica secuencial.
Diseo lgico secuencial
Un sistema secuencial est formado por un
circuito combinacional y un elemento de
memoria encargado de almacenar de forma
temporal la historia del sistema.
En esencia, la salida de un sistema secuencial
no slo depende del valor presente en las
entradas en un instante determinado, sino
tambin de la historia del sistema.
Se dice que los secuenciales son circuitos con
memoria, mientras que los combinacionales
no tienen memoria.
Tipos

Bsicamente hay dos tipos de sistemas


secuenciales:
Sncronos: su comportamiento se
encuentra sincronizado mediante el pulso
de reloj del sistema (CLK).
Asncrono: Su funcionamiento depende
del orden y momento en el que se aplican
las seales de entrada.
Descripcin VHDL de lgica
secuencial
Uno de los conceptos nuevos que aparece en
VHDL a la hora de describir sistemas
secuenciales es la forma de describir la
activacin por flanco de reloj.
Atributo EVENT.
En el lenguaje VHDL los atributos sirven para
definir caractersticas que se pueden asociar
con cualquier tipo de datos, objeto o entidades.
El atributo event (evento, donde indica que
se trata de un atributo) se utiliza para describir
un hecho u ocurrencia de una seal particular.
Atributos de las seales
SEVENT Retorna verdadero si ocurri un evento en S
durante el corriente delta, de lo contrario
devuelve falso.
SESTABLE Retorna verdadero si no hay evento en S.
SACTIVE Retorna verdadero si S=1.
SLAST_EVENT Retorna el tiempo transcurrido desde la
transicin previa de la seal S.
SLAST_VALUE Retorna el valor previo de S antes del
ltimo evento.

SLAST_ACTIVE Retorna el tiempo transcurrido desde la


transaccin previa de la seal.
Atributo EVENT
Considerando una seal de reloj (CLK), la
sentencia CLKevent es cierta slo cuando
ocurre un cambio de valor (paso de 0 a 1
o de 1 a 0). Combinndola con una
sentencia de comprobacin de igualdad del
nuevo valor es posible definir la activacin
por el tipo de flanco que se desee:
Modelado VHDL de la activacin por flanco
La principal opcin que ofrece VHDL para
modelar la activacin por flanco en los
circuitos secuenciales es mediante el
atributo event. Sin embargo, es posible
modelarlos tambin mediante dos formas
adicionales:
Dentro de un proceso con la sentencia WAIT
UNTIL.
Usando las macros VHDL93
rising_edge(seal) y falling_edge(seal);
Ej_3: Flip-Flop D activo en flanco de subida
Ej_4: Flip-Flop D activo en flanco de
subida con RESET.
Ej_5: Flip-Flop D activo en flanco de
subida con CLEAR.
Registros de almacenamiento
Presentan una estructura similar a los flip-flops. Almacenan el
estado de un vector de bits en lugar de un solo bit.
Diseo de una Mquina de Estados
Una Maquina de Estados Finita (FSM) se puede describir en
VHDL de varias formas.
En primer lugar en la seccin de declaraciones de la
arquitectura, se define un tipo enumerado en el que se
asignan identificadores a cada estado.
Suele ser recomendable utilizar identificadores ilustrativos para
los estados.
La herramienta de sntesis ser la encargada de codificar estos
estados. Posteriormente, en el cuerpo de la arquitectura se
define la funcin de transicin de estados (F) y la funcin de
salida (G) en uno o varios procesos.
Por lo tanto tenemos:
Un proceso secuencial que modela los estados. Por lo tanto que
actualiza el estado (ESTADO).
Un proceso combinacional que modela las funciones F y G; por lo
tanto deriva el siguiente estado (ESTADO_SIG) y actualiza las
salidas (O).
Ejemplo
Se trata de disear una maquina de estados que
active una salida S cuando se detecta la secuencia
001... en una lnea de datos E sincronizada con un
reloj. Este detector de secuencia se puede realizar con
una mquina de Moore de cuatro estados.
S1: Esperar el primer cero de la secuencia.
S2: Esperar el segundo cero de la secuencia.
S3: Esperar el uno de la secuencia y activar la salida S
cuando llega.
Ejemplo
Referencias:
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.

Potrebbero piacerti anche