Beruflich Dokumente
Kultur Dokumente
E SCUELA POLITÉCNICA
DEPARTAMENTO DE E LECTRÓNICA
INGENIERÍA DE T ELECOMUNICACIÓN
CIRCUITOS E LECTRÓNICOS
A3-A0 S3-S0
BCD
MUX
B3-B0 7 Seg
Selección
Figura 1. Esquema del circuito del ejemplo, implementado sin lógica programable.
Sin embargo, si utilizamos dispositivos lógicos programables, la lógica relativa al multiplexor y al
decodificador pueden ir incluidas en el PLD, por lo que se eliminamos un circuito del diseño.
Además, si en un momento determinado necesitamos modificar la funcionalidad (por ejemplo,
sumar o restar los datos de entrada dependiendo del bit de selección), sólo 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 especificación formal del circuito a diseñar (en este ejemplo sería el bloque formado por
el multiplexor y el decodificador BCD-7 segmentos). Posteriormente describir dicho circuito
según un lenguaje de programación (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 continuación explicaremos en detalle estos pasos.
Simulador Compilador
Grabador Fichero
PALCE22V10
de PLDs .JED
A3 A3 I1 (2)
a (15) I/O1 a
A2 A2 I2 (3)
b (16) I/O2 b
A1 A1 I3 (4)
c (17) I/O3 c
A0 A0 I4 (5)
d (18) I/O4 d
B3 B3 I5 (6)
e (19) I/O5 e
B2 B2 I6 (7)
f (20) I/O6 f
B1 B1 I7 (8)
g (21) I/O7 g
B0 B0 I8 (9)
Punto (14) I/O0 Punto
Selección Selección I9 (10)
Name Prac3;
Partno CIR001;
Revision 01;
Date 13/3/99;
Designer Depeca;
Company Departamento de Electronica;
Location Universidad de Alcala de Henares;
Assembly None;
Device p22v10;
/*************************************************************/
/* */
/* LABORATORIO DE ELECTRONICA DIGITAL */
/* */
/* Practica 3: Multiplexor - Decodificador BCD */
/* */
/*************************************************************/
/*Programa preparado para el dispositivo: P22V10 */
/*************************************************************/
• Cuerpo del programa para que la función 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 añadir variables intermedias, simplemente
escribiéndolas donde sean necesarias (no es necesaria una declaración previa). Los
símbolos que se corresponden con las operaciones lógicas son:
! negación # OR & AND
Figura 4. Esquema del multiplexor, con sus entradas y salidas, y ecuaciones lógicas
equivalentes.
Esta tabla de verdad se corresponde con el siguiente fragmento de código, en el que se puede
observar el formato para describir una tabla de verdad, con sus entradas y salidas, y la forma de
escribir números decimales y hexadecimales.
Una vez completado el programa se debe compilar y simular. Para ampliar información sobre
sintaxis etc., véase el manual de WinCUPL.
=====================================================================
Symbol Table
=====================================================================
d 15 V 11 10 1
b 16 V 9 12 1
c 17 V 9 14 1
a 18 V 9 16 1
e 19 V 7 16 1
f 20 V 9 14 1
g 21 V 8 12 1
punto 14 V 4 8 1
En ese caso, verificaremos si es posible hacer una reasignación de pines, de forma que en todas
las salidas el número de productos necesarios sea menor al número de productos disponibles,
como en el siguiente fragmento:
=====================================================================
Symbol Table
=====================================================================
a 15 V 9 10 1
b 16 V 9 12 1
c 17 V 9 14 1
d 18 V 11 16 1
e 19 V 7 16 1
f 20 V 9 14 1
g 21 V 8 12 1
punto 14 V 4 8 1
Una vez eliminados este tipo de errores es necesario también eliminar los errores de sintaxis,
etc., hasta conseguir que el fichero compile correctamente (véase apartado de
recomendaciones).
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;
1: Name Prac3;
2: Partno CIR001;
3: Revision 01;
4: Date 13/3/99;
5: Designer Ejemplo;
6: Company Departamento de Electronica;
7: Location Universidad de Alcala de Henares;
8: Assembly None;
9: Device p22v10;
10:
11:
12: /** Orden con que se van a introducir y presentar los vectores **/
13:
14: Order: select," ",A3..0," ",B3..0," ",a,b,c,d,e,f,g," ",punto;
15:
16: /** Vectores de test **/
17:
18: /* * indica que sera rellenado por el simulador */
==============================
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
(b)
(a) (c)
Figura 9. (a) Vista del programador. (b) Conexión del programador al ordenador. (c) Forma
correcta de insertar la PAL en el programador.
< PLD
JEDEC File
BUFFER
LECTURA
pasos de la figura 11:
Figura 10. Proceso de grabación de la PAL.
Elegir Dispositivo
(circuito comercial)
Cargar buffer
Volcar en circuito
Según este diagrama de bloques, la elección del dispositivo es el primer paso, para el que
seleccionaremos la opción Device del menú principal, después PLD y por último, nuestra PAL,
por ejemplo, PALCE22V10Q de AMD . Si el dispositivo elegido no es correcto mostrará un
mensaje de error, y debemos modificar la selección. En caso de elección correcta veremos una
pantalla como la de la figura siguiente:
Disp seleccionado
Fichero Fichero
.PLD .SI
Ficheros ASCII
Compilador Simulador
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;
/******************************************************************/
/* */
/* LABORATORIO DE ELECTRONICA DIGITAL */
/* */
/* Practica 3: Multiplexor - Decodificador BCD */
/* */
/******************************************************************/
/* Programa preparado para el dispositivo: P22V10 */
/******************************************************************/
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 **/
*L02368 10111111111111111111111111111011
CUPL(WM) 4.8a Serial# MW- *L02400 01110111101101111111111110110111
66999998 *L02432 01111011111111111111111110111111
Device p22v10 Library DLIB-h- *L02464 11111111111111111111011110111011
37-17 *L02496 10110111111100000000000000000000
Created Wed Apr 14 12:53:02 1999 *L02880 00000000000000000000000011111111
Name Prac3 *L02912 11111111111111111111111111111111
Partno CIR001 *L02944 11111111101110111111101111111111
Revision 01 *L02976 11111111101111111111111111111111
Date 13/3/99 *L03008 11111011101111111011011111111111
Designer Ejemplo *L03040 10111011101110111011101110111011
Company Departamento de *L03072 11111111111101111011101110111111
Electronica *L03104 11111111111110111111111110111011
Assembly None *L03136 01110111111111111111111110111111
Location Universidad de Alcala de *L03168 11111111111111111111101110110111
Henares *L03200 01110111111111111011011110110111
*QP24 *L03232 11111111111111111011111111111111
*QF5828 *L03264 11111111111110110111101101110111
*QV24 *L03296 11111111111111111111111110110111
*G0 *L03328 01111011011111111111101101110111
*F0 *L03360 10111111111111111111101111111111
*L00896 00000000000000000000000000001111 *L03392 11111111111111110111101110111011
*L00928 11111111111111111111111111111111 *L03424 01111111000000000000000000000000
*L00960 11111111111101111011101111111111 *L03648 00001111111111111111111111111111
*L00992 11111111111110111111111111111111 *L03680 11111111111111111111011110111011
*L01024 11111111101110110111111101111111 *L03712 11111111111111111111101111111111
*L01056 11111011101101111111111111111111 *L03744 11111111111111110111101110111111
*L01088 11111011111111111011011110111111 *L03776 01111111111110111011101110111011
*L01120 11111111111111111011111111111111 *L03808 10111011101111111111111110110111
*L01152 11111111111110110111101111110111 *L03840 01111011111111111111111110111111
*L01184 11111111111111111111111110110111 *L03872 11111011111101110111111111111111
*L01216 01111011011111111111101101110111 *L03904 11111011111111111111111111111111
*L01248 10111111111111111111101111111111 *L03936 10111111011101110111111111111011
*L01280 11111111111111110111101110111111 *L03968 11111011111111111111111111111011
*L01312 01111111000000000000000000000000 *L04000 11111111111111111111111110111111
*L01472 00000000000000000000000011111111 *L04032 10111111011111111111111111111111
*L01504 11111111111111111111111111111111 *L04064 11111011011101111011011111110000
*L01536 11111111101111111011101111111111 *L04288 00000000000000000000000011111111
*L01568 11111111101111111111111111111111 *L04320 11111111111111111111111111111111
*L01600 11111011111110111011011111111111 *L04352 11111111011110111011111111111111
*L01632 10111011101110111011101110111011 *L04384 11111111101111111111111111111111
*L01664 11111111111101111011101111111111 *L04416 11110111101110111111011111111111
*L01696 11111111111110111111111110110111 *L04448 10111011101110111011101110111011
*L01728 10110111111111111111111110111111 *L04480 11111111111111111111111111111011
*L01760 11111111111111111111101101111011 *L04512 10111111111101111111111110111011
*L01792 01110111111111111111111111111111 *L04544 11111111111111111111111110111111
*L01824 10110111011110110111111111111011 *L04576 11111011011110111011111111111111
*L01856 01110111101111111111111111111011 *L04608 11111011111111111111111111111111
*L01888 11111111111111111111111101111011 *L04640 10110111101110110111111111111111
*L01920 10111111011111110000000000000000 *L04672 11111111111110110111011101110111
*L02144 00000000000011111111111111111111 *L04704 11111111101101110111011111111111
*L02176 11111111111111111111111111111011 *L04736 11111111101111110000000000000000
*L02208 10111111101111111111111111111011 *L04864 00000000000000000000111111111111
*L02240 11111111111111111111111110111011 *L04896 11111111111111111111111111111111
*L02272 11111011011111111111101110111011 *L04928 11111011101111111011111111111111
*L02304 10111011101110111011111111111111
*L02336 01111011101110111111111111111111
***************************************************************************
****
Prac3
***************************************************************************
****
==========================================================================
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 & A3 & !select
# !B1 & !B2 & B3 & select
# !A0 & !A1 & !A2 & !A3 & !B0 & !B1 & !B2 & !B3
# !B2 & !B3 & select
# !A2 & !A3 & !select
# !A0 & !A1 & A2 & !A3 & !select
# !B0 & !B1 & B2 & !B3 & select
# B0 & B1 & B2 & !B3 & select
# A0 & A1 & A2 & !A3 & !select
!d =>
!A0 & !A2 & !A3 & !select
# !B0 & !B2 & !B3 & select
# !A0 & !A1 & !A2 & !A3 & !B0 & !B1 & !B2 & !B3
# !A0 & !A1 & !A2 & A3 & !select
# A0 & A1 & !A2 & !A3 & !select
# B0 & B1 & !B2 & !B3 & select
# A0 & !A1 & A2 & !A3 & !select
# B0 & !B1 & B2 & !B3 & select
# !B0 & B1 & B2 & !B3 & select
# !A0 & A1 & A2 & !A3 & !select
# !B0 & !B1 & !B2 & B3 & select
!e =>
!A0 & !A2 & !A3 & !select
# !B0 & !B2 & !B3 & select
# !A0 & !A1 & !A2 & !A3 & !B0 & !B1 & !B2 & !B3
# !A0 & !A1 & !A2 & A3 & !select
# !B0 & B1 & B2 & !B3 & select
# !A0 & A1 & A2 & !A3 & !select
# !B0 & !B1 & !B2 & 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 => 1
c.oe => 1
d.oe => 1
e.oe => 1
f.oe => 1
g.oe => 1
punto.oe => 1
==========================================================================
Symbol Table
==========================================================================
A0 5 V - - -
A1 4 V - - -
A2 3 V - - -
A3 2 V - - -
B0 9 V - - -
B1 8 V - - -
B2 7 V - - -
B3 6 V - - -
S0 0 I 2 - -
S1 0 I 2 - -
S2 0 I 2 - -
S3 0 I 2 - -
a 15 V 9 10 1
b 16 V 9 12 1
c 17 V 9 14 1
d 18 V 11 16 1
e 19 V 7 16 1
f 20 V 9 14 1
g 21 V 8 12 1
punto 14 V 4 8 1
select 10 V - - -
a oe 15 D 1 1 0
b oe 16 D 1 1 0
c oe 17 D 1 1 0
d oe 18 D 1 1 0
e oe 19 D 1 1 0
f oe 20 D 1 1 0
g oe 21 D 1 1 0
punto oe 14 D 1 1 0
1: Name Prac3;
2: Partno CIR001;
3: Revision 01;
4: Date 13/3/99;
5: Designer Ejemplo;
6: Company Departamento de Electronica;
7: Location Universidad de Alcala de Henares;
8: Assembly None;
9: Device p22v10;
10:
11:
12: /** Orden con que se van a introducir y presentar los vectores **/
13:
14: Order: select," ",A3..0," ",B3..0," ",a,b,c,d,e,f,g," ",punto;
15:
16: /** Vectores de test **/
17:
18: /* * indica que sera rellenado por el simulador */
==============================
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