ejemplosdewincupl

Post on 28-Oct-2015

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

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.

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.

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.

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.

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.

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;

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

top related