Vous êtes sur la page 1sur 14

3.

Diseño Digital usando VHDL


3.13. Uso de diagrama de flujo, para explicar
ejercicio Juego de Luces.
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Diseño de Lógica Secuencial
Un sistema secuencial se forma con un arreglo lógico combinacional y
elementos de memoria.

La salida no solo depende de los valores de entrada presentes, sino


también de la historia del sistema.
Hay dos tipos de sistemas secuenciales:
Síncronos: se sincronizan al pulso de reloj del sistema
Asíncronos: dependen del orden y momento en el cual se aplican sus señales de
entrada.

En el diseño secuencial con VHDL las declaraciones if-then- else son las
más utilizadas.
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Flip Flops
Un Flip-Flop mantiene o almacena un bit de manera indefinida hasta que un
pulso o una señal cambie de estado. Algunos de los Flip-Flops más comunes
son: SR, JK, D y T.

Los Flip-Flops con señal de reloj. son los elementos de memoria utilizados
en los sistemas secuenciales síncronos.
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Flip Flops
El atributo ‘event(evento) se utiliza para describir un hecho u ocurrencia
de una señal en particular.

Los atributos sirven para definir características que pueden asociarse


con cualquier tipo de datos, objeto o entidades.

La condición if ( clk’event ) es cierta solo cuando ocurre un cambio de


valor en clk.

La declaración if-then que depende de ‘event no maneja la condición


else , debido a que el compilador mantiene el valor de Q hasta que no
exista un cambio de valor en la señal clk.
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Flip Flops --EJEMPLO DE FLIP_FLOP D
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY FLIP_FLOP_D IS PORT


( d,clk : IN STD_LOGIC;
q : OUT STD_LOGIC);
END FLIP_FLOP_D;
ARCHITECTURE ejemplo of FLIP_FLOP_D
IS
BEGIN
PROCESS (clk) BEGIN
IF (clk'EVENT AND clk='1')
then
q<=d;

end if;
END PROCESS;
END ejemplo;
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Flip Flops
--EJEMPLO DE UN FLIP FLOP SR CON EVENTOS
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FLIP_FLOP_SR IS PORT
( s, r, clk : IN STD_LOGIC;
q, qn : INOUT STD_LOGIC);--SE TIENE QUE DECLARAR LA SEÑAL
--Q COMO INOUT DEBIDO A QUE SE UTILIZA COMO ENTRADA Y SALIDA
END FLIP_FLOP_SR;
ARCHITECTURE ejemplo of FLIP_FLOP_SR IS
BEGIN
PROCESS (clk, s, r) BEGIN
IF (clk'EVENT AND clk='1') then
IF (s='0'AND r='1')THEN
q<='0'; qn<='1';
ELSIF (s='1'AND r='0')THEN
q<='1‘; qn<='0';
ELSIF (s='0'AND r='0')THEN
q<=q; qn<=qn;
ELSE
q<='-'; qn<='-';
END IF;
END IF;
END PROCESS;
END ejemplo;
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Registros
El diseño de registros es muy parecido al diseño de Flip-Flops.
Se utilizan vectores de bits en lugar de un solo bit.
Ejemplo:
Escriba un programa de un
registro de 4 bits.

Las variables sensitivas


del proceso son CLK y CLR.
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Contadores
La forma usual para describir contadores en VHDL es mediante operaciones
de incremento, decremento o ambas.
Cuando se requiere retroalimentación de una señal (Q<=Q+1), ya sea
dentro o fuera de la entidad, se utiliza el modo inout (buffer preferiblemente).

Ejemplo:

Elabore un programa que describa


el funcionamiento de un contador
de 4 bits. Realice en el diseño una
señal de control (Up/Down) que
determine el sentido del conteo:
ascendente o descendente
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Máquinas de Estado

La teoría de máquinas de estado es el nombre con el que se conocen los


métodos de Análisis y Diseño de Circuitos Secuenciales Sincrónicos.

Las máquinas de estado son circuitos secuenciales que se encuentran


constituidos por una etapa combinacional y una etapa de memoria,
relacionadas de tal forma que conforman un sistema secuencial para algún
propósito especial. Los registros y contadores con entradas asincrónicas son
ejemplos de este tipo de sistemas secuenciales.
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Máquinas de Estado
Los circuitos secuenciales se clasifican dentro de una categoría conocida como
máquinas de estado, de la cual se distinguen comúnmente dos tipos:

• Máquina de Mealy: En esta máquina de estados las salidas se encuentran


determinadas por el estado interno del sistema y por las entradas no
sincronizadas con el circuito. El diagrama de bloques representativo de esta
máquina se muestra en la siguiente figura, donde se observa que las salidas del
sistema son tanto sincrónicas como asincrónicas.
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Máquinas de Estado
• Máquina de Moore: Las salidas solo dependen del estado interno y de cualquier
entrada sincronizada con el circuito, como se observa en la figura siguiente,
donde las salidas del sistema son únicamente sincrónicas. Un ejemplo de este
tipo de máquinas de estado son los contadores
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Máquinas de Estado
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Máquinas de Estado
El diseño de una máquina secuencial con VHDL se realiza a partir del
diagrama de estados, ya que solo se requieren conocer las
transiciones entre los estados y las condiciones que controlan el proceso.

La transición de un estado a otro se especifica como:

En VHDL se utiliza estructuras case-when para especificar cada estado.

Las transiciones se especifican con estructuras if-then-else .


Ejemplo: televisor http://gmun.unal.edu.co/~cicamargoba/digital2/1.pdf
3. Diseño Digital usando VHDL
3.15. VHDL en lógica secuencial
Máquinas de Estado
En VHDL los estados se definen dentro de un tipo de dato enumerado mediante la
declaración type .
type estados is (d0, d1, d2, d3);
signal edo_presente, edo_futuro : estados;

Dentro del proceso se describe la transición del edo_presente al edo_futuro.

La declaración del proceso queda como:


proceso1: process (edo_presente, ent) begin
case edo_presente is
when d0 => sal<= ‘valsal’;
if ent=‘valent’ then
edo_futuro <= d*;
else
edo_futuro <= d*;
end if;

Vous aimerez peut-être aussi