1.7 - Diseño Logico Secuencial en VHDL

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Universidad Nacional de Salta – Sede Regional Orán Asignatura: Electrónica Digital III - TEU 32

1.7 – DISEÑO LOGICO SECUENCIAL EN VHDL

Un sistema secuencial está formado por un circuito combinacional y un elemento de memoria


encargado de almacenar de forma temporal la historia del sistema.
El elemento de memoria utilizado indistintamente en el diseño de los sistemas síncronos y asíncronos
se conoce como flip flop. La característica principal de un flip flop es mantener o almacenar un bit de
manera indefinida hasta que a través de un pulso o una señal cambie de estado. Los más conocidos
son SR, D, JK y T.

1.7.1 – Diseño de Flip flop

La ejecución del proceso es sensible a los cambios en el Ej2: Descripción del flip flop SR disparado
pulso de reloj clk: cuando clk cambia de valor de una por flanco positivo.
transición de 0 a 1, el valor de D se asigna a Q y se
conserva hasta que se genera un nuevo pulso. A la
inversa, si clk no presenta dicha transición, el valor de
Q se mantiene igual.
Atributo event: En VHDL, los atributos sirven para
definir características que se pueden asociar con
cualquier tipo de datos, objetos o entidades. El atributo
LIBRARY IEEE;
event se utiliza para describir un hecho o una USE IEEE.STD_LOGIC_1164.ALL;
ocurrencia de una señal en particular.
ENTITY flipflopSR
Ej1: Descripción del flip flop D PORT(S, R , clk: IN STD_LOGIC;
En los ejemplos disparado por flanco positivo. Q, Qcmp: INOUT STD_LOGIC);
Ej1 y Ej2, la END flipflopSR;
condición if
ARCHITECTURE arq_ffSR OF flipflopSR IS
clk’event es
BEGIN
verdadera sólo
PROCESS (clk, S, R)
cuando ocurre
BEGIN
un cambio de
LIBRARY IEEE; IF (clk’EVENT AND clk =’1’) THEN
valor. La
USE IEEE.STD_LOGIC_1164.ALL; IF (S = ‘0’ AND R =’1’) THEN
declaración if
Q <=´0’;
no maneja la
ENTITY flipflopD Qcmp<= ‘1’;
condición else,
PORT(D , clk: IN STD_LOGIC; ELSIF (S = ‘1’ AND R =’0’) THEN
debido a que el
Q: OUT STD_LOGIC); Q <=´1’;
compilador
END flipflopD; Qcmp<= ‘0’;
mantiene el
ELSIF (S = ‘0’ AND R =’0’) THEN
valor de Q ARCHITECTURE arq_ff OF flipflopD IS
Q <= Q;
mientras no BEGIN
Qcmp<= Qcmp;
exista un PROCESS (clk, D)
ELSE
cambio de valor BEGIN
Q <= ’-‘ ;
en la señal clk. IF (clk’EVENT AND clk =’1’) THEN
Qcmp<= ‘-‘;
Q <=D;
END IF;
END IF;
END IF; Valores “no
END PROCESS;
END PROCESS; importa”
END arq_ff;
END arq_ffSR;

Cartilla de la materia - Ing. Dora Mendoza


Universidad Nacional de Salta – Sede Regional Orán Asignatura: Electrónica Digital III - TEU 33

1.7.2 – Diseño de Registros y contadores Ej4: Contador Binario de 4 bits.


Un registro está compuesto por flip flops y una
señal común de reloj.
Un contador es un registro que responde a las
operaciones de incremento y/o decremento de
datos.

Ej3: Registro con flip flop D.

LIBRARY IEEE;
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_1164.ALL; USE WORK.STD_ARITH.ALL;
ENTITY cont4
ENTITY registro PORT(
PORT( D: IN STD_LOGIC_VECTOR (0 TO 7); clk: IN STD_LOGIC;
clk: IN STD_LOGIC; Q: INOUT STD_LOGIC_VECTOR(3 DOWNTO 0));
Q: OUT STD_LOGIC_VECTOR(0 TO 7)); END cont4;
END registro;
ARCHITECTURE arq_cont4 OF cont4 IS
ARCHITECTURE arq_reg OF registro IS BEGIN
BEGIN PROCESS (clk)
PROCESS (clk, D) BEGIN
BEGIN IF (clk’EVENT AND clk =’1’) THEN
IF (clk’EVENT AND clk =’1’) THEN Q <= Q + 1;
Q <= D; END IF;
END IF; END PROCESS;
END PROCESS; END arq_cont4;
END arq_reg;

1.7.3 – Diseño de Sistemas Síncronos

Un sistema secuencia síncrono basa su funcionamiento en los flip flops.


La sincronía se implementa con una señal de reloj compartida, de tal
forma que se producirá un cambio de estado en el sistema cuando
ocurra un flanco de disparo o un pulso en dicha señal.
Existen dos tipos de sistemas secuenciales:
 Máquina de Mealy: las señales de salida dependen tanto del estado
en que se encuentra el sistema como de la entrada que se aplica en
determinado momento.
 Máquina de Moore: la señal de salida solo depende del estado en
que se encuentra.
Para diseñar un sistema síncrono se utilizan diferentes elementos: enunciado del problema, diagrama
de estado, tabla de estado, asignación de estados, ecuaciones de entrada, elementos de memoria y
logigrama del circuito.

Cartilla de la materia - Ing. Dora Mendoza


Universidad Nacional de Salta – Sede Regional Orán Asignatura: Electrónica Digital III - TEU 34

Ej: Diseñar un “detector de secuencia” que emita un pulso de


salida Z (Z= 1) cuando en la línea de entrada X se reciban tres
unos en forma consecutiva; en caso contrario, la salida Z es igual
a cero.

Por las características del sistema se utilizará el esquema de la


máquina de Mealy.

Como primer paso del diseño se debe considerar los estados: A, B y C. Para TYPE estados IS (A, B, C);
representarlos en VHDL se lo define como tipo de datos enumerados mediante la SIGNAL ep, ef: estados;
declaración TYPE.
Proceso1: PROCESS (ep, x)
BEGIN
El siguiente paso consiste en la declaración del proceso Proceso1 que definirá el
CASE ep IS
comportamiento del sistema. En este caso debe considerarse que el estado WHEN A => Z <=’0’;
futuro ef depende del valor del estado presente ep y de la entrada X. Dentro del IF (X = ‘1’) THEN
proceso se describe la transición de ep al ef. Se inicia con la declaración CASE ef <= B;
ELSE
para especificar el primer estado que se va a evaluar (en este caso, el estado A), ef <= A;
donde la salida Z siempre es cero sin importar el valor de X. Si la entrada X es END IF;
igual a 1 el estado futuro es B, caso contrario es A.
Proceso2: PROCESS (clk)
BEGIN
En un segundo proceso Proceso2, se realiza de manera síncrona la IF (clk’EVENT AND clk =’1’) THEN
asignación del estado futuro al estado presente: cuando se aplica un pulso ep <= ef;
END IF;
de reloj este proceso se ejecuta.
END PROCESS Proceso2;

Ej3: Detector de secuencia WHEN B => Z <=’0’;


LIBRARY IEEE; IF (X = ‘1’) THEN
USE IEEE.STD_LOGIC_1164.ALL; ef <= C;
-- se describe el diagrama de estados ELSE
ENTITY diagrama IS ef <= A;
PORT( END IF;
Clk, X: IN STD_LOGIC; WHEN C =>
Z: OUT STD_LOGIC); IF (X = ‘1’) THEN
END diagrama; ef <= C;
Z <= ‘1’;
ARCHITECTURE arq_diag OF diagrama IS
ELSE
TYPE estados IS (A, B, C);
ef <= A;
SIGNAL ep, ef: estados;
Z <= ‘0’;
BEGIN
END IF;
--proceso para definir las transiciones de los estados
END CASE;
y las condiciones para dichas transiciones
END PROCESS Proceso1;
Proceso1: PROCESS (ep, X)
BEGIN --proceso para sincronismo
CASE ep IS Proceso2: PROCESS (clk)
WHEN A => Z <=’0’; BEGIN
IF (X = ‘1’) THEN IF (clk’EVENT AND clk =’1’) THEN
ef <= B; ep <= ef;
ELSE END IF;
ef <= A; END PROCESS Proceso2;
END IF; END arq_diag;

Cartilla de la materia - Ing. Dora Mendoza


Universidad Nacional de Salta – Sede Regional Orán Asignatura: Electrónica Digital III - TEU 35

1.8 – INTEGRACION DE ENTIDADES EN VHDL

La integración de entidades puede realizarse de dos maneras:


 Mediante el diseño individual de cada bloque lógico, a través de varios procesos internos que
posteriormente se unirán mediante un programa común
 A través de sus entradas y salidas, observando y analizando de manera global todo el sistema
a fin de evaluar su comportamiento.

Ej1: Sistema que integra un contador de 4 bits con un decod de 7 segmentos,


mediante el diseño individual de entidades
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE WORK.STD_ARITH.ALL;
ENTITY display
PORT(
Clk, reset: IN STD_LOGIC;
d: INOUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --salidas del decod
q: INOUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --salidas del contador
END display;

ARCHITECTURE arq_display OF display IS


BEGIN
-- proceso para el contador
PROCESS (clk, reset)
BEGIN
IF (clk’EVENT AND clk =’1’) THEN
q <= q+1;
IF (reset = ‘1’ OR q =”1001”) THEN
q <= “0000”;
END IF;
END IF;
END PROCESS;
-- proceso para el decodifcador de 7 seg
PROCESS (q)
BEGIN
CASE q IS
WHEN “0000” => d <= ”1111110”;
WHEN “0000” => d <= ”0110000”;
WHEN “0010” => d <= “1101101”;
WHEN “0011” => d <= “1111001”;
WHEN “0100” => d <= “0110011”;
WHEN “0101” => d <= “1011011”;
WHEN “0110” => d <= “1011111”;
WHEN “0111” => d <= “1110000”;
WHEN “1000” => d <= “1111111”;
WHEN “1001” => d <= “1110011”;
WHEN OTHERS => d <= “0000000”;
END CASE;
END PROCESS;
END arq_display;
Cartilla de la materia - Ing. Dora Mendoza
Universidad Nacional de Salta – Sede Regional Orán Asignatura: Electrónica Digital III - TEU 36

Ej1: Sistema que integra un contador de 4 bits con un decod de 7


segmentos, mediante la relación de entradas y salidas
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE WORK.STD_ARITH.ALL;
ENTITY display2
PORT(
Clk, reset: IN STD_LOGIC;
d: INOUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --salidas del decod
END display2;

ARCHITECTURE arq_display2 OF display2 IS


SIGNAL q: STD_LOGIC_VECTOR(3 DOWNTO 0); --salidas del contador
BEGIN
-- proceso para el contador
PROCESS (clk, reset)
BEGIN Ambos programas son
IF (clk’EVENT AND clk =’1’) THEN correctos, sin embargo, a
q <= q+1; diferencia del primer
IF (reset = ‘1’ OR q =”1001”) THEN programa, en el segundo sólo
q <= “0000”; se asignan las terminales de
END IF; salida correspondientes al
END IF; decodificador, el enlace
END PROCESS; interno entre el contador y
-- proceso para el decodifcador de 7 seg éste último se realiza
PROCESS (q) mediante señales (signal). Por
BEGIN lo tanto el segundo programa
CASE q IS permite utilizar menos
WHEN “0000” => d <= ”1111110”; recursos de un dispositivo y
WHEN “0000” => d <= ”0110000”; espacio dentro de los mismos.
WHEN “0010” => d <= “1101101”;
WHEN “0011” => d <= “1111001”;
WHEN “0100” => d <= “0110011”;
WHEN “0101” => d <= “1011011”;
WHEN “0110” => d <= “1011111”;
WHEN “0111” => d <= “1110000”;
WHEN “1000” => d <= “1111111”;
WHEN “1001” => d <= “1110011”;
Comparación entre ambos
WHEN OTHERS => d <= “0000000”;
diseños:
END CASE;
END PROCESS;
 El primero permite
END arq_display; como un diseño modular,
pero se tiene un Número
excesivo de terminales utilizadas en el dispositivo
 En el segundo, cuando se observa el sistema como un todo, el número de terminales de
entrada y salida disminuye, por lo que el trabajo consiste en desarrollar no sólo un algoritmo
interno capaz de interpretar el funcionamiento de cada bloque, sino también cómo conectar
cada uno de ellos.

Cartilla de la materia - Ing. Dora Mendoza

También podría gustarte