Está en la página 1de 29

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

Unidad 8 Lgica combinacional programable


Andres.Iborra@upct.es Juan.Suardiaz@upct.es Septiembre 2002

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

CONTENIDO
Unidad 8. Lgica combinacional programable. 1. 2. 3. 4. 5. 6. 7. Dispositivos lgicos programables (PLDs). Tipos de SPLDs. Matriz lgica programable (PAL). Matriz lgica genrica (GAL). CPLDs y FPGAs. Programacin de los PLDs. Lenguajes de descripcin hardware.

OBJETIVOS ESPECFICOS
! Estudiar las matrices programables y describir la mayora de los tipos de dispositivos lgicos programables. ! Conocer la estructura bsica de una PAL y saber cmo, programando la matriz AND, se generan las funciones lgicas estndar. ! Conocer la estructura bsica de una GAL y saber cmo, programando la matriz AND, se generan funciones lgicas estndar. ! Conocer la arquitectura bsica de la GAL22V10. ! Conocer la arquitectura bsica de la GAL16V8. ! Estudiar el procedimiento bsico de programacin de los PLDs. ! Escribir sencillos programas en ABEL para implementar lgica combinacional en un PLD. ! Disear lgica combinacional sencilla utilizando una GAL.

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

1. DISPOSITIVOS LGICOS PROGRAMABLES (PLDs)


Los PLDs se utilizan en muchas aplicaciones para reemplazar a los circuitos SSI y MSI, ya que ahorran espacio y reducen el nmero y el coste de los dispositivos en un determinado diseo. Existen diferentes tipos de dispositivos PLD: SPLD, CPLD, FPGA, etc.

Matrices programables

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

2. TIPOS DE SPLDs (I)


Existen cuatro tipos de dispositivos PLD: PROM, Programmable Read-Only Memory. PLA, Programmable Logic Array. PAL, Programmable Array Logic. GAL, Generic Array Logic. Memoria programable de slo lectura (PROM)

Se utiliza como una memoria direccionable y no como un dispositivo lgico, debido a las limitaciones que imponen las puertas AND fijas. Matriz Lgica Programable (PLA)

Tambin se conoce como FPLA (Field Programmable Logic Array), debido a que es el usuario y no el fabricante el que la programa.
4

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

2. TIPOS DE SPLDs (II)


Matriz Lgica Programable (PAL)

Mejora las desventajas de las PLA en cuanto a los retardos en los fusibles. Es el dispositivo programable, para una sola vez, ms comn, y se implementa con tecnologa TTL y ECL. Matriz Lgica Genrica (GAL)

Es el desarrollo ms reciente. Tiene una estructura muy parecida a la PAL, pero con las siguientes diferencias: Es reprogramable. Tiene configuraciones de salida reprogramables. Usa tecnologa E2CMOS (Electrically Erasable CMOS).
5

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

3. MATRIZ LGICA PROGRAMABLE (PAL)


Principios de funcionamiento PAL

Su estructura permite implementar cualquier suma de productos lgica con un nmero de variables definido. Cada punto de interseccin entre una fila y columna se llama celda, y es el elemento programable de la PAL.

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

3. MATRIZ LGICA PROGRAMABLE (PAL)


Implementacin de una suma de productos

Durante el proceso de programacin cuando se requiere la conexin entre una fila y una columna el fusible se deja intacto. Por el contrario, cuando dicha unin no se requiere, el fusible se abre. Simbologa simplificada

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

3. MATRIZ LGICA PROGRAMABLE (PAL)


Ejemplo de Implementacin de una suma de productos Indicar como se programa una PAL para obtener la siguiente funcin lgica de tres variables:
X = A BC + AB C + A B + AC

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

3. MATRIZ LGICA PROGRAMABLE (PAL)


Diagrama de bloques de una PAL

Tpicamente n 8 y m 8. Algunas PAL disponen de pines de E/S. Salida combinacional Entrada/salida combinacional

Salida de polaridad programable

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

3. MATRIZ LGICA PROGRAMABLE (PAL)


Referencia estndar de una PAL

10

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


Funcionamiento de una GAL

11

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


Ejemplo de aplicacin Indicar cmo se programa una GAL para obtener la siguiente expresin de 3 variables:

X = AB C + ABC + BC + A B

12

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


Diagrama de bloques de una GAL

Tpicamente n 8 y m 8. Las OLMC (output logic macrocells), se pueden programar como lgica combinacional o como lgica secuencial. Las OLMC proporcionan una mayor flexibilidad que la lgica de salida fija de una PAL. Referencia estndar de una GAL

13

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


Diagrama de bloques de la GAL22V10

14

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


Las macroceldas lgicas de salida

Existen cuatro posibles configuraciones de la OLMC:


Modo combinacional con salida activa a nivel BAJO. Modo combinacional con salida activa a nivel ALTO. Modo secuencial con salida activa a nivel BAJO. Modo secuencial con salida activa a nivel ALTO.

15

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


Diagrama de la matriz GAL22V10 (I)

16

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


Diagrama de la matriz GAL22V10 (II)

Ejemplo de aplicacin Demostrar cmo se puede implementar la suma de productos de 6 variables siguiente con la GAL22V10:
X = ABCDEF + A BC DE F + AB C D E F + ABCDE F + A BCDE F + ABC DEF + ABCDEF

17

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

4. MATRIZ LGICA GENRICA (GAL)


GAL16V8

18

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

5. CPLDs y FPGAs
CPLD (Complex PLD)
Son versiones ms grandes que los PLD sencillos, con una matriz de interconexin interna centralizada que se utiliza para interconectar las macroceldas del dispositivo. La matriz de interconexin se programa para conectar de forma selectiva seales de entrada a un nivel de puertas AND programables que se conectan a su vez a un nivel de puertas OR fijo. Las salidas de las puertas OR se conectan a su vez a macrocelulas configurables que permiten al usuario: o Especificar la polaridad de salida. o Seleccionar operaciones combinacionales o de registro. o Proporcionar la funcionalidad triestado. o Opcionalmente realimentar la matriz de interconexin. Independientemente de la funcin que se implemente, el camino que siguen las seales a travs del CPLD es prcticamente el mismo. Esta arquitectura limita la flexibilidad del diseo, pero ofrece la ventaja con que los tiempos de propagacin son muy predecibles.

19

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

5. CPLDs y FPGAs
FPGA (Field Programmable Gate Array)
Consiste en una matriz de gran tamao de celdas lgicas simples con canales de rutado horizontal y vertical para interconexin. No tienen una estructura de implementacin predefinida, como los CPLD, permitiendo implementar una funcin lgica de mulltiples maneras. Son tremendamente flexibles y potentes algunas de ellas.

20

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

6. PROGRAMACION DE LOS PLD


Entorno

El computador puede ser desde un ordenador personal corriendo bajo WIN95/98 hasta una estacin de trabajo UNX. Los paquetes de software utilizados para la programacin de PLDs se denominan compiladores lgicos (SINOPSIS, FUNDATION, VERY-BEST, OrCAD-PLD, etc). El SW procesa y sintetiza el diseo lgico que se ha introducido mediante un determinado mtodo (esquemticos, tablas de verdad, ecuaciones booleanas, diagramas de estado, HDLs, etc). Generan un archivo de salida JEDEC (mapa de celdas o mapa de fusibles) estndar (Joint Electronic Device Electronic Council). El SW permite simular la funcionalidad, as como las caractersticas elctricas y temporales del diseo antes de su implementacin. Para programar el PLD, ste se inserta sobre un zcalo ZIF (zero insertion force, fuerza de insercin nula). El programador contiene un controlador software que lee el fichero JEDEC generado con el compilador lgico y lo convierte en instrucciones que aplican las tensiones especficas en los pines del PLD especfico.
21

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

6. PROGRAMACION DE LOS PLD


Proceso de programacin

22

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

7. LENGUAJES DE DESCRIPCIN HARDWARE


Lenguajes de descripcin hardware (HDL) VHDL, VERYLOG y ABEL son los lenguajes HDL ms comnmente utilizados. Introduccin al lenguaje ABEL (I) ABEL (Advanced Bolean Expression Language) proporciona tres formatos para describir e introducir el diseo lgico: ecuaciones, tablas de verdad y diagramas de estado. ABEL utiliza cuatro smbolos para representar las operaciones lgicas:

Uno de los mtodos de entrada de ABEL son las ecuaciones lgicas:


X = AB C + ABC + BC + A B
X =! A & B &! C # ! A & B & C # B & C # A&! B

Las variables de entrada o salida mltiples se pueden agrupar usando corchetes para simplificar una ecuacin.
A = [ A3, A2, A1, A0];

23

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

7. LENGUAJES DE DESCRIPCIN HARDWARE


Introduccin al lenguaje ABEL (II). Ejemplo de descripcin.
Desarrollar las ecuaciones lgicas que describen al multiplexor de 12 entradas y cuatro salidas de la siguiente figura utilizando el lenguaje ABEL.

Y3 = A3 S1S 0 + B3 S1 S 0 + C3 S1S 0 Y2 = A2 S1S 0 + B2 S1 S 0 + C2 S1S 0 Y1 = A1 S1S 0 + B1S1 S 0 + C1S1S 0 Y0 = A0 S1S 0 + B0 S1 S 0 + C0 S1S 0

Y3 Y2 Y1 Y0

= = = =

A3 A2 A1 A0

& & & &

!S1 !S1 !S1 !S1

& & & & A B C Y

S0 S0 S0 S0 = = = =

# # # #

B3 B2 B1 B0

& & & &

S1 S1 S1 S1

& & & &

!S0 !S0 !S0 !S0

# # # #

C3 C2 C1 C0

& & & &

S1 S1 S1 S1

& & & &

S0; S0; S0; S0;

[A3, A2, [B3, B2, [C3, C2, [Y3, Y2, A = [S1,

A1, A0]; B1, B0]; C1, C0]; Y1, Y0]; S0];

(S==1)

&

(S==2)

&

(S==3)

&

C;

24

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

7. LENGUAJES DE DESCRIPCIN HARDWARE


Introduccin al lenguaje ABEL (III). Tablas de verdad. OR-exclusiva
TRUTH_TABLE ([A,B] [1,0] [0,1] [0,0] [1,1] -> -> -> -> -> [X]) [1]; [1]; [0]; [0];

Decodificador BCD-7 segmentos


TRUTH_TABLE ([D,C,B,A] [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] -> -> -> -> -> -> -> -> -> -> -> [a, [1, [0, [1, [1, [0, [1, [1, [1, [1, [1, b, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, c, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, d, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, e, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, f, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, g]) 0]; 0]; 1]; 1]; 1]; 1]; 1]; 0]; 1]; 0];

BCD = [D, C, B, A]; TRUTH_TABLE (BCD -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 ->

[a, [1, [0, [1, [1, [0, [1, [1, [1, [1, [1,

b, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1,

c, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,

d, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,

e, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0,

f, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1,

g]) 0]; 0]; 1]; 1]; 1]; 1]; 1]; 0]; 1]; 0];

25

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

7. LENGUAJES DE DESCRIPCIN HARDWARE


Introduccin al lenguaje ABEL (IV). El archivo de entrada.
Contiene tres secciones bsicas:

Declaraciones
Declaraciones de los pines Declaraciones de conjuntos Declaraciones del dispositivo
A0,A1,A2,A3, PIN,1,2,3,4; S=[S0,S1]; decoder device P22V10;

Descripciones lgicas
Ecuaciones. Tablas de verdad. Diagrama de estados.

Vectores de prueba
Los vectores de prueba examinan el diseo lgico antes de programar el hardware, aplicando todas las combinaciones de entrada y comprobando que las salidas son correctas.
TEST_VECTORS ([D,C,B,A] -> [a, b, c, d, e, f, g]) [0,0,0,0] -> [1, 1, 1, 1, 1, 1, 0]; [0,0,0,1] -> [0, 1, 1, 0, 0, 0, 0]; [0,0,1,0] -> [1, 1, 0, 1, 1, 0, 1]; [0,0,1,1] -> [1, 1, 1, 1, 0, 0, 1]; [0,1,0,0] -> [0, 1, 1, 0, 0, 1, 1]; [0,1,0,1] -> [1, 0, 1, 1, 1, 1, 1]; [0,1,1,0] -> [1, 0, 1, 1, 1, 1, 1]; [0,1,1,1] -> [1, 1, 1, 0, 0, 0, 0]; [1,0,0,0] -> [1, 1, 1, 1, 1, 1, 1]; [1,0,0,1] -> [1, 1, 1, 1, 0, 1, 0];

26

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

7. LENGUAJES DE DESCRIPCIN HARDWARE


Introduccin al lenguaje ABEL (V). Ejemplo de archivo de entrada. Crear un archivo de entrada en ABEL para implementar el multiplexor cudruple 1-de-4 que se muestra a continuacin.

Module cuad_1_de_4_mux Title Multiplexor cuadruple 1 de 4 en GAL20V8 mux device A0, A1, A2, B0, B1, B2, C0, C1, C2, D0, D1, D2, Aout, Bout, S0, S1 Equations Aout Bout Cout Dout = = = = !S1 !S1 !S1 !S1 & & & & !S0 !S0 !S0 !S0 & & & & A0 B0 C0 D0 # # # # !S1 !S1 !S1 !S1 & & & & S0 S0 S0 S0 & & & & A1 B1 C1 D1 # # # # S1 S1 S1 S1 & & & & !S0 !S0 !S0 !S0 & & & & A2 B2 C2 D2 # # # # S1 S1 S1 S1 & & & & S0 S0 S0 S0 & & & & A3; B3; C3; D3; P20V8 pin 1, 2, 3, 4; pin 5, 6, 7, 8; pin 9, 10, 11, 13; pin 14, 15, 16, 17; pin 21, 20, 19, 18; pin 22, 23;

A3 B3 C3 D3 Cout, Dout

Test_vectors ([S1,S0,A0,A1,A2,A3,B0,B1,B2,B3,C0,C1,C2,C3,D0,D1,D2,D3]-> [Aout,Bout,Cout,Dout]) S S A A A A B B B B C C C C D D D D 1 0 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 outputs A B C D

[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[1,0,0,0]; [0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[0,1,0,0]; [1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[0,0,1,0]; [1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[0,0,0,1]; [0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[0,1,1,1]; [0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[1,0,1,1]; [1,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[1,1,0,1]; [1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[1,1,1,0]; END

27

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

7. LENGUAJES DE DESCRIPCIN HARDWARE


Introduccin al lenguaje ABEL (VI). El archivo de documentacin.
Este archivo proporciona una copia en papel de las ecuaciones finales reducidas, un archivo JEDEC, y un diagrama de pines del dispositivo.

JEDEC

28

Electrnica Industrial-ED5

Unidad 8.Llgica combinacional programable

7. LENGUAJES DE DESCRIPCIN HARDWARE


Introduccin al lenguaje ABEL (VII). GAL20V8.

29

También podría gustarte