Intermedio > Circuitos integrados > Diseño Jerarquico

Diseño Jerarquico

Objetivos

  1. Usar el VHDL como herramienta de edición de bloques funcionales a medida.
  2. Usar el VHDL en la edición mediante grafico y texto.
  3. Integrar bloques funcionales en sistemas de mayor complejidad usando diseño jerárquico.
  4. Asignación de pines al proyecto para su grabación.

Introducción Teórica




Preparación

Para el desarrollo de esta experiencia el alumno debe tener claro los conceptos dados en la clase teórica, revisar sus apuntes y afianzar sus conocimientos con el texto base y la bibliografía del curso

Problema

I. Se requiere realizar el diseño de un sistema que controle un motor el cual acciona una faja que transporta cajas como el que se muestra en la figura:

El sistema debe de tener los siguientes controles:

  1. Un interruptor de habilitación de todo el sistema.
  2. Un pulsador Start / Stop
  3. Controles de configuración de número de cajas, borrado de npumero de cajas
  4. Control para cambio el sentido de giro del motor

La estructura del sistema esta descrito mediante el sistema diagrama de bloques:

Procedimiento

  1. Antes de comenzar a implementar los bloques, primero creamos un circuito lógico del 7490 y 7493 debido a que estos dos contadores no se encuentran en la librería de símbolos y es lo que se requiere.

    • Implementación del 7490

    • Implementación del 7493

  2. Usando los contadores ya creados procedemos a implementar el primer bloque del proceso planteado.
  3. Código VHDL
    1. library IEEE;
    2. use IEEE.STD_LOGIC_1164.ALL;
    3. entity Bloque2 is
    4. port(
    5. N, C: in std_logic_vector (3 downto 0);
    6. igual : out std_logic);
    7. end Bloque2;
    8. architecture behavioral of Bloque2 is
    9. begin
    10. process (N,C)
    11. begin
    12. if N=C then
    13. igual <='1';
    14. else
    15. igual <= '0';
    16. end if;
    17. end process;
    18. end behavioral;
  4. Implementando el tercer bloque
  5. Código VHDL
    1. library IEEE;
    2. use IEEE.STD_LOGIC_1164.ALL;
    3. entity Bloque4 is
    4. port (
    5. A, B: in STD_LOGIC_VECTOR (3 downto 0);
    6. AmayorB : out STD_LOGIC);
    7. end Bloque4;
    8. architecture behavioral of Bloque4 is
    9. begin
    10. process (A,B)
    11. begin
    12. if A>B then
    13. AmayorB<='1';
    14. else
    15. AmayorB<='0';
    16. end if;
    17. end process;
    18. end behavioral;
  6. Una vez terminado el diseño de los bloques de la parte lógica. Realizar la integración de todo el sistema usando los archivos de librería antes editado. De acuerdo al siguiente diagrama:
Entradas
Habilitación: Interruptor
Start/Stop: pulsador
Borrado: Interruptor
NúmeroCajas: pulsador
CajaSensadas: Interruptor
SentidoGiro: Interruptor
IncreVelocidad: pulsador
DecreVelocidad: pulsador
RelojModulador:


Salidas:
Ccomparación: LED
Cgiro: LED
SalidaModulador: LED

Los programas generados pueden ser descargados desde est link:https://github.com/mokuzaru/vhdl_labs

Linksappsclose