PLDs Dispositivos lógicos programables
Un PLD se encuentra en muchas aplicaciones para reemplazar a los circuitos SSI y MSI. El PLD, está conformado por una matriz de compuertas AND y compuertas OR, que se pueden programar para la construcción de funciones lógicas específicas. Matriz OR
Matriz AND
Existen cuatro tipos de Dispositivos: Memoria Programable de solo Lectura (PROM) Matriz AND Fija OR Programable Entrada 1 Entrada 2 Entrada n Salida 1 Salida 2 Salida m
2. Matriz Lógica Programable (PLA) AND Programable OR Programable Entrada 1 Entrada 2 Entrada n Salida 1 Salida 2 Salida m
OR Fija y Lógicas de Salida 3. Matriz Lógica Programable (PAL) Matriz AND Programable Matriz OR Fija y Lógicas de Salida Entrada 1 Salida 1 Entrada 2 Salida 2 Entrada n Salida m
OR Fija y Lógica de Salida Programable 4. Matriz Lógica Genérica (GAL) Matriz AND Programable OR Fija y Lógica de Salida Programable Entrada 1 Entrada 2 Entrada n Salida 1 Salida 2 Salida m La GAL es reprogramable (E2CMOS) Tiene configuración de salidas programables
PAL ARREGLO LOGICO PROGRAMABLE
Se permite implementar cualquier suma de productos lógicos con un número de variables definidas.
Lógica Combinacional de Salida Salida Combinacional Se usa para suma de productos. Entrada/Salida Combinacional La función de Salida se puedee realimentar a una entrada de la matriz o cuando el pin E/S, se usa solo como entrada. Salida de Polaridad Programable Seleccionar la función de Salida o su complemento, programando la compuerta XOR para realizar la inversión o no.
GAL MATRIZ LOGICA GENERICA
Formada por una matriz de puertas AND reprogramable (E2CMOS) conectada a una matriz de puertas OR fijas. Se permite implementar una expresión lógica de Suma de Productos con un número de variables definidas.
EJEMPLO A A´ B B´ C C´ Z = A’B + B’C + AC’ + A’B’
GAL22V10 De la Matriz Programable A la Matriz E/S Buffer Tri-State OLMC La salida de la Matriz AND, se introducen en la macro celda (OLMC, output logic macrocell), conformada por puertas OR y lógica programable. Las OLMC, se pueden programar como Lógica Combinacional y Lógica Secuencial La GAL22V10, está conformada por 12 entradas dedicadas y diez E/S.
El OLMC, internamente, está conformado por un multiplexor de dos señales de selección para cuatro configuraciones: Modo Combinacional con salida activa en Alto o activa en Bajo. El Multiplexor, selecciona la salida de la puerta OR Modo Secuencial como salida activa Alto o activa en Bajo El Multiplexor, selecciona la salida del Flip - Flop Buffer de Salida Tri – State Cuando se encuentra en alto, se produce una salida Cuando se encuentra en Bajo se, el buffer entra en alta impedancia y se configura el pin como entrada.
PROCESO DE PROGRAMACIÓN
Diseño del Circuito Lógico Desarrollar el Programa Errores Compilar Programar Implementar si no
WINCUPL PROGRAMAR PLDs
WINCUPL (Compiler Universal Programmable Logic) Es un compilador lógico de programación de PLDs, la cual traduce Compilador Universal para Lógica Programable. Este compilador ofrece varias características que permiten desarrollos basados en sistemas IDE (Integrated Development Enviroment) y un Simulador llamado WinSIM creados para la edición, el diseño y comprobación de programas.
Decimal ‘d’O ‘d’21 ‘d’51 ‘d’7 Hexadecimal ‘h’O ‘h’15 ‘h’33 ‘h’7 CONSTANTES NUMERICAS La Base numérica en CUPL es el HEXADECIMAL. Los números de los pines del dispositivo y de las variables creadas son números DECIMALES. Decimal ‘d’O ‘d’21 ‘d’51 ‘d’7 Hexadecimal ‘h’O ‘h’15 ‘h’33 ‘h’7 Octal ‘o’O ‘o’25 ‘o’63 ‘o’7 Binario ‘b’O ‘b10101 ‘b’110011 b’111
Encabezado Name Name ; PartNo 00 ; Date 03/10/2006 ; Revision 01 ; PROCEDIMIENTO DE PROGRAMACION Encabezado Name Name ; PartNo 00 ; Date 03/10/2006 ; Revision 01 ; Designer Engineer ; Company UTM ; Assembly None ; Location Huajuapan; Device g22v10 ;
Declaración de terminales El formato general para esta declaración es: PIN pin_number = [ ! ] var Ejemplos: PIN 1 = Clock; PIN 2 = S; PIN 11 = !O; PIN [3..6] = [D0..D3]; FIELD estado = [Q0..Q2]; FIELD entradas = [entrada1, entrada2, entrada3]; FIELD salidas = [sube, baja, paro, marcha];
Comandos del Procesador Ecuaciones Tabla de Verdad Mapas de Estado Vector de prueba Ecuaciones: Z1 = s1 & s2; Z2 = (!s0 & !s1 & s2) # (s0 & s1 & s2); Z3 = !s0 & s1 # s2 & !s1;
Tablas de Verdad FIELD ins=[s2, s1, s0]; FIELD outs=[Z3, Z2, Z1]; TABLE ins => outs { 'b'000 => 'b'000; 'b'001 => 'b'001; 'b'010 => 'b'100; 'b'011 => 'b'010; 'b'100 => 'b'100; 'b'101 => 'b'100; 'b'110 => 'b'100; 'b'111 => 'b'011; }
Encabezado PartNo 00 ; Date 03/10/2006 ; Revision 01 ; Designer Engineer ; Company UTM ; Assembly None ; Location ; Device g22v10 ; Declración de Pines /* *************** INPUT PINS *********************/ PIN 1 = A ; /* */ PIN 2 = B ; /* */ PIN 3 = C ; /* */ /* *************** OUTPUT PINS *********************/ PIN 23 = Y ; /* */
Ecuaciones lógicas /* ************** ECUACION LOGICA ******************/ Y=(!A&!B&!C)#(!A&!B&C)#(!A&B&!C)#(!A&B&C)#(A&B&!C);
FIN