PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
MANUAL DE VHDL
CIRCUITOS SECUENCIALES I
Autores:
Edward Mitacc Meza
Stefano Sosa Cordova
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
CIRCUITOS SECUENCIALES I
1. Circuito secuencial vs circuito combinacional
Un circuito combinacional, por definición, es un circuito cuya salida es función de la
entrada actual. No tiene estados internos, y por tanto, no almacena información sobre
los eventos pasados, o entradas pasadas. Por otro lado, un circuito secuencial tiene un
estado interno (memoria), y su salida es función tanto de la entrada actual como del
estado interno. Este estado interno básicamente guarda información (“memoriza”) el
efecto de los pasados valores de entrada. La salida de un circuito secuencial, por tanto,
está afectada tanto por los actuales valores como los pasados valores de la entrada.
2. Elementos básicos de memoria
A continuación, se presentan las características básicas de un latch tipo D (o Latch D), y
de un flip-flop tipo D (o FF D):
Latch D
El símbolo y la tabla de funcionamiento de un latch D se muestran en la figura 1(a).
Notar que se usa el símbolo * para representar el valor siguiente, y por tanto, q*
significa “valor siguiente de q”. La entrada c es una señal de control, mientras que d es
una señal de datos de entrada. Cuando c se activa, el dato de entrada d pasa
directamente a la salida q. Cuando c se desactiva, la salida mantiene su valor previo.
Dado que la operación de un latch D depende del nivel de la señal, se dice que es
“sensible al nivel”. Un diagrama de tiempo representativo es presentado en la salida
q_latch de la figura 2. Cada vez que la señal de control (clk) está activa, el dato de
entrada pasa a la salida, y en caso contrario, se mantiene el valor anterior.
(a) Latch D (b) FF D disparado por flanco positivo
(c) FF D disparado por flanco negativo (d) FF D con reset asíncrono
Figura 1: Latch D y Flip-flop D [1]
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 2
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Figura 2: Diagramas de tiempo de Latch D y Flip-Flop D [1]
Sin embargo, dado que el latch es “transparente” (la entrada pasa directamente a la
salida) cuando c está activo, puede dejar pasar glitches (fallas transitorias) o producir
errores de sincronización. Por ello, en su lugar se prefiere el uso de flip-flops D en la
descripción de circuitos secuenciales.
Flip-flop D
El símbolo y la tabla de funcionamiento de un flip-flop D disparado por flanco positivo
se muestran en la figura 1(b). El FF D tiene una señal especial de control conocida
como señal de reloj, la cual es etiquetada como clk en el diagrama. El FF D se activa
sólo cuando la señal de reloj cambia de ‘0’ a ‘1’, lo cual se conoce como flanco de
subida del reloj. El resto del tiempo, cuando no hay flanco de subida, la salida mantiene
su valor previo. En otras palabras, en el flanco de subida de reloj, un FF D toma una
muestra del dato de entrada y almacena el valor en memoria, y pasa el valor a la salida.
La salida, la cual refleja el valor almacenado, no cambia hasta el siguiente flanco de
reloj. Dado que la operación de un FF D depende de un flanco en la señal de reloj, se
dice que es “sensible al flanco”.
Un diagrama de tiempo representativo es presentado en la salida q_pff de la figura 2.
Notar que la señal de reloj, clk, está funcionando como una señal de muestreo, que toma
una muestra del dato de entrada d en el flanco de subida.
La operación de un FF D disparado por flanco negativo es similar, excepto por el hecho
de que el muestreo es realizado en el flanco de bajada del reloj. Su símbolo y su tabla de
funcionamiento se muestran en la figura 1(c). Un diagrama de tiempo representativo se
muestra en la salida q_nff de la figura 2.
La propiedad de muestreo de los flip-flops hace posible que las variaciones o glitches
(fallas transitorias) entre dos flancos de reloj no tengan efecto en el contenido de la
memoria. Por ejemplo, en la figura 2, las variaciones de la señal d ocurridas entre los
flancos de reloj no influyen en los valores de las salidas q_pff y q_nff.
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 3
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
3. Circuitos síncronos
Un circuito síncrono utiliza flip-flops como elementos de memoria, los cuales están
todos controlados por una única señal de reloj global. El diagrama básico de un circuito
síncrono se muestra en la figura 3. El elemento de memoria, conocido también como
registro de estado, es una colección de flip-flops D sincronizados por una señal de reloj
global. La salida del registro es la señal estado_actual, y representa el estado interno del
sistema. La lógica del estado siguiente es un circuito combinacional que determina el
estado siguiente del sistema, mientras que la lógica de la salida es otro circuito
combinacional que genera la señal de salida externa. Notar que la salida depende de la
señal de entrada externa y del estado actual del registro.
Figura 3: Diagrama conceptual de un circuito secuencial síncrono
El circuito opera de la siguiente manera:
- En el flanco de subida del reloj, el valor de la señal estado_siguiente (conectada al
puerto d del registro), es capturado y transmitido hacia el puerto q, de modo que se
convierte en el nuevo valor de la señal estado_actual. Este valor permanece
almacenado por el resto del periodo de reloj.
- Basado en el valor de la señal estado_actual y la entrada externa, la lógica del estado
siguiente calcula el valor de la señal estado_siguiente, y la lógica de la salida calcula
el valor de la salida externa.
- En el siguiente flanco de subida de reloj, el nuevo valor de estado_siguiente es
capturado, y la señal estado_actual es actualizada. El proceso, entonces, se repite.
4. Descripción de elementos básicos de memoria
A continuación, se presentan descripciones VHDL estándares (típicas) de circuitos
básicos de memoria como flip-flops y registros.
Flip-flop D disparado por flanco de subida
La tabla de funcionamiento de un flip-flop D disparado por flanco de subida se muestra
en la figura 1(b). El código VHDL correspondiente se muestra a continuación. Ésta es
una descripción estándar, y es soportada por todas las herramientas de síntesis.
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 4
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
La sentencia if indica que en el flanco de subida de la señal clk, q toma el valor de d.
Dado que no hay una rama else, el valor de q se mantiene cuando no hay un flanco de
subida de clk. Por tanto, el código VHDL describe adecuadamente el funcionamiento de
un flip-flop D. Notar que la señal d no está en la lista de sensibilidad. Esto debido a que
la salida responde únicamente a la señal clk, y no depende de cambios en la señal d.
De forma alternativa a la expresión rising_edge(clk), se puede utilizar la
expresión clk'event and clk = '1'. El siguiente código VHDL es, por tanto,
equivalente.
Flip-flop D disparado por flanco de bajada
Un flip-flop D disparado por flanco de bajada es similar a un FF D disparado por flanco
de subida, excepto por el hecho de que el dato de entrada es capturado en el flanco de
bajada de la señal de reloj. Para especificar esta condición, se utiliza la expresión
falling_edge(clk) en lugar de rising_edge(clk). De manera equivalente, se
puede emplear la expresión clk'event and clk = '0'.
Flip-flop D con reset asíncrono
Un flip-flop D puede contener una señal de reset asíncrona que permite poner a ‘0’
lógico la salida del mismo. La tabla de funcionamiento correspondiente se muestra en la
figura 1(d). Notar que la operación reset no depende del nivel o flanco de la señal de
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 5
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
reloj. De hecho, tiene una prioridad mayor que la operación controlada por el reloj. El
código VHDL de un flip-flop D con reset asíncrono se muestra a continuación:
Ambas señales reset y clk están en la lista de sensibilidad dado que controlan una
operación en el flip-flop. Cuando el proceso es invocado, primero se verifica la señal de
reset. Si es '1', la salida del flip-flop es asignada el valor de '0' lógico. De lo
contrario, si es '0', el proceso continúa verificando la condición de flanco de subida
del reloj, como en un flip-flop D regular.
El reset asíncrono, como su nombre implica, no es sincronizado por la señal de reloj. Su
principal uso es para inicializar los elementos de memoria, y llevar el sistema a su
estado inicial. Una vez que el sistema entra a su estado inicial, éste comienza a operar
de manera síncrona, y no usará la señal de reset nuevamente.
Algunos flip-flops D pueden tener, adicionalmente, una señal de preset que permite
poner a '1' lógico la salida del mismo. El código VHDL correspondiente se muestra a
continuación:
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 6
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Registro
Un registro es una colección de flip-flops D que son controlados por la misma señal de
clk y reset. El código VHDL de un registro de 8 bits se muestra a continuación:
El código es similar a un flip-flop D, excepto por el hecho de que la entrada d y la salida
q son de 8 bits. Por lo general, se usa el mismo símbolo de un FF D para un registro. El
tamaño del registro se especifica indicando el ancho del bus de las conexiones de
entrada y salida.
5. Metodología de diseño de circuitos secuenciales
La manera más efectiva de diseñar un circuito secuencial es seguir el diagrama de
bloques de la figura 3. En primer lugar, se identifican los elementos de memoria, y
luego se diseñan la lógica del estado siguiente y la lógica de la salida. Esta separación
entre los elementos de memoria y los circuitos combinacionales es esencial para la
síntesis de circuitos secuenciales complejos, y es útil para realizar la verificación
funcional de los mismos. Por ello, como buena práctica se recomienda lo siguiente:
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 7
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
- Usar un segmento de código VHDL independiente para describir los elementos de
memoria. Este segmento debe ser la descripción estándar de un flip-flop D o un
registro.
- Usar el sufijo _reg para representar la salida de un registro o un flip-flop D.
- Usar el sufijo _next para indicar el siguiente valor (entrada D) de un flip-flop D o un
registro.
En la siguiente sección se presentan circuitos secuenciales simples descritos mediante
este estilo de codificación.
6. Ejemplos de descripción de circuitos secuenciales
Flip-flop D con habilitador
La tabla de funcionamiento de un flip-flop D con habilitador se muestra en la figura
4(a). Notar que la señal de habilitación (en) sólo tiene efecto en el flanco de subida de la
señal de reloj, lo cual significa que la señal es sincronizada por el reloj. En el flanco de
subida del reloj, el flip-flop captura los valores de en y d. Si en es '0', lo que significa
que el FF no está habilitado, el FF mantiene su valor previo. De lo contrario, si en es
'1', el FF está habilitado y funciona como un FF D regular.
(a) Tabla de funcionamiento (b) Diagrama conceptual
Figura 4: Flip-flop D con habilitador [1]
El código VHDL correspondiente se muestra a continuación:
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 8
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
El código VHDL sigue la metodología presentada para diseño de circuitos secuenciales,
y está dividido en tres segmentos: elemento de memoria, lógica del estado siguiente y
lógica de la salida. El elemento de memoria es un flip-flop D regular. La lógica del
estado siguiente está implementada por una sentencia when-else, de modo que la señal
q_next puede tomar el valor de d o tomar el valor actual del FF, q_reg, dependiendo del
valor de en. En el flanco de subida del reloj, el valor de q_next será capturado y
almacenado en el elemento de memoria. Por último, la lógica de la salida es
simplemente un cable que conecta la salida al puerto q del flip_flop.
El diagrama conceptual correspondiente se muestra en la figura 4(b). Para obtener el
diagrama, primero se separa y especifica el elemento de memoria, y luego se especifica
el circuito combinacional restante.
Registro de desplazamiento (registro serie-serie)
Un registro de desplazamiento (shift register) tiene una entrada y una salida de 1 bit.
Internamente está compuesto por n flip-flops conectados entre sí, en serie, formando
una cadena. La entrada del registro es la entrada del primer flip-flop, y la salida del
registro es la salida del último flip-flop. En la figura 5 se muestra un registro de
desplazamiento de 4 bits. Si se agrupan los cuatro flip-flops y se tratan como un solo
bloque de memoria, se puede adaptar el circuito al diagrama de bloques presentado
anteriormente para circuitos secuenciales. Este diagrama se presenta en la figura 6.
Figura 5: Registro de desplazamiento de 4 bits [1]
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 9
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Lógica
Desplaza de
1 bit hacia salida
la derecha
Figura 6: Diagrama de bloques de registro de desplazamiento de 4 bits [1]
El código VHDL correspondiente se muestra a continuación:
En la lógica del estado siguiente, la sentencia
r_next <= d & r_reg(3 downto 1);
indica que el contenido actual del registro es desplazado un bit hacia la derecha, y un
nuevo bit, d, es insertado a la izquierda.
Contador binario de carrera libre
Un contador binario de n bits tiene un registro con n flip-flops, y su salida es
interpretada como un número entero sin signo. Un contador binario de carrera libre
incrementa el contenido del registro en cada ciclo de reloj, y cuenta repetidamente desde
0 hasta 2n-1. Adicionalmente, se incluye una señal de estado, max_pulse, que se activa
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 10
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
cuando el contador llega a su tope (cuando todos los bits en '1'). El código VHDL de
un contador binario de 4 bits se muestra a continuación:
La lógica del estado siguiente consiste de un incrementador, el cual calcula el nuevo
valor para el siguiente estado del registro. Notar que una vez que el contador llega a su
máximo valor, “1111”, su siguiente valor es “0000”. Esto debido a que la cuenta está
definida para 4 bits. La lógica de salida utiliza una sentencia when-else para
implementar el pulso deseado, max_pulse. El diagrama conceptual se muestra en la
figura 7.
Figura 7: Diagrama conceptual de contador binario de carrera libre de 4 bits [1]
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 11
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Contador de módulo 10 (contador de décadas)
En lugar de utilizar todos los posibles 2n estados de un contador binario de n bits, se
puede emplear sólo un rango de estados para la cuenta. Se define un contador de
módulo m a un contador binario cuyos estados transitan desde 0 hasta m-1, y luego
repiten la cuenta. Por ejemplo, consideremos el diseño de un contador de módulo 10,
también conocido como contador de décadas. El contador realiza la cuenta de 0 hasta 9
repetidamente. Se necesitan al menos 4 bits ([log210]) para acomodar los 10 posibles
estados, y por tanto la salida es de 4 bits. La descripción VHDL de este contador se
muestra a continuación:
Se observa en la lógica del estado siguiente que se utiliza una sentencia when-else para
indicar que una vez que el contador llega a 9, su siguiente valor es 0. De no existir esta
condición, se continuaría incrementando la cuenta.
De forma alternativa, se puede emplear una constante para indicar el tope de la cuenta,
lo cual hace más flexible el código. Esto se muestra a continuación:
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 12
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
El diagrama conceptual correspondiente se muestra en la figura 8.
Figura 6: Diagrama conceptual de contador de módulo 10 [1]
Para realizar un contador de módulo m, simplemente se debe cambiar el tope del
contador a m-1. Asimismo, debe tenerse en cuenta el ancho de las señales que se
emplean para el contador, de modo que se acomoden a los valores que toma la cuenta.
Por ejemplo, si se desea describir un contador de módulo 18 (cuenta de 0 a 17), el ancho
de las señales del contador será de 5 bits, pues para expresar el valor máximo (17), se
necesitan 5 bits como mínimo (“10001”).
7. Test bench: Generación de señal de reloj y de reset
A fin de realizar la verificación funcional de un circuito secuencial, deben generarse
estímulos para las señales de reloj y de reset. Una manera de realizar esto es mediante la
sentencia wait for, la misma que se empleó para la generación de estímulos en circuitos
combinacionales. Sin embargo, la sintaxis de un proceso de generación de señal de reloj
es ligeramente distinta. A modo de ejemplo, se presenta la descripción de un contador
de módulo 6 y su respectivo test bench.
Ejemplo: Contador de módulo 6
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 13
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Test bench de contador de módulo 6:
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 14
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Se observa que se define una constante, denominada Periodo, para indicar la duración
del período de la señal de reloj. Esta constante es luego utilizada en los procesos
empleados para generar los estímulos para las señales clk y reset. En el primero de ellos,
Reset_process, se asigna inicialmente un ‘1’ lógico a reset y se mantiene dicho valor
por la duración de Periodo (20 ns), y luego se asigna un ‘0’ lógico a reset. Esto permite
generar un pulso de reset de corta duración, con la finalidad de inicializar el contador.
En el segundo proceso, Clock_process, se genera una señal de reloj que tiene la forma
de una señal cuadrada, que alterna repetidamente entre ‘0’ y ‘1’ lógico. Cada valor, ‘0’
ó ‘1’, se mantiene durante la mitad de Periodo (esto es, 10 ns), de manera que se genera
una señal clk que tiene un período de 20 ns (su forma de onda se repite cada 20 ns).
Debe notarse que no se incluye una sentencia wait al final de este proceso, ya que se
desea que el mismo se ejecute de manera continua a fin de generar una señal de reloj.
De existir la sentencia wait, sólo se generaría un período de la señal de reloj.
A continuación, se observan las formas de onda generadas de las señales clk, reset y q.
Puede notarse que efectivamente la señal reset se activa durante los primeros 20 ns, y
que la señal clk tiene un período de 20 ns. Asimismo, se observa que la señal q
efectivamente realiza una cuenta de 0 hasta 5 de forma repetida.
8. Ejercicios resueltos
8.1. Ejemplo 1: Contador de módulo 10 con múltiples salidas
Descripción del funcionamiento del circuito
El circuito consiste de un contador binario de módulo 10 que, además de mostrar el
valor actual de la cuenta, tiene tres salidas que indican si el valor actual es un número
par, impar o primo.
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 15
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Estructura del circuito
Estructura del código
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 16
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Verificación funcional del circuito (Test Bench)
Como se aprecia en los resultados gráficos, la señal cuenta se incrementa en cada ciclo
de reloj desde 0 hasta 9, de forma repetida. Asimismo, se generan las salidas n_par,
n_impar y n_primo de acuerdo a los valores esperados. Por ejemplo, cuando cuenta es
7, sólo se activan las salidas n_impar y n_primo.
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 17
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
8.2. Ejemplo 2: Contador de módulo 24 con múltiples salidas
Descripción del funcionamiento del circuito
El circuito consiste de un contador binario de módulo 24 que, además de mostrar el
valor actual de la cuenta, tiene tres salidas: mañana, tarde y noche.
Si 6 ≤ cuenta ≤ 12 => mañana = ‘1’.
Si 13 ≤ cuenta ≤ 18 => tarde = ‘1’.
Si 0 ≤ cuenta ≤ 5 ó 19 ≤ cuenta ≤ 23 => noche = ‘1’.
Estructura del circuito
Estructura del código
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 18
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Verificación funcional del circuito (Test Bench)
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 19
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Como se aprecia en los resultados gráficos, la señal cuenta se incrementa en cada ciclo
de reloj desde 0 hasta 23, de forma repetida. Asimismo, se generan las salidas manana,
tarde y noche de acuerdo a los valores esperados.
8.3. Ejemplo 3: Contador de módulo 9 con incremento y decremento
Descripción del funcionamiento del circuito
El circuito consiste de un contador binario de módulo 9 que está controlado por la señal
sel de la siguiente manera:
Si sel = ‘0’ => la cuenta se incrementa en una unidad
Si sel = ‘1’ => la cuenta disminuye en una unidad
Estructura del circuito
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 20
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Estructura del código
Verificación funcional del circuito (Test Bench)
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 21
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Como se aprecia en los resultados gráficos, la señal cuenta se incrementa o decrementa
dependiendo del valor de la señal sel.
8.3. Ejemplo 4: Temporizador de segundos
Descripción del funcionamiento del circuito
El circuito consiste de un temporizador que cuenta segundos (módulo 60). Considerar
que el reloj de entrada tiene una frecuencia de 50 MHz.
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 22
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Estructura del circuito
Estructura del código
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 23
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Verificación funcional del circuito (Test Bench)
Como se aprecia en los resultados gráficos, la señal cuenta se incrementa cada segundo
desde 0 hasta 59, de forma repetida.
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 24
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
SECCIÓN ELECTRICIDAD Y ELECTRÓNICA
Bibliografía
[1] Pong P. Chu
2006 “RTL Hardware Design Using VHDL: Coding for Efficiency, Portability
and Scalability”, Wiley-IEEE Press, primera edición
[2] Pedroni, Volnei A.
2010 “Circuit Design and Simulation with VHDL”, MIT Press, segunda edición
LABORATORIO DE CIRCUITOS Y SISTEMAS ELECTRÓNICOS 25