Vous êtes sur la page 1sur 17

Lección 2.1.

CUPL
Introducción
Objetivo:
Lenguaje CUPL
Asignaturas:
•Dispositivos Lógicos
Programables (5º de Ing.
Telecomunicación)
Autor: Juan Carlos Campo
Bibliografía:
“Manual Protel99”. Altium
Cabecera
NAME CLASE1;
DATE 20/10/2004;
PARTNO ;
REVISION ;
DESIGNER ;
COMPANY ;
ASSEMBLY ;
LOCATION ;
DEVICE p16l8;

Comentarios
/* esto es un comentario */

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Definición de pines
/*ENTRADAS*/
PIN 1= A0;
PIN 2= A1;
PIN 3= A2;
PIN 4= A3;

/*SALIDAS*/
PIN 19= G;
PIN 18= F;
Para dispositivos virtuales no se indica el número
Las variables no pueden tener espacios y distingue mayúsculas de minúsculas

Definición de campos
FIELD ENT=[A3..0];

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Operadores lógicos

OPERADOR EJEMPLO FUNCIÓN PRECEDENCIA


! !A NOT 1
& A&B AND 2
# A#B OR 3
$ A$B XOR 4

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Definición de tablas de verdad
FIELD ENT=[A3..0];
FIELD SAL=[P0..3];

TABLE ENT=>SAL {
0=>7; 1=>0; 2=>6;
3=>9; 4=>C; 5=>D;
6=>F; 7=>8; 8=>E;
9=>E; A=>E; B=>8;
C=>2; D=>C; E=>2;
F=>2;
}

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Formato de los números
Por defecto hexadecimal, excepto pines de
los números y variables indexadas

Número Base Valor decimal


‘b’1101 binaria 13
‘O’663 Octal 435
‘D’92 Decimal 92
‘h’BA Hexadecimal 186
‘O’[300..477] Octal 192..314
‘H’7FXX Hexadecimal 35512..32767

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Operadores aritméticos

Operador Descripción Ejemplo


** Potencia 2**3
* Multiplicación 435
/ División 4/2
% Módulo 9%8
+ Suma 2+4
- Resta 4-1

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Ejemplo

Realizar un programa en CUPL para la


PAL16L8 que haga las funciones de
decodificador BCD a 7 segmentos

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Simulación
Fichero .si
Cabecera: idéntica a CUPL
Comentarios: igual que en CUPL

Simulación: ORDER
ORDER: A0, A1, A2;

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Simulación: VECTORS
ORDER: A0, A1, A2; /*A0 Y A1 entradas A2 salida*/
VECTORS:
00*
01* Valor Descripción
0 Entrada a 0
1 Entrada a 1
C Entrada reloj, 0, 1, 0
K Entrada reloj, 1, 0, 1
L Testea salida a 0
H Testea salida a 1
Z Testea salida a alta impedancia
N No testeada
P Precarga registros internos
R Generación aleatoria
* Salida a determinar

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Ejemplo
Añadir el fichero de simulación para el decodificador

Realizar un programa que calcule el cuadrado de un


número de entrada de tres bits

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Lección 2.2. CUPL
(2ª parte)
Objetivo:
Lenguaje CUPL
Asignaturas:
•Dispositivos Lógicos
Programables (5º de Ing.
Telecomunicación)
Autor: Juan Carlos Campo
Bibliografía:
“Manual Protel99”. Altium
Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo
Extensiones de las variables
.AP Preset asíncrono de un biestable
.AR Reset asíncrono de un biestable
.CK Reloj programable de un biestable
.CE Enable reloj biest. D que lo incorporan
.D Entrada D de un biestable D
.DFB Salida realimentación biestable D
.DQ Salida Q de un biestable D
.J Entrada J de un biestable JK
.K Entrada K de un biestable JK
.OE Enable de una salida programable
.R Entrada R de un biestable RS
.S Entrada S de un biestable RS
.T Entrada T de un biestable T

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Extensión .OE

Ejemplo:
PIN 19= A; /* PIN DE SALIDA */
A.OE=1; /* LO CONFIGURA COMO SALIDA */
/* El compilador lo hace automáticamente
viendo el uso que se hace del pin */

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Extensión .D

Ejemplo:
Realizar un contador ascendente de 2 bits con reset
para la PAL16R8

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Extensión .D

.AP .AR

.CE .CK

.DFB .J .K

Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo


Comandos
Comando
CUPL Ejemplo

$DEFINE argument $DEFINE PORTC 'h'3F0


$UNDEF argument

$INCLUDE file $INCLUDE fichero.pld

$MACRO name argument1 argument2...argumentn;


macro function body
$MEND $MACRO mifun ent1 ent2 sal;
sal=ent1#ent2;
$MEND

mifun(in1, in2, out); /* llamada a macro */


$REPEAT index=[number1,number2,_numbern]
repeat body
$REPEND $REPEAT i = [0..7]
!out{i} ='h'{i} & enable;
$REPEND
Ingenieros de Telecomunicación. Dispositivos Lógicos Programables. Universidad de Oviedo

Vous aimerez peut-être aussi