Módulos secuenciales
VHDL permite implementar circuitos secuenciales de forma simple y rápida
A continuación se muestra la modelización de un contador up/down y de un registro de desplazamiento
Contador up/down
El modelo siguiente corresponde a un contador up/down con las siguientes características:
Señales de entrada
Señal de reloj: ck
Señal de reset síncrona, activa a nivel bajo: nReset
Señal de capacitación de conteo: enable
Señal de conteo arriba/abajo: UnD (cuando es 1 incrementa, cuando es 0 decrementa)Señales de salida
Estado actual: q
Pulso de fin se secuencia o terminal counter: tc
El circuito siguiente muestra una síntesis del mismo
Funcionamiento
En el gráfico siguiente podemos comprobar su funcionamiento
Registro de desplazamiento
El registro de desplazamiento es otro módulo secuencial muy utilizado en el diseño de sistemas digitales, especialmente en comunicaciones para realizar conversiones serie-paralelo o viceversa
El registro de desplazamiento que se muestra a continuación tiene las siguientes funcionalidades:
Mantener estado
Inicializar a un valor determinado
Desplazamiento a la derecha
Desplazamiento a la izquierda
Para ello constará de las siguientes entradas:
Señal de reloj ck
Señal de datos de entrada paralela d, utilizada para inicializar a un valor determinado
Señales Il (entrada serie por la izquierda) y Ir (entrada serie por la derecha) para desplazamientos
Señal de control de operación ctrl, que tiene las siguientes codificacionesctrl=0 -> Carga paralela
ctrl=1 -> Desplazamiento a la izquierda
ctrl=2 -> Desplazamiento a la derecha
ctrl=3 -> Mantener estadoY como salida tendrá la señal q que mostrará el estado en el que se encuentre
Modelo correspondiente a este registro de desplazamiento:
La imagen siguiente muestra una implementación en un sintetizador del registro de desplazamiento
Funcionamiento
La gráfica siguiente corresponde a la salida de simulación utilizando Modelsim. Puede comprobarse como, inicialmente, y debido a la falta de inicialización, la salida del registro se mantiene en indeterminada hasta el tercer ciclo de reloj, momento en que todos los flip-flops internos han tomado un valor completamente definido
Problema
Generar un fichero de test para los modelos contador y registro de desplazamiento que los comprueben de forma exhaustiva