HDL PARA CIRCUITOS SECUENCIALES
En esta sección seguiremos estudiando el modelado de comportamiento y presentaremos ejemplos de descripciones de flip-flops y circuitos secuenciales.
Modelado de comportamiento
Hay dos tipos de enunciados de comportamiento en Verilog HDL: inicial y siempre.
El comportamiento inicial se ejecuta una vez en el tiempo=0. El comportamiento “siempre” se ejecuta una y otra vez hasta que la simulación termina. Los comportamientos se declaran dentro de los módulos con las palabras clave initial y always seguidas de un enunciado o bloque de enunciados delimitado por las palabras clave begin y end. Un módulo puede contener un número arbitrario de enunciados initial o always. Estos enunciados se ejecutan de forma concurrente a partir del tiempo 0.
Un enunciado initial se ejecuta una sola vez. Inicia su ejecución al principio de la simulación y termina una vez que han terminado de ejecutarse todos los enunciados. El enunciado initial es útil para generar señales de entrada a fin de simular un diseño. Al simular un circuito secuencial, es necesario generar una fuente de reloj para disparar
los flip-flops. He aquí dos posibles formas de incluir un reloj de operación libre:
initial initial
begin begin
clock = 1'b0 ; clock = 1'b0;
repeat (30) #300 $finish;
#10 clock = ~ clock; end
end always
#10 clock = ~clock;
- En la primera versión, el bloque initial está encerrado entre las palabras clave begin y end. El reloj se pone en 0 en el tiempo=0; se complementa cada 10 unidades de tiempo y se repite 30 veces. Esto produce 15 ciclos de reloj, cada uno con una duración de 20 unidades de tiempo.
- En la segunda versión, el bloque initial pone el reloj en 0 en el tiempo=0. Después de 10 unidades de tiempo, el enunciado always complementa repetidamente el reloj cada 10 unidades de tiempo, lo que proporciona un reloj con una duración de 20 unidades de tiempo. La simulación termina en respuesta a la tarea del sistema $finish en el tiempo=300.
El enunciado always se controla con retardos que esperan cierto tiempo o esperan hasta
que ciertas condiciones se cumplen o se presentan ciertos sucesos. Aquí sólo se explicará la condición de control por suceso. Este tipo de enunciado tiene la forma:
always @ (expresión de control de sucesos)
Enunciados procedimentales de asignación.
La expresión de control de sucesos especifica la condición que debe presentarse para activar la ejecución de los enunciados procedimentales de asignación.
EJEMPLO:
Tiene dos entradas, D y control, y una salida, Q. Puesto que Q se evalúa en un enunciado procedimental, se le debe declarar como de tipo reg. Los latches responden a niveles de señal de entrada, así que las dos entradas se dan sin calificadores de borde (posedge o negedge) en la expresión de control de sucesos que sigue al símbolo @ en el enunciado always.
RSS Feed
Twitter
11:20
sofia perez billamizar

0 comentarios:
Publicar un comentario