Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

13
UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERIA ELÉCTRICA Y ELECTRÓNICA ESCUELA PROFECIONAL DE INGENIERIA ELECTRÓNICA ASIGNATURA: Arquitectura de computadoras Laboratorio -92G SEMESTRE ACADEMICO: 2014-B TEMA: PROYECTO VHDL PROFESOR: Cucho Mendoza Zenón

description

ARQUITECTURA DE COMPUTADORAS UNAC

Transcript of Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

Page 1: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA ELÉCTRICA Y ELECTRÓNICA

ESCUELA PROFECIONAL DE INGENIERIA ELECTRÓNICA

ASIGNATURA: Arquitectura de computadoras Laboratorio -92G

SEMESTRE ACADEMICO: 2014-B TEMA: PROYECTO VHDL PROFESOR: Cucho Mendoza Zenón

CODIGO APELLIDOS/

NOMBRESPREVIO(6)

P_LAB(8)

SUST(4)

TAREAS(2)

NOTA

1213220376

DE LA CRUZ CASTRO DOMINGO CESAR

1213210012

HERRERA ESCATE HAROLD ANDRE

Page 2: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

Proyecto de VHDL por medio del GAL 22V10D

I. Introducción:GAL (Generic Array Logic), en español Arreglo Lógico Genérico, son un tipo de circuito integrado, de marca registrada por Lattice Semiconductor, que ha sido diseñados con el propósito de sustituir a la mayoría de las PAL, manteniendo la compatibilidad de sus terminales.

Utiliza una matriz de memoria EEPROM en lugar por lo que se puede programar varias veces.

Un GAL en su forma básica es un PLD con una matriz AND reprogramable, una matriz OR fija y una lógica de salida programable mediante una macrocelda. Esta estructura permite implementar cualquier función lógica como suma de productos con un número de términos definido. En los PLDs no reprogramables la síntesis de las ecuaciones lógicas se realiza mediante quema de fusibles en cada punto de intersección de los pines de entrada con las compuertas. En el caso de un GAL es básicamente la misma idea pero en vez de estar formada por una red de conductores ordenados en filas y columnas en las que en cada punto de intersección hay un fusible, el fusible se reemplaza por una celda CMOS eléctricamente borrable (EECMOS). Mediante la programación se activa o desactiva cada celda EECMOS y se puede aplicar cualquier combinación de variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operación producto que se desee. Una celda activada conecta su correspondiente intersección de fila y columna, y una celda desactivada desconecta la intersección. Las celdas se pueden borrar y reprogramar eléctricamente.

II. Objetivos:

- Programar en lenguaje VHDL y controlar un circuito externo.- Usar GAL22v10d para controlar un circuito por medio del lenguaje VHDL.- Controlar un motor y leds por medio del lenguaje VHDL y la interfaz de Proteus

Isis.

III. Funcionamiento:La manera en la que opera nuestro proyecto es la siguiente:

Tenemos 3 pulsadores, uno para el sentido Horario, uno para el sentido Antihorario y uno más que es el pulsador para detener el giro, llamado también stop.

Para esto tenemos nuestra programación hecha previamente en el VHDL, la cual será mostrada en breve, el programa ejecutable (.jed) la cual adquirimos usando el programa ispleverclasic siguiendo una serie de pasos mostrados a continuación, es así que el GAL22V10D puede controlar a los demás dispositivos según nuestra

Page 3: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

programación. Para resumir esta parte, usando nuestra programación en VHDL controlamos varios dispositivos mediante un solo integrado, GAL22V10D.

Siguiendo con el proceso, el GAL22V10D permite aprovechar las ventajas del motor para hacerlo girar, ya sea en sentido horario o antihorario dependiendo del pulsador que activemos mientras dura el proceso o detenerlo si es deseado, mediante el pulsador de stop.

Se agregaron una serie de leds, como demostración del sentido en el cual va el motor, esto es simplemente estético, pero permite visualizar de una mejor manera el giro del motor DC.

IV. Diagrama de flujo:

Cargamos la programación en .jed

en el GAL22V10D

Proyecto VHDL con motor y leds

Apretamos cualquiera de los pulsadores para

el giro del motor

Horario Antihorario

El motor gira en sentido horario y los leds se

encienden indicando el sentido de giro

El motor gira en sentido antihorario y los leds se encienden indicando el

sentido de giro

Page 4: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

V. Programación en VHDL:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity motorled is

port( P: in std_logic_vector(2 downto 0);

S: out std_logic_vector(1 downto 0);

P1: in std_logic_VECTOR(2 DOWNTO 0);

C: out std_logic_vector(2 downto 0);

V: out std_logic_vector(2 downto 0) );

end motorled ;

architecture motorled of motorled is

signal B: std_logic_vector (1 downto 0);

begin

------------DECLARANDO SIGNAL B-------------

with P select

B <= "01" when "011",

"10" when "101",

"11" when "110",

"00" when others;

------------VALORES DE GIRO DEL MOTOR--------

process(B)

Page 5: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

begin

if B="01" then S <= "10" ;

end if;

if B="10" then S <= "01" ;

end if;

if B="11" then S <= "00" ;

end if;

if B="00" then S <= "00" ;

end if;

end process;

-----------------PARTE DE LOS LEDS------------------------

with P select

C <= "101" when "011",

"110" when "101",

"100" when others;

----------PARTE DE VELOCIDAD

with P1 select

V <= "001" when "011",

"010" when "101",

"100" when others;

end motorled;

Page 6: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

En imágenes:

Page 7: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

USANDO EL ISPLEVER CLASSIC:

Para comvertir nuestro archivo a formato .jed para que lo podramos abrir en proteus seguiremos los siguiente pasos:

Crear archivo en la carpeta donde se encuentrra el proyecto en VHDL:

Seleccionar el GAL 22V10D para su uso en el ISIS:

Page 8: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

Abrir el archivo VHDL creado con la programación a usar:

Una ves creado compilar el trabajo de la siguiente forma:

Page 9: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

Realizar el mapa de fusibles de la siguiente manera:

Una ves seguido los pasos abrimos y observamos la asignación de PINES en el CHIP REPORT

Page 10: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

VI. Simulación en Proteus:

VII. Observaciones y Conclusiones:

Nuestro programa tiene un diseño agradable a la vista el cual permite escoger un sentido de giro para un motor y asimismo detenerlo si es deseado, todo por medio de pulsadores que sirven como selectores mediante la ejecución de nuestra programación.

Concluimos del laboratorio que usando VHDL y Proteus podemos simular circuitos como PLD con una programación la cual es mas útil que hacerlo de la manera clásica con solo compuertas e integrados ya que suplantamos todo ello por una programación la cual controla el proceso del circuito dándonos la ventaje de portabilidad y menos gasto para el proyecto.

Es posible desarrollar un programa en lenguaje VHDL en Quartus II y simularlo en Proteus, sin embargo no es suficiente estos 2 programas para desarrollarlo.

El GAL utilizado 22V10 es muy útil y versátil, pues podemos declarar variables de entradas y salidas a preferencia y gusto del usuario.

Es mucho más práctico que el PPI pues se requieren menos componentes y es más sencilla la declaración de puertos.

Page 11: Proyecto VHDL Mediante GAL22V10D(Control de Motor y Leds)

Durante el desarrollo de éste programa tuvimos inconvenientes como el uso de un programa extra para crear el archivo .jed que sirviera de base para nuestro proyecto en Proteus.

Se usó el ispLever Classic 1.8 con el cual pudimos hacer uso de nuestra programación dentro del 22V10.

Trabajamos bajo el mismo concepto de nuestro proyecto PPI, es decir, logramos hacer el mismo trabajo, pero ésta vez empleando lo aprendido en la 2da parte del semestre.