Ejemplos Con PLD'S
Ejemplos Con PLD'S
Ejemplos Con PLD'S
PRACTICAS DE GALS
Software WinCupl 5.0
2015
Ejemplo 1:
Implementar una compuerta AND de dos entradas en una GAL22V10.
Name
Ejem01 ;
PartNo 00 ;
Date
17/05/2013 ;
Revision 01 ;
Designer Julio ;
Company UNIAJC ;
Assembly None ;
Location ;
Device G22V10 ;
/*Terminales de entrada de la compuerta AND*/
PIN 3 = a ;
PIN 4 = b;
/*Terminales de salida para las compuertas*/
PIN 17 = s;
s = a&b; /*Compuerta AND*/
Ejemplo 2.
Implementar una compuerta OR y una compuerta AND de dos entradas en una GAL22V10.
Name
Ejem02 ;
PartNo 00 ;
Date
17/05/2013 ;
Revision 01 ;
Designer Julio ;
Company UNIAJC ;
Assembly None ;
Location ;
Device G22V10 ;
/*Terminales de entrada de la compuerta AND*/
PIN 2 = A0 ;
PIN 3 = A1;
/*Terminales de entrada de la compuerta OR*/
PIN 4 = B0;
PIN 5 = B1;
/*Terminales de salida para las compuertas*/
PIN 23 = S0; /*Salida compuerta AND*/
PIN 22 = S1 ;/*Salida compuerta OR*/
/*Operaciones Logicas*/
S0 = A1&A0; /*Compuerta AND*/
S1 = B1#B0; /*Compuerta OR*/
Ejemplo 3.
Implementar un decodificador de binario a decimal con la GAL22V10.
Tabla de la verdad correspondiente al decodificador, que se empleara en el programa.
En este ejemplo no se esta empleando el punto decimal a pesar de que est conectado en el
esquema mostrado.
CARACTERES EN UN DISPLAY 7 SEGMENTOS.
Para otras aplicaciones puede ser til generar caracteres alfanumricos con un display de 7
segmentos, aqui se deja una tabla con su respectivo valor decimal teniendo en cuenta que el
segmento a es el menos significativo y el segmento g el ms significativo:
Cdigo en WinCupl:
Mapa de caracteres
Name Ejem03 ;
PartNo 00 ;
Date 17/05/2013 ;
Revision 01 ;
Designer Julio ;
Company UNIAJC ;
Assembly None ;
Location ;
Device G22V10 ;
/*Terminales de entrada */
PIN [2..5] = A, B, C, D;
/*Terminales de salida */
PIN [13..20] = sa,sb,sc,sd,se,sf,sg,sdp;
/*Declaraciones */
FIELD entradas = [D,C,B,A];
FIELD salidas = [sdp,sg,sf,se,sd,sc,sb,sa];
/*Ecuaciones booleanas */
TABLE entradas => salidas {
'b'0000 => 'b'00111111;
'b'0001 => 'b'00000110;
'b'0010 => 'b'01011011;
'b'0011 => 'b'01001111;
'b'0100 => 'b'01100110;
'b'0101 => 'b'01101101;
'b'0110 => 'b'01111101;
'b'0111 => 'b'00000111;
'b'1000 => 'b'01111111;
'b'1001 => 'b'01100111;
'b'1010 => 'b'00000000;
'b'1011 => 'b'00000000;
'b'1100 => 'b'00000000;
'b'1101 => 'b'00000000;
'b'1110 => 'b'00000000;
'b'1111 => 'b'00000000;
}
Ejemplo 4.
Sumador de 4 Bits.
Cdigo en WinCupl:
Name
ADDER4 ;
PartNo 00 ;
Date
20/09/2011 ;
Revision 01 ;
Designer Engineer ;
Company MAPS ;
Assembly None ;
Location ;
Device g22v10 ;
/* *************** INPUT PINS *********************/
PIN
[1..4] = [A0..3]
; /*
*/
PIN
[5..8] = [B0..3]
; /*
*/
; /*
*/
; /*
*/
PIN
; /*
*/
22 =Cout
Ejemplo 5.
Implementacin Compuertas Lgicas.
Para esta prctica utilizamos una fuente de alimentacin de 5 Volts, un circuito integrado
GAL22V10, un Swith dip de ms de 3 posiciones (como las presentaciones de 4, 6, 8, etc.),
y 7 leds de cualquier color (pueden ser de dos colores para diferenciar bien las operaciones
inversas ejemplo: nor-or).
Lo ideal sera que entre las salidas de la GAL22V10 y las patillas de cada led se pusiera un
resistor de aproximadamente 200 Ohms, pero por falta de espacio no se pusieron.
Programa en WinCupl:
Name Compuertas logicas;
PartNo 00 ;
Date 03/10/2008 ;
Revision 01 ;
Designer Engineer ;
Company Corpostar ;
Assembly None ;
Location ;
Device g22v10 ;
/* *************** INPUT PINS *********************/
PIN 1 = a ;
PIN 2 = b ;
PIN 3 = c ;
14 = nota ;
15 = xnor ;
16 = xor ;
17 = nor ;
18 = or ;
19 = nand ;
20 = and ;
and = !a ;
nand = a & b & c ;
or = a # b # c ;
nor = !(a # b # c ) ;
xor = a $ b $ c ;
xnor = !(a $ b $ c ) ;
nota = !a ;
Ejemplo 6.
Multiplexor Decodificador BCD.
Programa preparado para el dispositivo GALP221O.
Cdigo en WinCupl:
Programa de descripcin del circuito (archivo .PLD)
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;
22v10;
/******************************************************************/
/*
*/
/*
LABORATORIO DE ELECTRONICA DIGITAL
/*
*/
/*
Practica 3: Multiplexor - Decodificador BCD
*/
/*
*/
/******************************************************************/
/* Programa preparado para el dispositivo: 22V10
*/
/******************************************************************/
*/
'h'3=>'b'11110010;
'h'4=>'b'01100110; 'h'5=>'b'10110110; 'h'6=>'b'00111110;
'h'7=>'b'11100000;
'h'8=>'b'11111110; 'h'9=>'b'11100110; 'h'A=>'b'00000001;
'h'B=>'b'00000001;
'h'C=>'b'00000001; 'h'D=>'b'00000001; 'h'E=>'b'00000001;
'h'F=>'b'00000001;
}
Ejemplo 7.
Entrada de vectores. (GAL22V10)
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 **/
/* * 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 0000 0000 ********
1 0001 0000 ********
1 0010 0000 ********
Ejemplo 8:
Programa comparador de 4 bits.
Cdigo en WinCupl:
/* *************** INPUT PINS *********************/
PIN 1 = CLOCK
; /*
*/
PIN 2 = R
; /*
*/
PIN 3 = S
; /*
*/
PIN 4 = T
; /*
*/
PIN 5 = RESET
; /*
*/
PIN 6 = PRESET
; /*
*/
/* *************** OUTPUT PINS *********************/
PIN 14 = A
; /*
*/
PIN 15 = B
; /*
*/
PIN 16 = C
; /*
*/
SEQUENCE [A,B,C]
{
PRESENT 6 IF R NEXT 2; DEFAULT NEXT 4;
PRESENT 4 IF S NEXT 6; DEFAULT NEXT 5;
PRESENT 2 IF S NEXT 3; DEFAULT NEXT 6;
PRESENT 5 IF T NEXT 7; DEFAULT NEXT 4;
PRESENT 7 NEXT 6;
PRESENT 3 IF T NEXT 2; DEFAULT NEXT 7;
}
A.AR=RESET;B.AR=RESET;C.AR=RESET;
A.SP=PRESET;B.SP=PRESET;C.SP=PRESET;
Ejemplo 9:
Contador de dcadas. (GAL22V10)
Programacin en WinCupl:
Name
CONTA;
PartNo 00 ;
Date
03/08/2011 ;
Revision 01 ;
Designer Mayra ;
Company cecyteopl1 ;
Assembly None ;
Location ;
Device g22v10 ;
; /*
*/
; /*
*/
PIN 3 = UP ;
/* *************** OUTPUT PINS *********************/
PIN [14..17 ] = [q3..0]
; /*
*/
SEQUENCE contador {
PRESENT s0
Ejemplo 10.
Multiplexor 4x1 (GAL22V10).
Cdigo en WinCupl:
Name
MUX4X1 ;
PartNo 00 ;
Date
19/09/2011 ;
Revision 01 ;
Designer Engineer ;
Company MAPS ;
Assembly None ;
Location ;
Device g22v10 ;
1=s1
; /*
*/
PIN
2=s0
; /*
*/
PIN
3=i0
; /*
*/
PIN
4=i1
; /*
*/
PIN
5=i2
; /*
*/
PIN
6=i3
; /*
*/
23=sal
; /*
*/
sal=i0&!s1&!s0#i1&!s1&s0#i2&s1&!s0#i3&s1&s0;