8
Universidad del Valle de México Campus Cuernavaca Dispositivos lógicos secuenciales Ing. Rafael Durán Campoamor Página 1 PRÁCTICAS PROPUESTAS PARA GALS primer programa en WinCUPL. ¿Que es WinCUPL? Es un potente compilador lógico para diseños realizados en Dispositivos Lógicos Programables específicos, simples y complejos. El Universal Compiler Programmable Logic tiene una IDE (Integrated Development Enviroment) y un Simulador llamado WinSIM creados para la edición, el diseño y comprobación de programación de dispositivos (como PLD y FPGA). ¿Como crear mi primer programa? Primero necesitamos tener algo que resolver, en este caso una función lógica dada por . Empecemos: Una vez instalada la aplicación, buscamos el programa ejecutable en mis programas en ATMEL WINCUPL dando click en WinCUPL.

ejemplosdewincupl

  • Upload
    deec75

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 1

PRÁCTICAS PROPUESTAS PARA GALS primer programa en WinCUPL.

¿Que es WinCUPL?

Es un potente compilador lógico para diseños realizados en DispositivosLógicos Programables específicos, simples y complejos. El Universal CompilerProgrammable Logic tiene una IDE (Integrated Development Enviroment) y unSimulador llamado WinSIM creados para la edición, el diseño y comprobación deprogramación de dispositivos (como PLD y FPGA).

¿Como crear mi primer programa?

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

dada por .

Empecemos:

Una vez instalada la aplicación, buscamos el programa ejecutable en misprogramas en ATMEL WINCUPL dando click en WinCUPL.

Page 2: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 2

A continuación se abrirá la siguiente

ventana.

Abrimos un nuevo proyecto en File y se

abre el siguiente cuadro de dialogo y

en nombre escribimos primero.

Page 3: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 3

Despues aparecerán 3 ventanas en el siguiente orden: pins de entrada, pins desalida y pinnodess, en ellos detallaremos el número de entradas a utilizar, asícomo su salida correspondiente.

Como tenemos 3 variables, seleccionamos 3

Entradas.

Como solo contamos con una salida,

Escribimos 1.

En pinnodess podemos dar 0 y continuar.

Page 4: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 4

Una vez completado el procedimiento anterior, aparece ya mi ventana de edición conlos datos proporcionados anteriormente.

Page 5: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 5

Declaramos los pines del GAL 16v8a que contiene la siguiente configuración:

1 clk/in0; 2 a 9 input in1 a in8; 11 OE´; 12-19 IO0 a IO7; 10 gnd y 20 Vcc.

Como solo necesitamos 3 entradas y una salida, seleccionamos 1,2 y 3 como entradasa,b y c respectivamente, y 12 como salida.

La función de salida f se escribe como sigue:

f= (!a & b) # (a & !c); en donde ! es la not, & es la and y # es la or.

Page 6: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 6

Ahora basta compilar el programa para un dispositivo definido seleccionado en menúOptions.

Se deberá crear un archivo con extensión .jed o jedec dependiendo de la aplicacióny este será el que carguemos en el programador.

Page 7: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 7

Ahora unos ejemplo de cómo generar todas las funciones lógicas básicas con esemismo GAL 16V8A.

Name Gates;Partno CA0001;Revision 04;Date 9/12/89;Designer G. Woolhiser;Company Logical Devices, Inc.;Location None;Assembly None;Device g16v8a;

***************************************************************//* * Inputs: define inputs to build simple gates from */

Pin 1 = a;Pin 2 = b;

/* * Outputs: define outputs as active HI levels*/

Pin 12 = inva;Pin 13 = invb;Pin 14 = and;Pin 15 = nand;Pin 16 = or;Pin 17 = nor;Pin 18 = xor;Pin 19 = xnor;

Page 8: ejemplosdewincupl

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

Ing. Rafael Durán Campoamor Página 8

/* * Logic: examples of simple gates expressed in CUPL */

inva = !a; /* inverters */invb = !b;and = a & b; /* and gate */nand = !(a & b); /* nand gate */or = a # b; /* or gate */nor = !(a # b); /* nor gate */xor = a $ b; /* exclusive or gate */xnor = !(a $ b); /* exclusive nor gate */CLK/I01

I12

I23

I34

I45

I56

I67

I78

I89

OE/I911

IO0 19

IO1 18

IO2 17

IO3 16

IO4 15

IO5 14

IO6 13

IO7 12

U1

AM16V8

A'

R1330

OFF ON 123

654

DSW1

DIPSW_3

R2330

R3300

R4330

R5330

R6330

R7330

R8330

B' AND NAND OR NOR XOR XNOR

R910k

R1010k

R1110k