Download - ejemplosdewincupl
![Page 1: ejemplosdewincupl](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022071803/55cf9c65550346d033a9b314/html5/thumbnails/8.jpg)
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