Вы находитесь на странице: 1из 7

Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales

Mi primer programa en WarpR4.


¿Que es WARPR4?

Es un potente compilador lógico para basado en VHDL para Dispositivos Lógicos


Programables específicos, simples y complejos. VHDL es un lenguaje de
programación que debe su nombre a 2 tipos de procesamiento de datos en
Hardware VHSIC (Very High Speed Integrated Circuits) and HDL(Hardware
Description Language)y es considerada la herramienta más poderosa por
universidades e industrias en la planificación diseño y concepción de
sistemas digitales de alto desempeño basados en PLD y FPGA.
A diferencia de WINCUPL, VHDL permite diseñar sistemas con un grado de
dificultad alto en múltiples capas de integración lógica o dispositivos
lógicos dentro de un mismo encapsulado, respetando normas internacionales
basadas en la IEEE para la programación de ASIC, PLD y FPGA. En la década de
los 90 el departamento de defensa de los EU adopto el Std adicional de VHDL
ieee.1164 para sus ASIC (Application Specifics Integrated Circuits).

Aunque WINCUPL y VHDL son iguales la aceptación y desarrollo depende del


usuario final, debido a que el primero en algunos diseños no es tan complejo
en la programación como lo es el VHDL.

Las empresas que más desarrollo tiene en este campo son Xilinx, Cypress y
Atmel, aunque existen compañías en el mercado desarrollando aplicaciones
similares pero no tienen la misma aceptación.

Ing. Rafael Durán Campoamor Página 1


Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales

¿Como crear mi primer programa?

Primero necesitamos tener algo que resolver, en este caso una función lógica
dada por .

Una vez instalada la aplicación, buscamos el programa ejecutable en mis


programas en WARP dando click en Galaxy, que es la interfaz gráfica de
usuario.

A continuación se abrirá la siguiente ventana.

Ing. Rafael Durán Campoamor Página 2


Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales

Se requiere crear un nuevo proyecto y aparecerá la siguiente ventana a que


daremos el nombre de primero:

Después damos click en new de la ventana de dialogo y se abrirá la ventana de


edición de dialogo

Ing. Rafael Durán Campoamor Página 3


Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales

Debemos respetar ciertas reglas de programación, en forma genérica una


estructura se compone de *std_logic_1164 contiene todo tipo de datos empleados en VHDL
* numeric_std para utilizarse con diferentes tipos de datos.
library ieee; librería de trabajo * numeric_bit trabaja con números binarios con signo o sin signo
* std_arith define funciones y operadores aritméticos
use nombre_libreria_paquete.all;

entity nombre is
*entity son todos los elementos que forman de manera
port (var1,var2, varn: in tipo_dato;
individual o conjunto un sistema digital. (sumador,
var_salida: out tipo_dato); comparador, compuertas, flip flops, etcétera)

end nombre;

architecture funcional of nombre is

begin

proceso

condiciones de operación
Generalmente aquí va el cuerpo del programa y se aplican los conocimientos de
end condición; diseño digital basada en un lenguaje de programación utilizando directamente el
end proceso; hd descrito, de ahí el nombre de lenguaje.

end funcional;

Ing. Rafael Durán Campoamor Página 4


Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales

Como ya tenemos una función lógica definida ahora realizaremos nuestro programa.

library ieee;
use ieee.std_logic_1164.all;
entity funcion1 is
port(a,b,c: in std_logic;
F: out std_logic);
end funcion1;
architecture compuertas of funcion1 is
begin
F<=((not a and b) or (a and not c));
end compuertas;

Ahora agregamos el programa al proyecto


de primero

Ing. Rafael Durán Campoamor Página 5


Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales

Seleccionamos ahora el dispositivo para poder compilar el programa de acuerdo al


PLD obtenido, en este caso GAL 22V10A.

Se deberá crear un archivo con extensión .jed o jedec (joint electronic device
engineering council) dependiendo de la aplicación y este será el que carguemos en
el programador.

Ing. Rafael Durán Campoamor Página 6


Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales

Ahora veremos el ejemplo de cómo generar todas las funciones lógicas básicas con
ese mismo GAL 22V10A.

Se requiere un programa que realice las funciones and, or, not a, not b,
nand, nor, xor y xnor similar al programado en wincupl.

library ieee;
use ieee.std_logic_1164.all;
entity funciones is
port (a,b: in std_logic;
f1,f2,f3,f4,f5,f6,f7,f8: out std_logic);
end funciones;
architecture compuertas of funciones is
begin
f1<= not a;
f2<= not b;
f3<= a and b;
f4<= a or b;
f5<= a nand b;
f6<= a nor b;
f7<= a xor b;
f8<= a xnor b;
end compuertas;

Ing. Rafael Durán Campoamor Página 7

Вам также может понравиться