Manual Win CuplVIVAR
Manual Win CuplVIVAR
Manual Win CuplVIVAR
Pgina 1
1. ndice
1. ndice ____________________________________________________________________ 2
2. Introduccin_______________________________________________________________ 3
3. Proceso de programacin de la PAL ________________________________________ 3
3.1.
3.2.
Asignacin de pines____________________________________________________ 4
3.3.
3.4.
3.5.
Simulacin ___________________________________________________________ 10
3.6.
4.2.
4.3.
4.4. Salida del compilador para el programador (archivo JEDEC .JED) (Con simulacin)
________________________________________________________________
20
4.5.
4.6.
5. Recomendaciones _______________________________________________________ 27
Pgina 2
2. Introduccin
Los Dispositivos Lgicos Programables (PLDs) son circuitos cuya funcionalidad es programable,
es decir, nosotros debemos definirla, y, en algunos casos, podemos modificarla posteriormente.
En este documento se explica con un ejemplo el proceso de programacin de una PAL, desde la
escritura del programa con WinCUPL, hasta la programacin hardware. En la ltima parte se
incluye un conjunto de recomendaciones tiles a la hora de la programacin con WinCUPL.
Ejemplo: Dados dos dgitos decimales de entrada, deseamos visualizar uno de los dos (que
seleccionaremos con un bit de control) en un display. Si el dato no es vlido (es mayor que 9) el
display debe apagarse y encenderse el punto.
Si decidiramos hacer el diseo con lgica no programable, el circuito sera como se muestra en
la figura 1. Este circuito realiza correctamente su funcin, utiliza 3 circuitos integrados, y una vez
diseado no se puede modificar fcilmente para realizar otra funcin.
A3-A0
B3-B0
S3-S0
MUX
BCD
7 Seg
Seleccin
Figura 1. Esquema del circuito del ejemplo, implementado sin lgica programable.
Sin embargo, si utilizamos dispositivos lgicos programables, la lgica relativa al multiplexor y al
decodificador pueden ir incluidas en el PLD, por lo que se eliminamos un circuito del diseo.
Adems, si en un momento determinado necesitamos modificar la funcionalidad (por ejemplo,
sumar o restar los datos de entrada dependiendo del bit de seleccin), slo tendremos que
reprogramar el PLD, sin necesidad de cambiar el resto del circuito.
Una vez decidido utilizar una PAL en el circuito (en nuestro caso la PALCE22V10), es necesario
programarla. El proceso completo se muestra resumido en la figura 2. En primer lugar, debemos
hacer la especificacin formal del circuito a disear (en este ejemplo sera el bloque formado por
el multiplexor y el decodificador BCD-7 segmentos). Posteriormente describir dicho circuito
segn un lenguaje de programacin (para nosotros el WinCUPL). Este programa se compilar y
simular, hasta asegurarnos que el resultado obtenido es el deseado. Por ltimo, cuando
tengamos el fichero definitivo, se grabar en la PAL.
A continuacin explicaremos en detalle estos pasos.
Pgina 3
Problema
de diseo
Especificacin formal
- Diagrama de bloques
- Tabla de verdad
- Funcionas lgicas
- Circuito
Simulador
PALCE22V10
Grabador
de PLDs
Descripcin utilizando un
Lenguaje de Descripcin
Hardware (CUPL)
Ficheros ASCII
Compilador
Fichero
.JED
3.2.
Asignacin de pines
En primer lugar, debemos especificar las entradas y las salidas que deben conectarse a la PAL,
y asignarles los pines correspondientes. Para ello habr que considerar qu pines de la PAL son
slo de entrada y cuales de entrada-salida. En este ejemplo las entradas sern los datos A y B y
la entrada de seleccin y las salidas sern las excitaciones de los segmentos del display y del
punto.
Figura 3. (a) Entradas y salidas necesarias en el sistema. (b) Esquema de las entradas y salidas
de la PAL. (c) Asignacin de pines definitiva.
3.3.
A continuacin debemos escribir el programa de la PAL para que cumpla con la funcionalidad
deseada y con la asignacin de pines anterior.
El programa de la PAL ser un fichero de texto que puede escribirse con cualquier aplicacin
(el propio WinCUPL o wordpad, notepad, etc.). Debe tener extensin .PLD y la siguiente
estructura:
Name
Partno
Prac;
CIR001;
Revision
Date
Designer
Company
Location
Assembly
Device
01;
08/08;
URP;
URP Electrnica;
Universidad Nacional Federico Villarreal;
None;
p22v10;
/*************************************************************/
/*
*/
/*
TALLER DE ELECTRONICA I
*/
/*
*/
/*
Practica: Multiplexor - Decodificador BCD
*/
/*
*/
/*************************************************************/
/*Programa preparado para el dispositivo: P22V10
*/
/*************************************************************/
/* Dato A
*/
/* Dato B
*/
/* Seleccion */
**/
**/
Cuerpo del programa para que la funcin de la PAL sea la deseada. En nuestro ejemplo
se puede dividir en dos partes, la que se corresponde con el multiplexor, y la parte del
decodificador. En este cuerpo del programa se utilizan como variables las entradas y
salidas que se han definido, y se pueden aadir variables intermedias, simplemente
escribindolas donde sean necesarias (no es necesaria una declaracin previa). Los
smbolos que se corresponden con las operaciones lgicas son:
! negacin
# OR
& AND
Con estos smbolos y la funcionalidad deseada se escriben las distintas partes del
programa. En la figura 4 se muestra el esquema del multiplexor y las funciones lgicas de
sus salidas.
Figura 4. Esquema del multiplexor, con sus entradas y salidas, y ecuaciones lgicas
equivalentes.
(select
(select
(select
(select
&
&
&
&
B3);
B2);
B1);
B0);
a-f
S3-S0
BCD
7 Seg
Punto
(a)
S3 S2 S1 S0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
a
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
b
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
c
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
d
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
e
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
f
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
g Punto
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
(b)
'h'2=>'b'11011010;
'h'6=>'b'00111110;
'h'A=>'b'00000001;
'h'E=>'b'00000001;
Una vez completado el programa se debe compilar y simular. Para ampliar informacin sobre
sintaxis etc., vase el manual de WinCUPL.
3.4.
El compilador genera siempre (incluso cuando haya errores) el fichero .DOC con informacin
sobre el programa de la PAL, como, por ejemplo, la funcin lgica implementada en cada salida.
Entre la informacin incluida en este fichero est el nmero de productos que necesita la funcin
implementada cada en cada salida, as como el nmero de productos disponibles en dicha
salida. Si el nmero de productos disponibles, como pasa en el siguiente ejemplo, es menor que
el nmero de productos necesarios el programa no compilar.
=====================================================================
Symbol Table
=====================================================================
Pin Variable
Pterms
Max
Min
Pol
Name
Ext
Pin
Type
Used
Pterms Level
--- -------------------- ------ ----d
b
c
a
e
f
g
punto
15
16
17
18
19
20
21
14
V
V
V
V
V
V
V
V
11
9
9
9
7
9
8
4
10
12
14
16
16
14
12
8
1
1
1
1
1
1
1
1
En ese caso, verificaremos si es posible hacer una reasignacin de pines, de forma que en todas
las salidas el nmero de productos necesarios sea menor al nmero de productos disponibles,
como en el siguiente fragmento:
=====================================================================
Symbol Table
=====================================================================
Pin Variable
Pterms
Max
Min
Pol
Name
Ext
Pin
Type
Used
Pterms Level
--- -------------------- ------ ----a
b
c
d
e
f
g
punto
15
16
17
18
19
20
21
14
V
V
V
V
V
V
V
V
9
9
9
11
7
9
8
4
10
12
14
16
16
14
12
8
1
1
1
1
1
1
1
1
Una vez eliminados este tipo de errores es necesario tambin eliminar los errores de sintaxis,
etc., hasta conseguir que el fichero compile correctamente (vase apartado de
recomendaciones).
3.5.
Simulacin
Una vez compilado el programa, la simulacin nos permite comprobar si realiza la funcin
deseada antes de grabar el dispositivo. Para ello debemos escribir el fichero de simulacin. (con
el mismo nombre que el fichero PLD, pero con extensin .SI). Este fichero puede escribirse de
dos formas:
Darle una serie de entradas y las salidas que deberamos obtener, y el sistema
comprobar si estas salidas coinciden con las que obtendramos al utilizar en el
programa que hemos escrito.
Darle una serie de entradas y l rellenar las salidas, por lo que nosotros
debemos comprobar posteriormente si el resultado es el deseado.
Prac3;
CIR001;
01;
13/3/99;
Ejemplo;
Departamento de Electronica;
Universidad de Alcala de Henares;
None;
p22v10;
1
1
1
1
0000
0000
0000
0000
0000
0001
0010
0011
********
********
********
********
Name
Partno
Revision
Date
Designer
Company
Location
Assembly
Device
Prac3;
CIR001;
01;
13/3/99;
Ejemplo;
Departamento de Electronica;
Universidad de Alcala de Henares;
None;
p22v10;
/** Orden con que se van a introducir y presentar los vectores **/
Order: select," ",A3..0," ",B3..0," ",a,b,c,d,e,f,g," ",punto;
/** Vectores de test **/
/*
==============================
s
e
p
l
u
e
n
c AAAA BBBB
t
t 3210 3210 abcdefg o
==============================
0001: 0 0000 0000 LLLLLLH H
0002: 0 0001 0000 HLLHHHH H
0003: 0 0010 0000 LLHLLHL H
0004: 0 0011 0000 LLLLHHL H
0005: 0 0100 0000 HLLHHLL H
0006: 0 0101 0000 LHLLHLL H
0007: 0 0110 0000 HHLLLLL H
0008: 0 0111 0000 LLLHHHH H
0009: 0 1000 0000 LLLLLLL H
0010: 0 1001 0000 LLLHHLL H
0011: 0 1010 0000 HHHHHHH L
0012: 0 1011 0000 HHHHHHH L
0013: 0 1100 0000 HHHHHHH L
0014: 0 1101 0000 HHHHHHH L
0015: 0 1110 0000 HHHHHHH L
0016: 0 1111 0000 HHHHHHH L
0017: 1 0000 0000 LLLLLLH H
0018:
0019:
0020:
0021:
0022:
0023:
0024:
1
1
1
1
1
1
1
0001
0010
0011
0000
0000
0000
0000
0000
0000
0000
0000
0001
0010
0011
LLLLLLH
LLLLLLH
LLLLLLH
LLLLLLH
HLLHHHH
LLHLLHL
LLLLHHL
H
H
H
H
H
H
H
3.6.
Grabacin de la PAL
Una vez compilado el programa definitivo debemos grabarlo en el dispositivo fsico. Para ello
necesitamos:
(b)
(a)
(c)
Figura 9. (a) Vista del programador. (b) Conexin del programador al ordenador. (c) Forma
correcta de insertar la PAL en el programador.
PLD
JEDEC File
BUFFER
LECTURA
Elegir Dispositivo
(circuito comercial)
Editar buffer:
escribimos en l
Cargar
buffer
Volcar en circuito
Llegado a este punto, seleccionamos File, Load JEDEC File , y cargamos el .JED generado en
la compilacin. Por ltimo, pulsamos Program y se programar la PAL.
Fichero
Fichero
.PLD
.SI
Ficheros ASCII
Compilador
Fichero
Fichero
.ABS
.DOC
Simulador
Fichero
Fichero
Fichero
.SO
.WO
.JED
Figura 13. Ficheros implicados en el proceso de grabacin de la PAL.
4.1.
Name
Partno
Revision
Date
Designer
Company
Location
Assembly
Device
Prac3;
CIR001;
01;
13/3/99;
Ejemplo;
Departamento de Electronica;
Universidad de Alcala de Henares;
None;
p22v10;
/******************************************************************/
/*
*/
/*
LABORATORIO DE ELECTRONICA DIGITAL
*/
/*
*/
/*
Practica 3: Multiplexor - Decodificador BCD
*/
/*
*/
/******************************************************************/
/* Programa preparado para el dispositivo: P22V10
*/
/******************************************************************/
/** Definicion de los pines de entrada
Pin [2..5] = [A3..0];
Pin [6..9] = [B3..0];
Pin 10 = select;
**/
/* Dato A
*/
/* Dato B
*/
/* Seleccion */
**/
=
=
=
=
(!select
(!select
(!select
(!select
&
&
&
&
A3)
A2)
A1)
A0)
#
#
#
#
(select
(select
(select
(select
&
&
&
&
B3);
B2);
B1);
B0);
'h'2=>'b'11011010;
'h'6=>'b'00111110;
'h'A=>'b'00000001;
'h'E=>'b'00000001;
4.2.
Name
Prac3; Partno
CIR001; Revision
01;
Date
13/3/99;
Designer
Ejemplo;
Company
Departamento de Electronica; Location
Universidad de Alcala de Henares; Assembly
None;
Device
p22v10;
/** Orden con que se van a introducir y presentar los vectores **/
Order: select," ",A3..0," ",B3..0," ",a,b,c,d,e,f,g," ",punto;
/** Vectores de test **/
/* * indica que sera rellenado por el simulador */
Vectors:
0 0000 0000 ********
0 0001 0000 ********
0 0010 0000 ********
0 0011 0000 ********
0 0100 0000 ********
0 0101 0000 ********
0 0110 0000 ********
0 0111 0000 ********
0 1000 0000 ********
0 1001 0000 ********
0 1010 0000 ********
0 1011 0000 ********
0 1100 0000 ********
0 1101 0000 ********
0 1110 0000 ********
0 1111 0000 ********
1
1
1
1
0000
0001
0010
0011
0000
0000
0000
0000
********
********
********
********
1
1
1
1
0000
0000
0000
0000
0000
0001
0010
0011
********
********
********
********
4.3.
Salida del compilador para el programador (archivo jedec
.JED)
CUPL(WM)
4.8a Serial# MW-66999998
Device
p22v10 Library DLIB-h-37-17
Created
Wed Apr 14 12:34:07 1999
Name
Prac3
Partno
CIR001
Revision
01
Date
13/3/99
Designer
Ejemplo
Company
Departamento de Electronica
Assembly
None
Location
Universidad de Alcala de Henares
*QP24
*QF5828
Fusible 896
Fusible 896+28=924
*G0
*F0
*L00896 00000000000000000000000000001111
*L02464
11111111111111111111011110111011
*L00928 11111111111111111111111111111111
*L00960 11111111111101111011101111111111
*L00992 11111111111110111111111111111111
*L01024 11111111101110110111111101111111
*L01056 11111011101101111111111111111111
*L01088 11111011111111111011011110111111
*L01120 11111111111111111011111111111111
*L01152 11111111111110110111101111110111
*L01184 11111111111111111111111110110111
*L01216 01111011011111111111101101110111
*L01248 10111111111111111111101111111111
*L01280 11111111111111110111101110111111
*L01312 01111111000000000000000000000000
*L01472 00000000000000000000000011111111
*L01504 11111111111111111111111111111111
*L01536 11111111101111111011101111111111
*L01568 11111111101111111111111111111111
*L01600 11111011111110111011011111111111
*L01632 10111011101110111011101110111011
*L01664 11111111111101111011101111111111
*L01696 11111111111110111111111110110111
*L01728 10110111111111111111111110111111
*L01760 11111111111111111111101101111011
*L01792 01110111111111111111111111111111
*L01824 10110111011110110111111111111011
*L01856 01110111101111111111111111111011
*L01888 11111111111111111111111101111011
*L01920 10111111011111110000000000000000
*L02144 00000000000011111111111111111111
*L02176 11111111111111111111111111111011
*L02208 10111111101111111111111111111011
*L02240 11111111111111111111111110111011
*L02272 11111011011111111111101110111011
*L02304 10111011101110111011111111111111
*L02336 01111011101110111111111111111111
*L02368 10111111111111111111111111111011
*L02400 01110111101101111111111110110111
*L02432 01111011111111111111111110111111
no se funde
*L02496
*L02880
*L02912
*L02944
*L02976
*L03008
*L03040
*L03072
*L03104
*L03136
*L03168
*L03200
*L03232
*L03264
*L03296
*L03328
*L03360
*L03392
*L03424
*L03648
*L03680
*L03712
*L03744
*L03776
*L03808
*L03840
*L03872
*L03904
*L03936
*L03968
*L04000
*L04032
*L04064
*L04288
*L04320
*L04352
*L04384
*L04416
*L04448
*L04480
*L04512
*L04544
*L04576
*L04608
*L04640
*L04672
*L04704
*L04736
*L04864
*L04896
*L04928
*L04960
*L04992
*L05024
*L05056
*L05088
*L05120
*L05152
*L05184
*L05216
*L05248
10110111111100000000000000000000
00000000000000000000000011111111
11111111111111111111111111111111
11111111101110111111101111111111
11111111101111111111111111111111
11111011101111111011011111111111
10111011101110111011101110111011
11111111111101111011101110111111
11111111111110111111111110111011
01110111111111111111111110111111
11111111111111111111101110110111
01110111111111111011011110110111
11111111111111111011111111111111
11111111111110110111101101110111
11111111111111111111111110110111
01111011011111111111101101110111
10111111111111111111101111111111
11111111111111110111101110111011
01111111000000000000000000000000
00001111111111111111111111111111
11111111111111111111011110111011
11111111111111111111101111111111
11111111111111110111101110111111
01111111111110111011101110111011
10111011101111111111111110110111
01111011111111111111111110111111
11111011111101110111111111111111
11111011111111111111111111111111
10111111011101110111111111111011
11111011111111111111111111111011
11111111111111111111111110111111
10111111011111111111111111111111
11111011011101111011011111110000
00000000000000000000000011111111
11111111111111111111111111111111
11111111011110111011111111111111
11111111101111111111111111111111
11110111101110111111011111111111
10111011101110111011101110111011
11111111111111111111111111111011
10111111111101111111111110111011
11111111111111111111111110111111
11111011011110111011111111111111
11111011111111111111111111111111
10110111101110110111111111111111
11111111111110110111011101110111
11111111101101110111011111111111
11111111101111110000000000000000
00000000000000000000111111111111
11111111111111111111111111111111
11111011101111111011111111111111
11111011111111111111111111111111
10111011111110110111111111111011
10111011101110111011101110111111
11111111011110111011111111111111
11111111101111111111101111110111
01111111111111111111101111111111
11111111111111111011111101110111
01111111111110110111101101111111
11111111111110111111111111111111
11111111101101111011011101111111
*L05280
*L05312
*L05344
*L05376
*L05408
*L05440
*L05472
*L05504
*L05536
*L05568
*L05792
*L05824
*C85D0
* CF19
11111111111111111111011110111011
11110111111100000000000000000000
00000000000000000000000011111111
11111111111111111111111111111111
11111111111111111111111101110111
10111111011111111111111111111111
11110111111101111111011111111111
01111111011111111111111111111111
10111111111101110111101111111111
11111111111110111111000000000000
00000000000000000000010101010101
0101
4.4.
Salida del compilador para el programador (archivo JEDEC .JED)
(Con simulacin)
CUPL(WM)
4.8a Serial# MW66999998
Device
p22v10 Library DLIB-h37-17
Created
Wed Apr 14 12:53:02 1999
Name
Prac3
Partno
CIR001
Revision
01
Date
13/3/99
Designer
Ejemplo
Company
Departamento de
Electronica
Assembly
None
Location
Universidad de Alcala de
Henares
*QP24
*QF5828
*QV24
*G0
*F0
*L00896 00000000000000000000000000001111
*L00928 11111111111111111111111111111111
*L00960 11111111111101111011101111111111
*L00992 11111111111110111111111111111111
*L01024 11111111101110110111111101111111
*L01056 11111011101101111111111111111111
*L01088 11111011111111111011011110111111
*L01120 11111111111111111011111111111111
*L01152 11111111111110110111101111110111
*L01184 11111111111111111111111110110111
*L01216 01111011011111111111101101110111
*L01248 10111111111111111111101111111111
*L01280 11111111111111110111101110111111
*L01312 01111111000000000000000000000000
*L01472 00000000000000000000000011111111
*L01504 11111111111111111111111111111111
*L01536 11111111101111111011101111111111
*L01568 11111111101111111111111111111111
*L01600 11111011111110111011011111111111
*L01632 10111011101110111011101110111011
*L01664 11111111111101111011101111111111
*L01696 11111111111110111111111110110111
*L01728 10110111111111111111111110111111
*L01760 11111111111111111111101101111011
*L01792 01110111111111111111111111111111
*L01824 10110111011110110111111111111011
*L01856 01110111101111111111111111111011
*L01888 11111111111111111111111101111011
*L01920 10111111011111110000000000000000
*L02144 00000000000011111111111111111111
*L02176 11111111111111111111111111111011
*L02208 10111111101111111111111111111011
*L02240 11111111111111111111111110111011
*L02272 11111011011111111111101110111011
*L02304 10111011101110111011111111111111
*L02336 01111011101110111111111111111111
*L02368
*L02400
*L02432
*L02464
*L02496
*L02880
*L02912
*L02944
*L02976
*L03008
*L03040
*L03072
*L03104
*L03136
*L03168
*L03200
*L03232
*L03264
*L03296
*L03328
*L03360
*L03392
*L03424
*L03648
*L03680
*L03712
*L03744
*L03776
*L03808
*L03840
*L03872
*L03904
*L03936
*L03968
*L04000
*L04032
*L04064
*L04288
*L04320
*L04352
*L04384
*L04416
*L04448
*L04480
*L04512
*L04544
*L04576
*L04608
*L04640
*L04672
*L04704
*L04736
*L04864
*L04896
*L04928
10111111111111111111111111111011
01110111101101111111111110110111
01111011111111111111111110111111
11111111111111111111011110111011
10110111111100000000000000000000
00000000000000000000000011111111
11111111111111111111111111111111
11111111101110111111101111111111
11111111101111111111111111111111
11111011101111111011011111111111
10111011101110111011101110111011
11111111111101111011101110111111
11111111111110111111111110111011
01110111111111111111111110111111
11111111111111111111101110110111
01110111111111111011011110110111
11111111111111111011111111111111
11111111111110110111101101110111
11111111111111111111111110110111
01111011011111111111101101110111
10111111111111111111101111111111
11111111111111110111101110111011
01111111000000000000000000000000
00001111111111111111111111111111
11111111111111111111011110111011
11111111111111111111101111111111
11111111111111110111101110111111
01111111111110111011101110111011
10111011101111111111111110110111
01111011111111111111111110111111
11111011111101110111111111111111
11111011111111111111111111111111
10111111011101110111111111111011
11111011111111111111111111111011
11111111111111111111111110111111
10111111011111111111111111111111
11111011011101111011011111110000
00000000000000000000000011111111
11111111111111111111111111111111
11111111011110111011111111111111
11111111101111111111111111111111
11110111101110111111011111111111
10111011101110111011101110111011
11111111111111111111111111111011
10111111111101111111111110111011
11111111111111111111111110111111
11111011011110111011111111111111
11111011111111111111111111111111
10110111101110110111111111111111
11111111111110110111011101110111
11111111101101110111011111111111
11111111101111110000000000000000
00000000000000000000111111111111
11111111111111111111111111111111
11111011101111111011111111111111
*L04960 11111011111111111111111111111111
*L04992 10111011111110110111111111111011
*L05024 10111011101110111011101110111111
*L05056 11111111011110111011111111111111
*L05088 11111111101111111111101111110111
*L05120 01111111111111111111101111111111
*L05152 11111111111111111011111101110111
*L05184 01111111111110110111101101111111
*L05216 11111111111110111111111111111111
*L05248 11111111101101111011011101111111
*L05280 11111111111111111111011110111011
*L05312 11110111111100000000000000000000
*L05344 00000000000000000000000011111111
*L05376 11111111111111111111111111111111
*L05408 11111111111111111111111101110111
*L05440 10111111011111111111111111111111
*L05472 11110111111101111111011111111111
*L05504 01111111011111111111111111111111
*L05536 10111111111101110111101111111111
*L05568 11111111111110111111000000000000
*L05792 00000000000000000000010101010101
*L05824 0101
*C85D0
*P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23 24
*V0001 X000000000XNXHLLLLLLHXXN
*V0002 X000100000XNXHHLLHHHHXXN
*V0003 X001000000XNXHLLHLLHLXXN
*V0004 X001100000XNXHLLLLHHLXXN
*V0005 X010000000XNXHHLLHHLLXXN
*V0006 X010100000XNXHLHLLHLLXXN
*V0007 X011000000XNXHHHLLLLLXXN
*V0008 X011100000XNXHLLLHHHHXXN
*V0009 X100000000XNXHLLLLLLLXXN
*V0010 X100100000XNXHLLLHHLLXXN
*V0011 X101000000XNXLHHHHHHHXXN
*V0012 X101100000XNXLHHHHHHHXXN
*V0013 X110000000XNXLHHHHHHHXXN
*V0014 X110100000XNXLHHHHHHHXXN
*V0015 X111000000XNXLHHHHHHHXXN
*V0016 X111100000XNXLHHHHHHHXXN
*V0017 X000000001XNXHLLLLLLHXXN
*V0018 X000100001XNXHLLLLLLHXXN
*V0019 X001000001XNXHLLLLLLHXXN
*V0020 X001100001XNXHLLLLLLHXXN
*V0021 X000000001XNXHLLLLLLHXXN
*V0022 X000000011XNXHHLLHHHHXXN
*V0023 X000000101XNXHLLHLLHLXXN
*V0024 X000000111XNXHLLLLHHLXXN
* 9768
4.5.
***************************************************************************
Prac3
***************************************************************************
CUPL(WM)
Device
Created
Name
Partno
Revision
Date
Designer
Company
Assembly
Location
==========================================================================
Expanded Product Terms
==========================================================================
S0 =>
A0 & !select
# B0 & select
S1 =>
A1 & !select
# B1 & select
S2 =>
A2 & !select
# B2 & select
S3 =>
A3 & !select
# B3 & select
!a =>
!A0 & !A2 & !A3 & !select
# !B0 & !B2 & !B3 & select
# !A0 & !A1 & !A2 & !A3 & !B0 & !B1 & !B2 & !B3
# !A1 & !A2 & A3 & !select
# A0 & A1 & !A3 & !select
# B0 & B1 & !B3 & select
# A0 & !A1 & A2 & !A3 & !select
# B0 & !B1 & B2 & !B3 & select
# !B1 & !B2 & B3 & select
!b =>
!A1 & !A2
# !B1 & !B2
# !A0 & !A1
# !B2 & !B3
# !A2 & !A3
# !A0 & !A1
# !B0 & !B1
# B0 & B1 &
# A0 & A1 &
!c =>
!A1 & !A2 & A3 & !select
# !B1 & !B2 & B3 & select
# !A0 & !A1 & !A2 & !A3 & !B0 & !B1 & !B2 & !B3
# !A0 & A1 & A2 & !A3 & !select
# A0 & A1 & !A3 & !select
# B0 & B1 & !B3 & select
# !A1 & !A3 & !select
# !B1 & !B3 & select
# !B0 & B1 & B2 & !B3 & select
!d =>
!A0 & !A2 & !A3
# !B0 & !B2 & !B3
# !A0 & !A1 & !A2
# !A0 & !A1 & !A2
# A0 & A1 & !A2 &
# B0 & B1 & !B2 &
# A0 & !A1 & A2 &
# B0 & !B1 & B2 &
# !B0 & B1 & B2 &
# !A0 & A1 & A2 &
# !B0 & !B1 & !B2
& !select
& select
& !A3 & !B0 & !B1 & !B2 & !B3
& A3 & !select
!A3 & !select
!B3 & select
!A3 & !select
!B3 & select
!B3 & select
!A3 & !select
& B3 & select
!e =>
!A0
# !B0
# !A0
# !A0
# !B0
# !A0
# !B0
& !select
& select
& !A3 & !B0 & !B1 & !B2 & !B3
& A3 & !select
!B3 & select
!A3 & !select
& B3 & select
&
&
&
&
&
&
&
!f =>
!A0 & !A1 & !A3 & !select
# !B0 & !B1 & !B3 & select
# !A0 & !A1 & !A2 & !A3 & !B0 & !B1 & !B2 & !B3
# !A1 & !A2 & A3 & !select
# A0 & !A1 & A2 & !A3 & !select
# B0 & !B1 & B2 & !B3 & select
# !B0 & B1 & B2 & !B3 & select
# !A0 & A1 & A2 & !A3 & !select
# !B1 & !B2 & B3 & select
!g =>
!A1 & !A2 & A3 & !select
# B1 & !B2 & !B3 & select
# A1 & !A2 & !A3 & !select
# !A1 & A2 & !A3 & !select
# !B1 & B2 & !B3 & select
# !B0 & B1 & B2 & !B3 & select
# !A0 & A1 & A2 & !A3 & !select
# !B1 & !B2 & B3 & select
!punto =>
!B1 & B2 & B3 & select
# B1 & B3 & select
# A1 & A3 & !select
# !A1 & A2 & A3 & !select
a.oe
=>
b.oe =>
c.oe =>
d.oe =>
e.oe =>
f.oe =>
g.oe =>
punto.oe
1
1
1
1
1
1
=>
==========================================================================
Symbol Table
==========================================================================
Pin Variable
Pol
Name
--- -------A0
A1
A2
A3
B0
B1
B2
B3
S0
S1
S2
S3
a
b
c
d
e
f
g
punto
select
a
b
c
d
e
f
g
punto
LEGEND
D
I
U
T
:
:
:
:
Ext
---
Pin
---
oe
oe
oe
oe
oe
oe
oe
oe
5
4
3
2
9
8
7
6
0
0
0
0
15
16
17
18
19
20
21
14
10
15
16
17
18
19
20
21
14
default variable
intermediate variable
undefined
function
Type
---V
V
V
V
V
V
V
V
I
I
I
I
V
V
V
V
V
V
V
V
V
D
D
D
D
D
D
D
D
Pterms
Max
Min
Used
Pterms Level
------ ------ ----2
2
2
2
9
9
9
11
7
9
8
4
1
1
1
1
1
1
1
1
F : field
N : node
V : variable
10
12
14
16
16
14
12
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
G : group
M : extended node
X : extended variable
4.6.
Name
Partno
Revision
Date
Designer
Company
Location
Assembly
Device
Prac3;
CIR001;
01;
13/3/99;
Ejemplo;
Departamento de Electronica;
Universidad de Alcala de Henares;
None;
p22v10;
/** Orden con que se van a introducir y presentar los vectores **/
Order: select," ",A3..0," ",B3..0," ",a,b,c,d,e,f,g," ",punto;
/** Vectores de test **/
/*
==============================
s
e
p
l
u
e
n
c AAAA BBBB
t
t 3210 3210 abcdefg o
==============================
0001: 0 0000 0000 LLLLLLH H
0002: 0 0001 0000 HLLHHHH H
0003: 0 0010 0000 LLHLLHL H
0004: 0 0011 0000 LLLLHHL H
0005: 0 0100 0000 HLLHHLL H
0006: 0 0101 0000 LHLLHLL H
0007: 0 0110 0000 HHLLLLL H
0008: 0 0111 0000 LLLHHHH H
0009: 0 1000 0000 LLLLLLL H
0010: 0 1001 0000 LLLHHLL H
0011: 0 1010 0000 HHHHHHH L
0012: 0 1011 0000 HHHHHHH L
0013: 0 1100 0000 HHHHHHH L
0014: 0 1101 0000 HHHHHHH L
0015: 0 1110 0000 HHHHHHH L
0016: 0 1111 0000 HHHHHHH L
0017: 1 0000 0000 LLLLLLH H
0018: 1 0001 0000 LLLLLLH H
0019: 1 0010 0000 LLLLLLH H
0020: 1 0011 0000 LLLLLLH H
0021: 1 0000 0000 LLLLLLH H
0022: 1 0000 0001 HLLHHHH H
0023: 1 0000 0010 LLHLLHL H
0024: 1 0000 0011 LLLLHHL H
5. Recomendaciones
La cabecera del fichero de simulacin (.si) debe ser exactamente la misma que la del
fichero .pld. En esta cabecera, se debe indicar que el Device es "p22v10" (sin las
comillas) y en Name se pondr el mismo nombre que tiene el fichero (sin la
extensin).