Aprenda Pld's Principios y Aplicaciones

Embed Size (px)

Citation preview

  • APRENDA PLDs, PRINCIPIOS Y APLICACIONES

    ELABORADO POR:

    ING. LUIS GERARDO FLORES RODRIGUEZ

  • 2 DERECHOS RESRVADOS 2002 Ing. Luis Gerardo Flores Rodrguez. Esta obra y sus caractersticas son propiedad del autor, cualquier reproduccin total o

    parcial, queda estrictamente prohibida, de acuerdo a los derechos de autor que marca la ley.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 3

    Resumen

    En el captulo uno, se presenta un repaso de los principios de los sistemas digitales, como

    es el lgebra booleana, los mapas de Karnaugh, las compuertas simples y compuestas.

    En el captulo dos, se detalla que es la lgica programable, los tipos de PLDs, ventajas,

    limitaciones, seleccin, nomenclatura, las Macroceldas de salida lgica (OLMC),

    fabricantes de PLDs, y los pasos necesarios para la programacin.

    En el captulo tres, se describe el software de desarrollo utilizado en este trabajo, el

    WinCUPL (Compilador Universal de Lgica Programable bajo el sistema Windows), este

    software de la compaa Logic Devices Co., es uno de los mas populares en el mercado.

    En el captulo cuatro, se menciona los tres posibles mtodos de programacin en la lgica

    combinacional, donde se incluyen un ejemplo en cada mtodo de implementacin, dando

    explicacin paso a paso para su programacin.

    Y por ultimo, el captulo cinco nos indica las dos maneras de programacin en la lgica

    secuencial; por secuencia y por ecuaciones. En ambas formas mostramos un ejemplo

    prctico, dando por conclusin el mismo resultado.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 4

    Contenido

    Derechos de autor

    Resumen

    Contenido

    Figuras

    Antecedentes

    1. INTRODUCCIN.

    1.1 Sistemas analgicos y digitales

    1.2 Sistemas Numricos

    1.3 Tabla de verdad

    1.4 Compuertas simples y compuestas

    1.4.1 Compuertas simples

    1.4.2 Compuertas compuestas

    1.5 lgebra Booleana

    1.6 Minitrminos y Maxitrminos

    1.6.1 Minitrminos.(Suma de Productos).(m).

    1.6.2 Maxitrminos.(Productos de Suma).(M).

    1.6.3 Minimizacin de funciones combinacionales

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 5

    1.7 Mapas de Karnaugh

    1.7.1 Definicin.

    1.7.2 Redundancias.(d).

    2. DISPOSITIVOS LGICOS PROGRAMABLES.

    2.1 Qu es la lgica programable?.

    2.1.1 ASIC

    2.1.2 PROM

    2.1.3 PAL.

    2.1.4 GAL

    2.1.5 PLA

    2.1.6 PLDs complejos.

    2.1.7 FPGA.

    2.2 Ventajas del uso de PLDs.

    2.3 Limitaciones de las PLDs.

    2.4 Seleccin del modelo adecuado para cada aplicacin.

    2.5 Nomenclatura generalizada de las PLDs.

    2.6 PALs programables varias veces : serie PALCExxx y GALs.

    2.7 Fabricantes de PALs y GALs.

    2.8 Programacin de los PLDs.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 6 3. COMPILADOR UNIVERSAL PARA LOGICA PROGRAMABLE. (WinCUPL)

    3.1 Flujo de Datos.

    3.2 Ciclo de "desarrollo".

    3.3 Medio ambiente del WinCUPL.

    3.3.1 Comandos de la barra de herramienta.

    3.3.2 Comandos del men File:.

    3.3.3 Comandos del men Edit:.

    3.3.4 Comandos del men View:.

    3.3.5 Comandos del man Options:.

    3.3.6 Comandos del men Run:.

    3.3.7 Comandos del men Utilities:.

    3.3.8 Comandos del men Window:.

    3.3.9 Comandos del men Help:.

    3.4 Elementos del lenguaje.

    3.4.1 Variables.

    3.4.2 Palabras y smbolos reservados.

    3.4.2.1 Palabras reservadas.

    3.4.2.2 Smbolos reservados.

    3.4.3 Comentarios.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 7

    3.4.4 Notacin de listas.

    3.4.5 Archivo Plantilla.

    3.4.6 Declaracin de Pines y Campos.

    3.4.6.1 Declaracin de pines.

    3.4.6.2 Declaracin de campos de bits.

    3.4.7 Comandos de Preprocesamiento.

    3.4.8 Operadores Lgicos.

    3.4.9 Extensiones.

    3.4.10 Expresiones.

    3.4.11 Ecuaciones Lgicas.

    4. LOGICA COMBINACIONAL.

    4.1 Ejemplo usando tabla de verdad.

    4.2 Ejemplo usando ecuaciones booleanas.

    4.3 Ejemplo usando el programa esquemtico.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 8 5. LOGICA SECUENCIAL.

    5.1 La macrocelda lgica de salida (OLMC) del GAL22V10.

    5.2 La OLMC de la GAL16V8.

    5.3 El modo combinacional.

    5.4 El modo secuencial.

    5.5 Tipos de mquinas de estados.

    5.6 Ejemplo.

    5.6.1 Implementacin utilizando la secuencia de estados.

    5.6.2 Implementacin usando ecuaciones minimizadas.

    Bibliografa.

    Abreviaturas.

    Glosario.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 9

    Figuras Figura 1.1 Ejemplo de representaciones anlogas y digitales.

    Figura 1.2 Mapas de Karnaugh.

    Figura 1.3 Ejemplo de minimizacin.

    Figura 2.1 Arquitectura elemental del PROM.

    Figura 2.2 Arquitectura elemental del PAL.

    Figura 2.3 Arquitectura elemental de un PLA.

    Figura 2.4 Arquitectura elemental de un FPGA.

    Figura 2.5 Estructuras de las GAL16V8 y GAL20V8.

    Figura 2.6 Constitucin de Macroceldas de salida lgica (OLMCs) de un GAL.

    Figura 2.7 Sistema necesario para el desarrollo de un PLD.

    Figura 3.1 Flujo de datos del WinCUPL.

    Figura 3.2 Diagrama de flujo del ciclo de desarrollo de PLDs.

    Figura 3.3 Pantalla general del WinCUPL.

    Figura 4.1 Modo de programar el PLD.

    Figura 4.2 Pantalla de creacin de un nuevo archivo.

    Figura 4.3 Pantalla de edicin .

    Figura 4.4 Pantalla de insercin de la tabla.

    Figura 4.5 Acomodo de las variables y de la tabla de verdad.

    Figura 4.6 Pantalla Output Files.

    Figura 4.7 Pantalla de Minimization.

    Figura 4.8 Pantalla Optimization.

    Figura 4.9 Pantalla Devices.

    Figura 4.10 Pantalla Library.

    Figura 4.11 Pantalla General.

    Figura 4.12 Pantalla de opciones del simulador.

    Figura 4.13 Pantalla de los resultados de la compilacin .

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 10 Figura 4.14 Pantalla de cabecera del WinSim.

    Figura 4.15 Pantalla de resultados de la simulacin.

    Figura 4.16 Minimizacin de la ecuacin.

    Figura 4.17 Pantalla de cabecera.

    Figura 4.18 Pantalla de Edicin .

    Figura 4.19 Pantalla de cabecera del WinSim.

    Figura 4.20 Resultados simulados del WinSim.

    Figura 4.21 Pantalla general del programa Schematic.

    Figura 4.22 Botones de herramienta.

    Figura 4.23 Implementacin lgica de la ecuacin de nmeros primos.

    Figura 4.24 Programa fuente generado por el Schematic.

    Figura 4.25 Pantalla de la cabecera del WinCUPL.

    Figura 4.26 Programa fuente generado por Schematic, pegado en WinCUPL.

    Figura 4.27 Programa fuente arreglado.

    Figura 4.28 Pantalla de los resultados de simulacin del programa Numprim_sh.

    Figura 5.1 OLMC del GAL22V10.

    Figura 5.2 OLMC del GAL16V8.

    Figura 5.3 Modo combinacional para salidas activas a nivel bajo y a nivel alto.

    Figura 5.4 Modo secuencial para salidas activas a nivel bajo y a nivel alto.

    Figura 5.5 Diagrama de bloques generales para los dos tipos de mquinas de estado.

    Figura 5.6 Distribucin fsica del problema de control de semforos.

    Figura 5.7 Comportamiento del circuito.

    Figura 5.8 Tabla equivalente con valores bolanos.

    Figura 5.9 Minimizacin por mapa de las salidas Z1 y Z2.

    Figura 5.10 Programa fuente en WinCUPL, usando la secuencia de estados.

    Figura 5.11 Resultado de la simulacin.

    Figura 5.12 Minimizacin de las salidas de los flip-flops D.

    Figura 5.13 Programa fuente, utilizando ecuaciones lgicas.

    Figura 5.14 Resultado de la simulacin.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 11

    Antecedentes

    El incremento de popularidad y de utilizacin de los dispositivos lgicos programables o

    PLDs est siguiendo un proceso solamente comparable al que hace algunos aos acompa

    a los microprocesadores. Los PLDs se utilizan en casi todos los nuevos equipos

    electrnicos de control, industriales, de consumo, de oficina, de comunicaciones, etc.

    Desde finales de la dcada de los sesenta, los equipos electrnicos digitales se han

    construido utilizando circuitos integrados de funcin lgica fija, realizados en pequea o

    mediana escala de integracin. Para las realizaciones muy complejas que exigiran un

    nmero elevado de circuitos integrados (CI) de funcin fija, se utilizan circuitos diseados

    a medida que slo sirven para una aplicacin. Son los llamados CI especficos a una

    aplicacin o ASIC (Application Specific Integrated Circuit). Por regla general, los ASICs

    los producen los fabricantes de CI con las especificaciones proporcionadas por el usuario.

    Los equipos realizados con ASICs ocupan menos espacio, son ms fiables, consumen

    menos energa y en grandes series resultan ms baratos que los equipos equivalentes

    realizados con CI de funcin fija. Por otro lado, estos circuitos son muy difciles de copiar.

    Diferentes modalidades de ASICs son; los Circuitos a Medida (Full Custom), las Matrices

    de Puertas (Gate Arrays), las Clulas Normalizadas (Standard Cell) y los FPICs (Field

    Programmable Integrated Circuits); estos ltimos son circuitos programables por el usuario

    final.

    Los PLDs (Programmable Logic Devices) son pequeas ASICs configurables por el

    usuario capaces de realizar una determinada funcin lgica. La mayora de los PLD

    consisten en una matriz de puertas AND seguida de otra matriz de puertas OR. Mediante

    esta estructura, puede realizarse cualquier funcin como suma de trminos productos.

    Aunque las memorias PROM, EPROM y EEPROM son PLDs, muchas veces se las excluye

    de esta denominacin debido a que su contenido se define utilizando elementos de

    desarrollo propios de microprocesadores, tales como; ensambladores, emuladores y

    lenguajes de programacin de alto nivel. Otras veces, cuando estas memorias se usan para

    realizar una funcin lgica y no para guardar un programa de un microprocesador, se las

    incluye dentro del trmino PLD.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 12 Los PLDs estn situados en una zona intermedia entre los dispositivos a medida y la lgica

    de catlogo formada por los CI de funcin fija. Tienen casi todas las ventajas de los ASICs

    sin estar penalizados por un costo elevado para pequeas series. Adems el ciclo de diseo

    con PLDs es mucho ms rpido que los de las matrices de puertas o las clulas

    normalizadas. En determinadas aplicaciones, un PLD puede sustituir desde unos pocos

    hasta unas decenas de CI de funcin fija, mientras que los grandes ASICs pueden sustituir a

    cientos e incluso miles de CI. En ocasiones, los PLD se utilizan para realizar prototipos que

    posteriormente se llevarn a un ASIC ms complejo.

    El trabajo con PLDs proporciona: facilidad de diseo, prestaciones, fiabilidad, economa y

    seguridad.

    Las herramientas de soporte al diseo con PLDs facilitan enormemente este proceso. Las

    hojas de codificacin que se utilizaban en 1975 han dejado paso a los ensambladores y

    compiladores de lgica programable (PALASM, AMAZE, ABEL, CUPL, OrCAD/PLD,

    etc.). Estas nuevas herramientas permiten expresar la lgica de los circuitos utilizando

    formas variadas de entrada tales como; ecuaciones, tablas de verdad, procedimientos para

    mquinas de estados, esquemas, etc. La simulacin digital posibilita la depuracin de los

    diseos antes de la programacin de los dispositivos. Todo el equipo de diseo se reduce a

    un software de bajo costo que corre en una PC, y a un programador.

    Los PLDs TTL que hay en el mercado tienen tiempos de conmutacin tan rpidos como los

    circuitos integrados de funcin fija ms veloces. Los PLDs ECL son todava ms rpidos.

    Sin embargo, el incremento de velocidad obtenido con los dispositivos CMOS, que ya han

    igualado o superado en prestaciones a los dispositivos TTL, est provocando el abandono

    de la tecnologa bipolar por parte de los fabricantes. En cuanto al consumo de potencia, los

    PLDs generalmente consumen menos que el conjunto de chips a los que reemplazan.

    Cuanto ms complejo es un circuito, ms probabilidades hay de que alguna de sus partes

    falle. Puesto que los PLDs reducen el nmero de chips en los sistemas, la probabilidad de

    un fallo disminuye. Los circuitos impresos con menor densidad de CI son ms fciles de

    construir y ms fiables. Las fuentes de ruido tambin se reducen.

    En cuanto economa, hay aspectos que resultan difciles de cuantificar. Por ejemplo, los

    costos de prdida de mercado por una introduccin tarda de un producto.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 13 Otros son ms claros, por ejemplo, la reduccin del rea de las placas de circuito impreso

    obtenida gracias a que cada PLD sustituye a varios circuitos integrados de funcin fija.

    Muchas veces se consigue reducir el nmero de placas de circuito impreso economizndose

    en conectores. La reduccin de artculos en almacn tambin aporta ventajas econmicas.

    De la misma manera que para altos volmenes de produccin las memorias ROM resultan

    de menor costo que las EPROM, las HAL (Hard Array Logic) o PLDs programados por el

    fabricante proporcionan ahorros adicionales en grandes cantidades.

    Los PLDs tienen fusibles de seguridad que impiden la lectura de los dispositivos

    programados, protegiendo los diseos frente a copias.

    Adems de los puntos mencionados, podemos aadir que los PLDs facilitan el ruteado de

    las placas de circuito impreso debido a la libertad de asignacin de patillas que

    proporcionan. Permiten realizar modificaciones posteriores del diseo y en ocasiones hacen

    posible la reutilizacin de circuitos impresos con algunos fallos, mediante una reasignacin

    de los PLDs.

    Existen en la actualidad infinidad de arquitecturas diferentes de PLDs y su nmero se

    incrementa da a da. Aunque resulta casi imposible hacer una referencia completa de todos

    los tipos de PLDs en el mercado, en este trabajo slo se presentarn algunas de las ms

    comunes.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 14 1. INTRODUCCIN.

    1.1 Sistemas analgicos y digitales. En la ciencia, la tecnologa, la administracin y, de hecho, muchos otros campos de la

    actividad humana, constantemente se manejan cantidades. Estas se miden, monitorean,

    registran, manipulan aritmticamente, observan o, en alguna otra forma, se utilizan en

    muchos sistemas fsicos. Cuando se manejan diversas cantidades es importante que

    podamos representar sus valores con eficiencia y exactitud. Existen bsicamente dos

    maneras de representar el valor numrico de las cantidades: La analgica y la digital.

    Representaciones analgicas.- en la representacin analgica, una cantidad se denota por medio de otra que es proporcional a la primera.

    Las cantidades analgicas tienen una caracterstica importante: Pueden variar gradualmente sobre un intervalo continuo de valores.

    Representaciones digitales.- las cantidades no se denotan por valores proporcionales, sino por smbolos denominados dgitos.

    ANALGICA CONTINUO DIGITAL DISCRETO

    Figura 1.1 Ejemplo de representaciones anlogas y digitales.

    Sistema digital.- es una combinacin de dispositivos diseada para manipular cantidades fsicas o informacin que estn representadas en forma digital; esto es,

    que solo pueden tomar valores discretos.

    Sistemas analgicos.- contienen dispositivos que manipulan cantidades fsicas representadas en forma analgica. En un sistema de este tipo, las cantidades varan sobre un intervalo continuo de valores.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 15

    Ventajas de las tcnicas digitales.

    1. Los sistemas digitales son ms fciles de disear.

    2. Facilidad para almacenar la informacin.

    3. Mayor exactitud y precisin.

    4. Programacin de la operacin.

    5. El ruido afecta en forma mnima a los circuitos digitales.

    Limitaciones de la tcnicas digitales.

    Solo un problema: El mundo real es fundamentalmente ANALGICO

    (velocidad, temperatura, distancia, sonido,... etc).

    Cuando se tienen entradas y salidas analgicas, deben seguirse tres pasos para aprovechar

    las tcnicas digitales:

    1. Convertir las entradas analgicas del mundo real a la forma digital.

    2. Procesar ( realizar operaciones) con la informacin digital.

    3. Convertir de nuevo las salidas digitales a la forma analgica del mundo

    real.

    Cada vez es ms frecuente observar dentro de un mismo sistema el empleo de tcnicas

    analgicas y digitales para obtener mayor beneficio de ambas. En estos sistemas hbridos,

    uno de los aspectos ms importantes de la fase de diseo es determinar que partes del

    sistema sern analgicos y cuales digitales.

    1.2 Sistemas Numricos. El sistema numrico decimal fue inventado por matemticos hindes hace ms de dos mil

    aos y los rabes lo introdujeron al mundo occidental en el siglo trece. Consta de diez smbolos que van del cero al nueve, introduce el concepto del valor posicional, en el que

    cada posicin representa la base elevada a una potencia. En base 10 el dgito que se

    encuentra en la posicin de unidades debe ser multiplicado por 100, el de decenas por 101,

    el de centenas por 102, etc. Por ejemplo:

    7865 = (7 * 103) + (8 * 102) + (6 * 101) + (5 * 100)

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 16 existen muchos otros sistemas numricos, los cuales comparten con el sistema decimal las

    siguientes propiedades:

    El nmero de smbolos diferentes (dgitos) usados por el sistema es igual a la base. El dgito mayor es siempre una unidad menor a la base. En cada posicin se multiplica el valor del dgito por la base elevada a la potencia

    correspondiente. Para un nmero entero, el ltimo dgito (o sea el de la derecha)

    est multiplicado por la base elevada a la potencia cero, el penltimo est

    multiplicado por la base elevada a la potencia uno, el antepenltimo por la base

    elevada a la potencia dos, y as sucesivamente.

    Los acarreos en sumas y restas, se propagan hacia la siguiente posicin con mayor peso ponderal.

    El sistema numrico binario solo encuentra aplicacin prctica hasta hace

    aproximadamente 50 aos al iniciarse el desarrollo de automatismos a relevadores.

    Actualmente se emplea profusamente en las computadoras e instrumentos digitales por

    requerir solo de dos niveles de seal para representar cada dgito.

    El sistema binario consta de dos dgitos 0 y 1. Al representar un nmero entero en

    binario la posicin de la derecha est multiplicado por 20, la siguiente a 21, la siguiente

    por 22, etc.

    A cada dgito binario se le llama bit. Al bit de la extrema derecha se le conoce como

    bit menos significativo y al de la extrema izquierda bit ms significativo.

    Ejemplo.- determine el valor del nmero binario 1011.

    (1011) = (1 * 23) + (0 * 22) + (1 * 21) + (1 * 20)

    = (1 * 8) + (0 * 4) + (1 * 2) + (1 * 1)

    = 8 + 2 + 1 = 11

    El sistema binario no es muy conveniente para que nosotros representemos cantidades

    grandes, pues se requieren demasiados ceros y unos. Por tal razn se emplean

    frecuentemente otros sistemas que correspondan a una representacin abreviada del sistema

    binario. Si se considera que existen 16 posibles combinaciones para un grupo de 4 bits (24 =

    16) se tiene que un dgito hexadecimal (base 16) sustituye a cuatro dgitos binarios.

    En el sistema hexadecimal trabajamos con 16 smbolos que son los nmeros 0, 1, 2, 3, 4, 5,

    6, 7, 8, 9, y las letras A, B, C, D, E, F.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 17 El procedimiento para convertir de binario a hexadecimal requiere solo separar al nmero

    binario en grupos de 4 bits y sustituir cada grupo por el dgito hexadecimal

    co el procedimiento.

    Ej 1111001000

    01

    (7

    1.A

    lla

    Va

    A A,A, n 1. 1.

    ANTa

    Aprrespondiente. Para convertir de hexadecimal a binario se invierte

    emplo.- Convertir de binario a hexadecimal el nmero binario 0111 1100 1000

    ) (C) (8)

    3 Tabla de verdad. las posibles combinaciones de las

    ma tabla de verdad.

    riables lgicas:

    0, 1 B 00,01, 10, 11 B, C 000, 001, 010, 011, 100, 1

    2n

    4 Compuertas simples y co

    4.1 Compuertas simples.

    D.- bla de verdad

    B A F 0 0 0 0 1 0 1 0 0 1 1 1

    renda PLDs Principios y Aplica variables de entrada, y la salida de un circuito lgico se

    01, 110, 111

    mpuestas.

    Smbolo Funcin lgica

    F =A*B A B

    F

    ciones. L. Gerardo Flores R.

  • 18 OR.- Ta Funcin lgica INTa Funcin lgica A F F =A 0 1 1 0 1.4.2 Compuertas compuestas.

    NAND.- Tabla de verdad Smbolo Funcin lgica NOR.- Tabla de verdad lg

    B

    A F

    1 1 1

    F =A

    B A F 0 0 1 0 1 1 1 0 1 1 1 0

    1 1 0

    Aprenda PLDs Principios y Aplicaci

    on

    Smbolo Funcin

    A B

    FF = A B

    A+Bica

    A B

    FB A F 0 0 1 0 1 0 1 0 0 es. L.F = GerarVERSOR.- bla de verdad Smbolo bla de verdad Smbolo

    A F

    B A F 0 0 0 0 1 1 1 0 1 + Bdo Flores R.

  • 19 XOR.- OR exclusivo.- Tabla de verdad Smbolo Funcin lgica NOREX.- NOREX.- NOR Exclusivo Tabla de verdad Smbolo Funcin lgica F

    FA B

    F =A B + A B = AB

    F =A B + A B A B

    B A F 0 0 0 0 1 1 1 0 1 1 1 0

    0 0 1 B A F

    0 1 0 1 0 0 1 1 1

    1.5 lgebra Booleana.

    Mtodo matemtico para tratar de describir las propiedades de un sistema formal de

    pensamiento que nicamente permite dos Posibilidades discursivas: Si-No, Arriba-Abajo,

    Blanco-Negro, Cero-Uno. El creador de todo esto fue el matemtico ingls George Boole

    (1815-1864).

    Funciones, Leyes y Propiedades del lgebra Booleana:

    Funcin AND. Funcin OR. Inversor.

    0 * 0 = 0 0 + 0 = 0 0 = 1 0 * 1 = 0 0 + 1 = 1 1 * 0 = 0 1 + 0 = 1 1 = 0 1 * 1 = 1 1 + 1 = 1

    Ley conmutativa. Ley distributiva. Ley asociativa. X * Y = Y * X X * (Y + Z) =X * Y + X * Z X*(Y * Z) = (X * Y)Z X + Y =Y + X X + Y * Z = (X + Y) * (X + Z) X + (Y + Z)=(X + Y) + Z

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 20 Absorcin. Identidad. Propiedad de la AND. X + X * Y =X X + X * Y = X + Y X * 0 = 0 X*(X + Y) =X X * (X + Y) = X *Y 0 * X = 0 X * 1 = X 1 * X = X Propiedades de la OR. Combinando. Doble complemento. X + 0 = X X * X = X 0 + X = X X * X = 0 X = X X + 1 = 1 X + X = X 1 + X = 1 X +X = 1 Leyes de Morgan de la complementacin. X + Y =X * Y X * Y = X + Y

    1.6 Minitrminos y Maxitrminos. 1.6.1 Minitrminos.(Suma de Productos).(m) Una forma de sintetizar una funcin es a partir de la tabla de verdad.

    Suma de productos.- Si en cada trmino de la funcin aparecen todas las variables, a esta

    expresin se le llama funcin cannica externa (FCA) o suma de productos estndar.

    Ejemplo.-

    F (C, B, A) = A +AB + ABC suma de productos. F (C, B, A) = ABC + ABC + ABC FCA. A los trminos que tienen todas las variables se les llama minitrminos.

    Para obtener la FCA partiendo de una tabla de verdad, se procede con lo siguiente:

    Se toman los renglones donde la funcin es 1, si la variable es 1 se deja tal cual, si es cero

    se niega, despus se suman lgicamente los productos lgicos correspondiente a dicho

    rengln.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 21 Ejemplo:

    1.6.2 Maxitrminos.(Productos de Suma).(M)

    Cuando en cada trmino ( producto) aparecen todas las variables se llama maxitrmino y a

    la expresin formada por maxitrminos se le llama funcin cannica conjunta o producto

    de suma estndar (FCC).

    F(C, B, A) = (A + B)( C + A) productos de suma F(C, B, A) = (A +B + C)(A + B +C) FCC

    B A F 0 0 0 0 1 1 1 0 1 1 1 0

    F = AB +AB

    Una FCC se obtiene de una tabla de verdad de la forma siguiente:

    Se toman de la columna de salida los ceros, si la variable es uno se niega, si es cero se deja

    tal cual, despus se multiplican lgicamente los maxitrminos asociados a cada rengln.

    1.6.3 Minimizacin de funciones combinacionales.

    La tarea de un diseador lgico consiste en implementar una funcin lgica al mnimo

    costo.

    Mtodos de Minimizacin:

    Veitch Karnaugh Quine McCluskey

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 22 1.7 Mapas de Karnaugh. As como una tabla de verdad representa una funcin lgica, en los mapas se asocia un rea

    a la combinacin de las variables y la funcin se representa por un 1 o un 0 en dichas

    reas. Mapas de Karnaugh.

    F Mapas de Karnaugh

    1.7.1 Definicin.

    Dos trminos son lgicamente adyacentes cuando difieren en una variable

    AB C ABC

    DC B A DCBA

    0 1

    0 0 1

    00 01 11 1000 01 11 10

    00 01 11 10

    0

    1

    No son lgicamente adyacentes.

    Son lgicamente adyacentes

    Cuatro variables.Tres variables.

    Una variable.

    Dos variables.

    Aprenda PLDs Principios y Aplicaciones. L.igura 1.2 1 nicamente. Gerardo Flores R.

  • 23 Una funcin ser mnima cuando contiene el mnimo nmero de trminos y cada trmino el

    nmero mnimo de variables.

    El proceso de Minimizacin es el siguiente:

    Del mapa de Karnaug se asocia el mximo nmero de unos (ser en potencia de dos, o

    sea, 1, 2, 4, 8, ) que

    El proceso de Minimiz

    El trmino minimizado

    hayan sido asociados s

    1.7.2 Redundancias.(En ciertas ocasiones l

    entrada, ya que estas c

    importa (dont care)

    smbolos y se les llama

    Redundancias

    En el proceso de mini

    convenga.

    Aprenda PLDs Principhsean lgicamente adyacentes entre s.

    acin se lleva a cabo por una aplicacin interactiva del teorema:

    AB +AB = A. contendr las variables que no cambian, as mismo, los unos que

    e pueden volver a asociar segn el teorema:

    A +A = A.

    00 01 11 10 00 1 0 0 0 01 1 1 1 0 11 1 1 1 0 10 1 0 0 0 F = WY +WX

    Figura 1.3 Ejemplo de minimizacin.

    d)

    a funcin no depende de ciertas combinaciones de las variables de

    ombinaciones no se presentan. Se dice que el valor de la funcin no

    . En la columna de salida esto se representa por los siguientes

    redundancias:

    X

    *

    mizacin la redundancia se toma como uno como cero segn ms

    ios y Aplicaciones. L. Gerardo Flores R.

  • 24 Ejemplo.- Implementar la siguiente funcin:

    F = m(0, 3, 4, 8, 12) + d(1, 2, 10)

    00 01 11 10 00 1 X 1 X 01 1 0 0 0 11 1 0 0 0 10 1 0 0 X

    F = AB + CD

    D C B A

    F

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 25 2. DISPOSITIVOS LGICOS PROGRAMABLES.

    2.1 Qu es la lgica programable?. La lgica programable, como el nombre implica, es una familia de componentes que

    contienen conjuntos de elementos lgicos (AND, OR, NOT, LATCH, FLIP-FLOP) que

    pueden configurarse en cualquier funcin lgica que el usuario desee y que el componente

    soporte.

    Todas las entradas pueden conectarse a una misma compuerta AND, pero cada compuerta

    AND est conectada a una determinada compuerta OR de salida. Los dispositivos PLDs

    surgieron como un compromiso entre desempeo y flexibilidad-costo. Las PLA tienen

    mayor flexibilidad debido a que tienen tanto la matriz AND como la OR programables,

    pero eso implica un menor rendimiento. Con una sola matriz programable, las PALs ganan

    velocidad a costa de la prdida de un poco de flexibilidad eso se compensa mediante la

    oferta de varias configuraciones bsicas y la incorporacin de las GALs, sobre las cuales

    trataremos unas lneas ms adelante.

    Hay varias clases de dispositivos lgicos programables: ASICs, FPGAs, PLAs, PROMs,

    PALs, GALs, y PLDs complejos.

    2.1.1 ASIC.

    ASIC significa Circuitos Integrados de Aplicacin Especfica y son dispositivos definibles

    por el usuario. Los ASICs, al contrario que otros dispositivos, pueden contener funciones

    analgicas, digitales, y combinaciones de ambas. En general, son programables mediante

    mscara o sea, que los fabricantes configuran el dispositivo segn las especificaciones del

    usuario, y no por el usuario. Se usan para combinar una gran cantidad de funciones lgicas

    en un dispositivo. Sin embargo, estos dispositivos tienen un costo inicial alto, por lo tanto

    se usan principalmente cuando se necesitan en una gran cantidad. Los encontramos por

    ejemplo en los telfonos celulares, juegos de video,...,etc.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 26 2.1.2 PROM.

    Las PROM son memorias programables de slo lectura. Aunque el nombre no implica la

    lgica programable, las PROM, son de hecho lgicas. La arquitectura de la mayora de las

    PROM consiste generalmente en un nmero fijo de trminos AND que alimenta una matriz

    programable OR. Se usan principalmente para decodificar las combinaciones de entrada en

    funciones de salida.

    Aprenda

    AND FIJA

    OR PROGRAMABLE

    Figura 2.1 Arquitectura elemental del PROM

    PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 27 2.1.3 PAL.

    Las PAL son dispositivos de matriz programable. La arquitectura interna consiste en

    trminos AND programables que alimentan trminos OR fijos. Todas las entradas a la

    matriz pueden ser combinadas mediante AND entre si, pero los trminos AND especficos

    se dedican a trminos OR especficos. Las PAL tienen una arquitectura muy popular y son

    probablemente el tipo de dispositivo programable por usuario ms empleado. Si un

    dispositivo contiene macroclulas, comnmente tendr una arquitectura PAL. Las

    macroclulas tpicas pueden programarse como entradas, salidas, o entrada / salida (E/S)

    usando una habilitacin tri-estado. Normalmente tienen registros de salida que pueden

    usarse o no conjuntamente con el pin de E/S asociado. Otras macroclulas tiene ms de un

    registro, varios tipos de retroalimentacin en las matrices, y ocasionalmente realimentacin

    entre macroclulas.

    AND PROGRAMABLE

    OR FIJO

    Figura 2.2 Arquitectura elemental del PAL.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 28 2.1.4 GAL.

    Las GAL son dispositivos de matriz lgica genrica. Estn diseados para emular muchas

    PAL pensadas para el uso de macroclulas. Si un usuario tiene un diseo que se

    implementa usando varias PAL comunes, puede configurar varias de las mismas GAL para

    emular cada de uno de los otros dispositivos. Esto reducir el nmero de dispositivos

    diferentes en existencia y aumenta la cantidad comprada. Comnmente, una cantidad

    grande del mismo dispositivo debera rebajar el costo individual del dispositivo. Estos

    dispositivos tambin son elctricamente borrables, lo que los hace muy tiles para los

    ingenieros de diseo.

    2.1.5 PLA.

    Las PLA son matrices lgicas programables. Estos dispositivos contienen ambos trminos

    AND y OR programables lo que permite a cualquier trmino AND alimentar cualquier

    trmino OR. Las PLA probablemente tienen la mayor flexibilidad frente a otros

    dispositivos con respecto a la lgica funcional. Normalmente poseen realimentacin desde

    la matriz OR hacia la matriz AND que puede usarse para implementar mquinas de estado

    asncronas. La mayora de las mquinas de estado, sin embargo, se implementan como

    mquinas sncronas. Con esta perspectiva, los fabricantes crearon un tipo de PLA

    denominado Secuencial (Sequencer) que posee registros de realimentacin desde la salida

    de la matriz OR hacia la matriz AND.

    Figura 2.3 Arquitectura elemental de un PLA.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 29 2.1.6 PLDs complejos.

    Los PLDs complejos son lo que el nombre implica, Dispositivos Complejos de Lgica

    Programable. Se consideran PAL muy grandes que tienen algunas caractersticas de las

    PLA. La arquitectura bsica es muy parecida a la PAL con la capacidad para aumentar la

    cantidad de trminos AND para cualquier trmino OR fijo. Esto se puede realizar quitando

    trminos AND adyacentes o empleando trminos AND desde una matriz expandida. Esto

    permite que cualquier diseo pueda ser implementado dentro de estos dispositivos.

    2.1.7 FPGA.

    Las FPGA son Campos de Matrices de Puertas Programables. Simplemente son matrices de

    puertas elctricamente programables que contienen mltiples niveles de lgica. Las FPGA

    se caracterizan por altas densidades de puerta, alto rendimiento, un nmero grande de

    entradas y salidas definibles por el usuario, un esquema de interconexin flexible, y un

    entorno de diseo similar al de matriz de puertas. No estn limitadas a la tpica matriz

    AND-OR. Por contra, contienen una matriz interna configurable de relojes lgicos (CLBs)

    y un anillo de circunvalacin de bloques de E/S (IOBs).

    Cada CLB contiene lgica programable combinacional y registros de almacenamiento. La

    seccin de lgica combinacional es capaz de implementar cualquier funcin booleana de

    sus variables de entrada.

    Cada IOB puede programarse independientemente para ser una entrada, y salida con

    control tri-estado o un pin bidireccional. Tambin contiene flip-flops que pueden usarse

    como buffers de entrada y salida. Los recursos de interconexin son una red de lneas que

    corren horizontalmente y verticalmente las filas y columnas entre el CLBS.

    Los interruptores programables conectan las entradas y salidas de IOBS y CLBS a lneas

    cercanas. Las lneas largas recorren la anchura o longitud entera del dispositivo,

    estableciendo intercambios para proporcionar una distribucin de seales crticas con la

    mnima demora o distorsin.

    Los diseadores que usan FPGAs pueden definir funciones lgicas en un circuito y revisar

    estas funciones como sea necesario. As, las FPGAs pueden disearse y verificarse en unos

    das, a diferencia de las varias semanas necesarias para las matrices de puerta

    programables.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 30

    Figura 2.4 Arquitectura elemental de un FPGA.

    2.2 Ventajas del uso de PLDs.

    Reduccin de retardos de propagacin de las lgicas. Reduccin del nmero de puntos de soldadura y de cables o pistas. Con

    ello se logra aumentar la confiabilidad.

    Facilidad para cambiar el diseo. Menor nmero de circuitos integrados, y por ende, disminucin del

    consumo de energa y de las fuentes posibles de ruido y aumento de la

    confiabilidad del circuito.

    Menor superficie ocupada en la placa. Proteccin del diseo (fusible de seguridad). Su tiempo de propagacin ronda los 5 a 10 ns, equivalente al de las

    Aprencompuertas que puede reemplazar; pero con una sola PLD se pueden

    da PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 31

    reemplazar varios niveles o retardos de compuertas.

    Facilidad de diseo y montaje. Reduccin de la variedad de circuitos integrados usados en el circuito,

    disminuyendo su costo de produccin seriada.

    Optimizacin del diseo a bajo costo.

    2.3 Limitaciones de las PLDs.

    Las PAL son OTP, es decir, slo se pueden programar una vez. Su precio es un poco mayor a las compuertas simples o

    compuestas.

    No se encuentran comnmente en tiendas comerciales de electrnica.

    Dado que el nmero de minitrminos es limitado, algunas lgicas necesitaran varios PLDs para ser implementadas y quizs resulta ms

    simple y menos costoso implementarla con compuertas.

    2.4 Seleccin del modelo adecuado para cada aplicacin. Caractersticas a evaluar:

    Nmero de entradas. Nmero de salidas. Nmero de lneas de E/S. Polaridad de salida. Salidas combinacionales. Salidas XOR. Salidas de registro (R-S, J-K, D T ; en general D). Salidas TRI-STATE. Nmero de minitrminos. Realimentacin de salidas. Macroceldas.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 32 2.5 Nomenclatura generalizada de las PLDs. Tecnologa:

    PAL = Programmable Array Logic (TTL) GAL = Generic Array Logic (E2CMOS) PL = Factory Programmed PAL Nmero de Entradas Tipo de Salida: L = Activa Baja H = Activa Alta C = Complementaria P = Polaridad Programada V = Variable (GAL solamente) Z = Reprogramable en el sistema (GAL) Nmero de Salidas Velocidad: Sin smbolo = 35 ns (TTL) A = 25 ns (TTL) B = 15 ns (TTL) D = 10 ns (TTL) A-10 = 10 ns (GAL) A-12 = 12 ns (GAL) A-20 = 20 ns (GAL) Tipo de Paquete: N = DIP de Plastico J = DIP de Cermica Rango de Temperatura: C = Comercial M = Militar I = Industrial (GAL solamente). GAL 16 V 8 D N I

    2.6 PALs programables varias veces : serie PALCExxx y GALs. Las GALs tienen macroceldas programables. Son ms caras que las PALs pero pueden

    implementar diseos hechos para varios tipos de PALs. No necesitan ser borradas

    previamente a su programacin y permiten la reprogramacin en campo de pruebas. Los

    circuitos PALCExxx son PLDs de la compaa Advance Micro Devices (AMD), son

    equivalentes a los circuitos GALs de la compaa Lattice. Los PALxxVxx son

    reprogramables, donde la compaa Altera tiene EEPLDs (Elctricamente borrables).

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 33 A continuacin se pueden ver tres figuras, que muestran las estructuras de las GAL16V8 y

    GAL20V8 y la constitucin de sus macroceldas (OLMCs).

    Figura 2.5 Estructuras de las GAL16V8 y GAL20V8.

    Figura 2.6 Constitucin de Macroceldas de salida lgica (OLMCs) de un GAL.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 34 2.7 Fabricantes de PALs y GALs.

    AMD. Altera. Atmel. Lattice. Texas Instruments. Xilinx.

    2.8 Programacin de los PLDs.

    Se necesitan algunos equipos para disear y construir circuitos con el empleo de PLD:

    Computadora personal (PC) Software para creacin y desarrollo de PLD (WinCUPL, ABEL,...,etc) Aparato o dispositivo programador (Programador de PLDs) Software para excitar el aparato programador (Software del programador de

    PLDs).

    Dispositivo de lgica programable (PAL, GAL,...,etc.)

    En la figura 2.7 se muestra una disposicin tpica para programacin. La PC, en la cual se

    corre el software para desarrollo, traduce el diseo de entrada a un archivo llamado

    trazado de fusibles. Este archivo es como un mapa que muestra cules fusibles se deben

    fundir para abrirlos en un dispositivo programable y cules deben permanecer intactos.

    Luego, el trazado de fusibles se traduce a un formato de archivo de salida adecuado para

    transmisin al aparato de programacin de dispositivos.

    En seguida, se llama en la PC al software de programacin que se comunica con el aparato

    de programacin. Esto permite al usuario informar al aparato de programacin el tipo de

    dispositivo

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 35 que se va a programar. Despus se enva el archivo de salida por un cable al programador.

    Este proceso se llama carga. Finalmente, se introduce el PLD en la base del aparato

    programador y se enva la orden desde la computadora para programar la pieza.

    Figura 2.7 Sistema necesario para el desarrollo de un PLD.

    Los aparatos para programacin suelen tener una base especial que permite dejar caer el

    microcircuito y, luego, sujetar los contactos con las terminales. Esta base se llama de fuerza

    nula para insercin (ZIF). Muchos fabricantes disponen numerosos programadores

    universales que pueden programar casi cualquier tipo de dispositivo, incluso PROM,

    EPROM, microcomputadoras de un solo microcircuito y un buen nmero de PLD.

    Afortunadamente, conforme hubieron ms piezas programables, los fabricantes sintieron la

    necesidad de uniformizar (estandarizar) las asignaciones de terminales y los mtodos de

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 36 programacin. Como resultado, se constituy el Joint Elearonic Device Engineering

    Council (JEDEC). Uno de los resultados fue la norma (estndar) JED, un formato normal

    para transferir los datos de programacin para los PLD, independientes de cualquiera que

    fuere el fabricante del dispositivo o el software de programacin. Tambin se normalizaron

    las asignaciones de terminales, para diversos paquetes de Circuitos Integrados, a fin de

    hacer los programadores universales menos complicados. En consecuencia, los aparatos

    para programacin pueden programar numerosos tipos de PLD. El software que permite al

    diseador especificar una configuracin para un PLD, slo necesita producir un archivo de

    salida que cumpla con la norma JEDEC. Luego, este archivo JEDEC se puede cargar en

    cualquier programador de PLD compatible con JEDEC, que tenga capacidad para

    programar el tipo deseado de PLD.

    El proceso de generar un archivo JEDEC para transferir un diseo al aparato programador

    de PLD sera muy tedioso si se hiciera a mano. En los ltimos 10 aos se ha producido

    software de desarrollo que permiten al usuario utilizar su diseo en alguna forma

    conveniente y, luego, crear en forma automtica el archivo JEDEC para el dispositivo

    especificado.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 37 3. COMPILADOR UNIVERSAL PARA LA LOGICA PROGRAMABLE

    (WinCUPL).

    Hay diferentes instrumentos de software para desarrollar los PLD. Todos tienen semejanzas

    compartidas y sus diferencias distintivas. Para los ejemplos que presentaremos ms

    adelante, utilizaremos uno de los compiladores disponibles de alto nivel de uso ms extenso

    en la actualidad, se llama WinCUPL, se puede adquirir de la compaa Logical Devices. El

    WinCUPL puede producir archivos de programacin para una gran variedad de dispositivos

    programables.

    Este software de desarrollo esta constituido de cuatro mdulos diferentes :

    WinCUPL .- Es la comunicacin con el usuario y cuenta con todas las herramientas de la

    compilacin.

    WinSim.- Simula grficamente el diseo del usuario para su verificacin, antes de

    programar el dispositivo programable.

    Schematic.- Esta herramienta es usada para crear un diagrama esquemtico, muy til para

    el anlisis inicial del diseo. Si el diagrama pasa la validacin del proceso,

    crea un cdigo fuente, el cual deber ser compilado y simulado.

    SMCupl.- Esta es una herramienta para crear diagramas de estado, (mquinas de

    estado). Si el proceso de validacin es aceptado, se genera un archivo fuente,

    que ser compilado y simulado despus.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 38 3.1 Flujo de Datos.

    En la figura 3.1, se ilustra el flujo de datos para crear un diseo usando WinCUPL.

    .PLD Archivo fuente

    .SI Archivo simulacin

    .DOC Archivo documento. Ecuaciones, matriz de fusibles

    .LST Archivo con la lista de errores

    .MX Archivo macro expansin

    .SO Archivo salida del simulador

    .ABS Archivo absoluto ( Diseo en forma binaria)

    .JED(1) Archivo JEDEC sin vectores

    .JED(2) Archivo JEDEC con vectores

    .HL Archivo en formato para los PLDs Signetics

    .HEX Archivo ASCII

    .PLA Archivo en formato PALASM de Berkeley

    WinSim SMCupl Schematic WinCUPL

    Descripcin de las extensiones de los archivos

    Figura 3.1 Flujo de datos del WinCUPL

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 39 3.2 Ciclo de "desarrollo".

    El primer paso en cualquier diseo es la definicin minuciosa del problema y su alcance. El

    resultado de este paso son las etiquetas para todas las entradas y salidas. Tambin se define

    la relacin entre todas las entradas y salidas y se puede expresar en numerosas formas, tales

    como tablas de verdad, tablas de estado, ecuaciones lgicas e incluso diagramas lgicos. El

    segundo paso es crear el archivo de entrada o fuente en el formato requerido por el

    compilador. En seguida, se llama al compilador y se le da el nombre del archivo de entrada.

    Con el proceso de compilacin se produce un buen nmero de diferentes archivos de salida.

    El archivo de documentacin (DOC para el CUPL) contiene cualquier mensaje de error

    generado por el compilador. El archivo de trazado de fusibles muestra el patrn real de

    fusibles que se fundirn para unirlos en el dispositivo programable. Este archivo tambin se

    puede convenir al archivo JEDEC que utilizar el programa (es decir, el aparato de progra-

    macin).

    Si el compilador genera cualquier mensaje de error, hay que determinar la causa y

    corregirla con el empleo del editor de textos para alterar el archivo de entrada. Este proceso

    se repite hasta que ya no hay errores ni advertencias. En este punto, se puede probar el

    diseo con el empleo de un simulador; ste es un programa de computadora que calcula los

    estados lgicos de salida con base en la descripcin del circuito lgico y de las entradas en

    curso. Se produce un grupo de entradas hipotticas que probarn que el dispositivo trabaja

    como se espera. Se les llama vectores de prueba. Si estos vectores son lo suficientemente

    minuciosos, se puede probar el diseo antes de programar el primer dispositivo. Cuando el

    diseador est convencido que el diseo funcionar, se genera el archivo JEDEC y se llama

    al software de programacin. El archivo JEDEC sirve como archivo de entrada para el

    programador y el PLD se coloca en el aparato programador. Muchos aparatos

    programadores tambin tienen capacidad no slo de programar la pieza, sino tambin de

    corregir los vectores de prueba en la entrada, mientras que vigila la salida. Con esto se

    comprueba que el PLD funcionar a la perfeccin. Despus se coloca el PLD en un circuito

    y se prueba su funcionamiento con todos los componentes perifricos. En el diagrama de

    flujo de la figura 3.2 se demuestra el proceso completo para el proceso de desarrollo.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 40

    No

    S

    No

    No

    S Hay errores?

    Solucin de errores

    Determinar falla del diseo

    Editar archivo fuente

    Simular

    Compilar

    Crear archivo fuente

    Diseo

    Hproblemas?

    Figura 3.2 Diagr

    Aprenda PLDs Principios y Ap

    Prueba e

    Program

    Crear arc

    Func

    ama de flujo d

    licaciones. ay ar el PLD

    hivo JEDECn el circuito S iona?

    el ciclo de desarrollo de PLDs.

    L. GerHECHO

    ardo Flores R.

  • 41 3.3 Medio ambiente del WinCUPL.

    Al invocar el WinCUPL nos aparece la pantalla de la figura 3.3, explicaremos en que se

    dividen y su funcionamiento.

    Comandos de la barra de herramientas.

    Seccin de notificacin de errores.

    Seccin de archivos generados.

    Seccin de edicin.

    Figura 3.3 Pantalla general del WinCUPL.

    Men de comandos de archivo.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 42

    3.3.1 Comandos de la barra de herramientas.

    Abrir un nuevo archivo.

    sitivo.

    Aprenda PLDs MS-DOS (opcional).

    SMCupl (opcional). atic (opcional).

    mador (opcional).

    PSchem

    Progra nal).

    os (opcional).

    c y WinSim (opcional). Invoca SMCupl, SchematiWinSim (opcio

    Editor de macr Calculadora de Windows (opcional).

    Windows explorer (opcional). Simular dependiendo del dispositivo.

    Simular virtualmente. Compila dependiendo del dispo

    Compila virtualmente. Copiar.

    Pegar. Imprimir.

    Cortar. Abrir un archivo existente.

    Salvar archivo. rincipios y Aplicaciones. L. Gerardo Flores R.

  • 43 3.3.2 Comandos del men File:

    El me frece los siguientes comandos: n File o

    ecto archivo texto.

    .

    vo nombre.

    rtos.

    istente.

    oject

    Import Importa archivo fuente escrito en un lenguaje diferente y lo convierte a

    etup impresora seleccionada.

    ... s activos ms recientemente usados.

    xit Salir del WinCupl.

    New Crea un nuevo diseo, proy

    Open Abre un archivo existente

    Close Cierra la ventana activa.

    Save Salva el archivo activo.

    Save As Salva el archivo activo con un nue

    Save All Salva todos los archivos abie

    Open Project Abre un proyecto ex

    Close Pr Cierra el proyecto.

    cdigo fuente del CUPL.

    Export Exporta cdigo fuente CUPL a otro lenguaje.

    Print S Enva el documento activo a la

    Print Imprime el documento activo.

    MRU Contiene los archivo

    E

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 44 3.3.3 Comandos del men Edit:

    El men edit es desplegado cuando la ventana activa es un documento. El men ofrece los

    tes com

    comando o accin del comando.

    do.

    t

    laza

    Update Macro Symbol Table Actualiza el macro-smbolo de la tabla a macro-

    aria.

    entas.

    ar

    siguien andos:

    Undo Invierte la ltima edicin del

    Cut Borra el texto seleccionado.

    Copy Copia el texto seleccionado.

    Paste Pega el texto selecciona

    Find Buscar texto.

    Find Nex Sigue buscando texto.

    Replace Encuentra y remp el texto por otro.

    Insert CUPL Macro Reference Inserta un macro-referencia del CUPL.

    Insert CUPL Macro Definition Inserta un macro-definicin del CUPL.

    referencia.

    Insert Table Inserta una tabla bin

    3.3.4 Comandos del men View:

    El men de comandos View ofrece las siguientes opciones:

    Toolbar Presenta o esconde la barra de herrami

    Status B Presenta o esconde la barra de status.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 45 Projec Presenta o esconde la vet ntana del proyecto al lado derecho del usuario.

    formatos desplegados en el editor.

    CUPL.

    r

    .

    del medio ambiente del WinCUPL.

    l dispositivo.

    omp

    el circuito

    mente.

    HDL Analysis Corre el anlisis de un archivo VHDL.

    Font Cambia el tipo de letra.

    Refresh Actualiza los colores y

    3.3.5 Comandos del man Options:

    El men de Options ofrece los siguientes comandos:

    Compiler Activar las opciones del compilador

    Simulato Activar las opciones del simulador.

    VHDL Activar las opciones de anlisis y compilacin del VHDL

    WinCUPL Activar las opciones

    3.3.6 Comandos del men Run:

    El men Run ofrece los siguientes comandos:

    Device Dependent Compile Compila dependiendo de

    Device Independent Compile C ila virtualmente.

    Device Dependent Simulation Simula dependiendo d

    Device Independent Simulation Simula virtual

    VHDL Compile Compila un archivo VHDL.

    V

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 46 3.3.7 Comandos del men Utilities:

    El men U ies ofrece los siguientes cotilit mandos:

    tition.

    ramientas dwl Win CUPL.

    ind w ofre

    da.

    .

    nos de ventanas cerradas.

    n .

    bout WinCupl Despliega el nmero de versin para esta aplicacin.

    BackPin Corre la utilera BackPin.

    PlPartition Configura y corre la utilera PlPar

    ISP Download Corre la utilera ISP Download.

    CUPL Tools Despliega las cuatro her

    3.3.8 Comandos del men Window:

    El men W o ce los siguientes comandos:

    Cascade Despliega las ventanas en forma de casca

    Tile Horizontal Despliega las ventanas horizontalmente

    Tile Vertical Despliega las ventanas verticalmente.

    Arrange Icons Despliega co

    3.3.9 Comandos del men Help:

    El men Help ofrece los siguientes comandos:

    Contents Ofrece un ndice de temas para obtener ayuda.

    Search For Help O Despliega el dalogo de bsqueda para temas de ayuda

    A

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 47

    acteres alfanumricos (strings) que especifican los pines del elemento,

    odos internos, constantes, seales de entrada, seales de salida, seales intermedias o

    as variables pueden iniciar con un nmero, un carcter alfabtico o un subrayado (_), pero

    o se aceptan espacios dentro de un nombre de variable. Use el subrayar para separar

    as variables no pueden contener un smbolo reservado del CUPL. (Mas adelante estn

    s introducidas en el archivo fuente deben ser escritas con sintaxis inglesa,

    l CUPL no entiende las tildes, la ~, los apstrofes, la diresis, etc. No los permite an en

    .4.2 Palabras y smbolos reservados.

    3.4 Elementos del lenguaje. 3.4.1 Variables.

    Son cadenas de car

    n

    estados de seales.

    L

    debe contener al menos un carcter alfabtico.

    Las variables distinguen entre las maysculas y las minsculas.

    N

    palabras.

    Las variables pueden contener hasta 31 caracteres.

    L

    listados).

    No pueden usarse palabras reservadas del CUPL como nombres de variables.

    Todas las palabra

    e

    los comentarios.

    33.4.2.1 PALABRAS RESERVADAS

    APPEND FORMAT PIN

    ASSEMBLY FUNCTION PINNODE

    ASSY IF PRESENT

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 48

    SEQUENCET

    FIELD OUT TABLE

    -

    ( ^ =

    '

    .4.3 Comentarios.

    mbolos /* y */.

    a lista es comnmente usada en la declaracin de pines y nodos, campos de bits,

    ecuaciones lgicas y operacio es como sigue:

    le, variable, .., variable]

    ables.

    COMPANY JUMP REV

    CONDITION LOC REVISION

    DATE LOCATION SEQUENCE

    DEFAULT MACRO SEQUENCED

    DESIGNER MIN SEQUENCEJK

    DEVICE NAME SEQUENCERS

    ELSE NODE

    FLD PARTNO

    3.4.2.2 SMBOLOS RESERVADOS.

    & + [ /*

    * . ] */

    : , /

    ; $ !

    @

    # )

    3

    Van encerrados entre los s

    3.4.4 Notacin de listas.

    L

    nes de agrupamiento. El formato

    [variab

    donde:

    [ ] denotan un conjunto de vari

    Ejemplos:

    [UP, DOWN, LEFT, RIGHT]

    [A0,Al,A2,A3]

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 49

    un conjunto de variables indicadas secuencialmente se colocan de menor a

    eso, as:

    del ndice sern removidos, es decir:

    00..03] ser ledo como [A0, Al, A2, A3] no como [A00, A0l, A02, A03].

    ribirse como:

    ntilla. e asiste al usuario en la edicin del archivo fuente y que se muestra a

    ;

    ion XXXXX;

    ************************************************************/

    arget Device Types: */

    ******************************************************/

    Cuando es

    mayor p

    [Variable m. .n]

    Ejemplo:

    [A0..3]

    Los ceros a la izquierda

    [A

    La lista [A0. .7] puede esc

    [A0..2, A3, A4, A5..7]

    3.4.5 Archivo PlaEs un archivo quontinuacin: c

    ame XXXXX; N

    artno XXXXXP

    ate XX/XX/XX; D

    evision XX; R

    esigner XXXXX; D

    ompany XXXXX; C

    ssembly XXXXX; A

    ocatL

    ****/

    * */ /

    * */ /

    ****************************************************************/ /

    * Allowable T/

    **********/

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 50

    * Inputs **/

    in = ; /* */

    in = ; /* */

    in = ; /* */

    in = ; /* */

    in = ; /* */

    * Declarations and Intermediate Variable Definitions **/

    /** g

    Este archivo contiene las siguientes secciones:

    Informacin de cabecera : Palabras reservadas acompaadas de XXXs que se

    La declaracin NAME es muy importante, pues el nombre que se escriba aqu ser

    compilacin. (.LST,

    Un ejem la informacin de cabecera es el siguiente:

    /* P P P Pin = ; /* */ Pin = ; /* */ /** Outputs **/

    P P Pin = ; /* */ Pin = ; /* */

    /*

    Lo ic Equations **/

    reemplazan con los textos que identificarn el archivo para hacer revisiones

    posteriores.

    el mismo con el que se generarn todos los archivos durante la

    .DOC, .JED, etc.).

    plo del formato de

    Name CODER

    Partno P9000285;

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 51

    s;

    Location none;

    Device P22V10;

    Format j;

    a compaa, (como el NIT).

    chivo.

    programada.

    Location : cdigo de localidad estadounidense. Nosotros la declaramos "none".

    l archivo plantilla provee todas las declaraciones excepto DEVICE y FORMAT. Estas son

    i se deja alguna informacin sin declarar el CUPL emite un mensaje, pero contina con la

    com l

    en este

    Revision 02;

    Date 10/14/95;

    Designer Gerardo Flore

    Company U A de C;

    Assembly none;

    Partno : identifica el nmero de un Revisin : aumenta su nmero cada vez que se entra en el ar Date: se renueva cada vez que se entra en el archivo. Designer : nombre del diseador. Assembly : tarjeta PC donde trabajar la PLD Device : cdigo de la PLD a utilizar. Format: formato en el cul se va a compilar.

    E

    opcionales de ser declaradas, al fin y al cabo, en el momento de correr CUPL deben

    declararse.

    S

    pi acin. No ocurre lo mismo si se utilizan smbolos que indican acento (como tildes),

    caso se emite el mensaje y la compilacin se detiene.

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 52

    Declaracin de pines: Palabras reservadas y operadores propios del formato de

    as lneas /*Input*/ y /*Output*/ son slo de lectura y no interfieren en la compilacin, as

    que

    utilizan no se debe caer en el error

    e declararlos dos veces, pues se causara un error de compilacin.

    e variables intermedias : Espacio para declarar campos de bits (registros) y para escribir ecuaciones intermedias.

    cio para escribir las ecuaciones lgicas que describen el

    3.4.6.1 Declaracin de pines.

    Declarar los pines es definir los nom ue se asignan a los nmeros de pin

    an a utilizar. Cada elemento en la librera tiene los pines ya numerados.

    PIN pinn = [!]var;

    donde:

    inn es un nmero decimal, o una lista de nmeros agrupados usando la notacin de listas,

    Bloque titular: Smbolos de comentarios que encierran un espacio para llenarlo con la descripcin del diseo que se va a implementar y las posibles PLDs que aceptan

    tal diseo.

    declaracin de pines de entrada y salida. Espacios de comentario para describir las

    funciones de cada pin. Las lneas sobrantes de declaracin de pin deben ser

    removidas, de otra forma se producir un error de sintaxis en la compilacin.

    L

    se pueden declarar los pines como se desee. Esta aclaracin se hace por que a veces se

    pines que hacen la funcin de entrada y salida a la vez y

    d

    Declaraciones y definicin d

    Ecuaciones lgicas: Espa

    funcionamiento de la PLD.

    3.4.6 Declaracin de Pines y Campos.

    bres de variables q

    que se v

    El formato para declarar un pin es el siguiente:

    p

    que es:

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 53

    [pinn1, pinn2, pinn3,, pinnn]

    es el operador de asignacin

    ar es un nombre de variable una lista de nombres de variables usando la notacin de

    stas, as:

    laracin.

    pines son:

    in 1 = clock; /*Reloj de registro*/

    o) no se especifica en la

    eclaracin de los pines. El compilador infiere la naturaleza del pin durante el proceso

    siguiendo la e nombre de variable de dicho pin. Si la

    ror denotando el uso impropio del pin.

    3.4.6.2 Declar

    laracin de campos de bits asigna un nombre de variable a un grupo de bits. El

    LD var = [var, var, var,..., var];

    ! es un signo de admiracin opcional que define la polaridad de la seal de entrada salida.

    =

    v

    li

    [var1 ,var2,..,varn]

    ; es el punto y coma que marca el fin de la dec

    Algunos ejemplos de declaraciones vlidas de

    p

    pin 2 = !enable; /*Habilita I/O de la puerta*/

    pin[3,4] = ! [stop,go] /*Control de seales*/

    pin[5..7] = [a0..2] I*Direcciona bits 0-2*/

    La naturaleza del pin (entrada, salida bidireccionamient

    d

    specificacin lgica hecha para el

    especificacin lgica y las caractersticas fsicas del integrado son incompatibles, CUPL

    exhibe un mensaje de er

    acin de campos de bits.

    Una dec

    formato es el siguiente

    FIE

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 54

    IELD es una palabra reservada.

    ar es un nombre vlido de variable.

    es el operador de asignacin.

    a que marca el fin de la declaracin.

    efinicin de variables intermedias" del archivo fuente y provista por el archivo plantilla.

    .

    pera sobre el archivo fuente antes de ser pasado

    ciones del compilador. La siguiente es una lista de

    cesamiento disponibles:

    IF $UNDEF

    $IFDEF

    os es el primer carcter en todos los comandos de preprocesamiento y debe ser

    $DEFINE.

    ste comando reemplaza un string de caracteres por un nmero, smbolo u otro operador

    o. El formato es como sigue:

    donde:

    F

    v

    =

    ; es el punto y com

    La declaracin de campos de variables se coloca en la seccin de "declaraciones y

    d

    Despus de asignado un nombre de variable a un grupo de bits, puede usarse el nombre en

    una expresin. La operacin especificada en la expresin es aplicada a cada bit en el grupo.

    3.4.7 Comandos de Preprocesamiento

    La parte de preprocesamiento de CUPL o

    por el evaluador gramatical y otras sec

    los comandos de prepro

    $DEFINE $IFNDEF

    $ELSE $INCLUDE

    $END

    El signo pes

    usado en la columna uno de la lnea. Se puede escribir el comando en maysculas en

    minsculas.

    E

    especificad

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 55

    $DEFINE argumento1 argumento2

    UNDEF.

    cancela una instruccin $DEFINE. El formato es como sigue:

    $UNDEF argumento

    $INCLUDE.

    ste comando incluye un archivo especificado en el archivo fuente para ser procesado por

    formato es como sigue:

    $INCLUDE archivo

    $IFDEF.

    ste comando compila condicionalmente secciones de un archivo fuente. El formato es

    $IFDEF argumento

    $IFNDEF.

    ste comando condiciona la compilacin de secciones en el archivo fuente. El formato es

    omo sigue:

    $ENDIF.

    ste comando finaliza una condicin de compilacin inicializada con los comandos

    IFDEF $IFNDEF. El formato es como sigue:

    $ENDIF

    $

    Este comando

    E

    CUPL. El

    E

    como sigue:

    E

    c

    $IFNDEF argumento

    E

    $

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 56

    ELSE.

    Este comando invierte las condiciones de in definidas con los comandos $IFDEF

    mo sigue:

    radores Lgicos.

    sadas para expresiones booleanas.

    a sigu na li e os ope en su orden de mayor a menor prioridad en el

    pl ipcin

    & A&B AND

    A#B OR

    riables para indicar funciones especficas

    sociadas con los nodos internos principales de las PLDs. La siguiente es una lista de las

    r verifica el uso de la extensin para

    rm

    .

    .

    $

    compilac

    $IFNDEF. El formato es co

    $ELSE

    3.4.8 Ope

    CUPL maneja las cuatro operaciones bsicas estndar u

    L iente es u sta de s radores

    paquete.

    Operador Ejem o Descr

    ! !A NOT

    #

    $ A$B XOR

    3.4.9 Extensiones.

    Se pueden adicionar extensiones a nombres de va

    a

    extensiones soportadas por CUPL. El compilado

    dete inar si es vlida para la PLD especificada.

    Extensin Descripcin

    .D Entrada D de un flip-flop tipo D.

    .L Entrada D de un lazo transparente.

    .J Entrada J de un flip-flop tipo JK.

    .K Entrada K de un flip-flop tipo JK.

    .S Entrada S de un flip-flop tipo SR

    .R Entrada R de un flip-flop tipo SR.

    .T Entrada T de un flip-flop tipo T

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 57

    .

    te.

    flop.

    flop.

    ).

    tro D.

    .

    gistro T.

    in.

    KMUX Seleccionar como reloj de multiplexor.

    solamente los flip-flops que fsicamente se encuentran internamente

    os en ellas. Cuando los operadores en la expresin tienen el mismo nivel de

    .DQ Salida Q de un flip-flop tipo D

    .LQ Salida Q de un lazo transparen

    .AP Preset asncrono de flip-flop.

    .AR Reset asncrono de flip-flop.

    .SP Preset sncrono de flip-flop.

    .SR Reset sncrono de flip-

    .CK Reloj programable de flip-

    .OE Salida de habilitacin programable.

    .CA Matriz complemento.

    .PR Precargado programable.

    .CE Entrada CE de un flip-flop tipo D-CE habilitado.

    .LE Lazo habilitado programable.

    .OBS Observabilidad programable de nodos internos.

    .BYP Direccin de registro programable (register bypass

    .DFB Seleccin de ruta de realimentacin de regis

    .LFB Seleccin de ruta de realimentacin de lazo D

    .TFB Seleccin de ruta de realimentacin de re

    .IO Seleccin de ruta de realimentacin de p

    .INT Seleccin de ruta de realimentacin interna.

    .C

    .OEMUX Seleccionar tri-estado del multiplexor.

    .TEC Seleccin de fusible dependiendo de la tecnologa.

    El compilador acepta

    en la PLD especificada. Por ejemplo, el compilador no intentar emular un flip-flop tipo JK

    en una PLD que solo acepta registros tipo D.

    3.4.10 Expresiones.

    Las expresiones son combinaciones de variables y operadores que producen un nico

    resultado cuando son evaluadas. Una expresin puede estar compuesta de sub-expresiones.

    Las expresiones son evaluadas de acuerdo al nivel de prioridad de los operadores

    involucrad

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • 58

    pueden ser utilizados

    ara cambiar el orden de la evaluacin; la expresin en el interior del parntesis se evala

    rimero.

    a siguiente lista muestra el orden de evaluacin de las expresiones:

    prioridad la evaluacin se hace de izquierda a derecha. Los parntesis

    p

    p

    L

    Expresin tado

    A#B&C

    !(A&B)

    A#B&(C#D)

    !A&B

    (A#B)&C

    A#B&C#D

    A&C

    # B&C

    !A&B

    !A

    A#

    #!B

    D#

    Aprenda PLDs Principios y Aplicaciones. B&C Resul

    A#

    &C BA#

    B&C # B&D

    L. Gerardo Flores R.

  • 59 3.4.11 Ecuaciones Lgicas.

    ato para las ecuaciones lgicas es el siguiente:

    :

    ndo se usa una lista de variables la expresin es aplicada a cada variable de la

    s.

    es el operador de asignacin; este asigna el valor de una expresin a una variable grupo

    l operador complemento puede ser usado para expresar la ecuacin en lgica negativa. El

    lementada antes de ser asignada a la variable.

    e nodo), pues

    ueden ser escritas para un nombre de variable arbitrario. Una variable definida de esta

    as variables intermedias se colocan en la seccin de "declaraciones y definicin de

    provista por el archivo plantilla.

    El form

    [!]var[.ext] = exp;

    donde

    var es un nombre de variable una lista de nombres de variables usando la notacin de

    listas. Cua

    lista.

    .ext es una extensin opcional para asignar una funcin a los nodos principales internos de

    una PLD.

    exp es una expresin, es decir, una combinacin de variables y operadore

    =

    de variables.

    ! es un signo de admiracin opcional que define la polaridad de la seal.

    E

    operador se antepone al nombre de variable (sin espacios) y denota que la expresin al lado

    derecho de la ecuacin ser comp

    Las ecuaciones lgicas se colocan en la seccin "Ecuaciones Lgicas" del archivo fuente y

    provista por el archivo plantilla.

    Las ecuaciones lgicas no estn limitadas solamente a variables de pin ( d

    p

    manera es una variable intermedia. Utilizando variables intermedias se producen,

    generalmente, archivos fuente con mayor facilidad de lectura y comprensin.

    L

    variables intermedias" del archivo fuente y

    Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

  • Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.

    60 4. LOGICA COMBINACIONAL Hay tres formas de programar el PLD en la lgica combinacional:

    - Tabla de verdad.

    -

    Figura 4.1 Modo de programar el PLD.

    - Ecuaciones Booleanas.

    Diseo esquemtico.

  • 61

    im ir del men File

    New> , como se m

    de detectar el nmero primo de tres bits, donde A, B, y C

    y salidas,

    sin pinnodes, nos carga el WinCUPL el editor, como se muestra en la figura 4.3:

    4.1 Ejemplo usand

    El pr

    o tabla de verdad.

    er paso para crear un archivo PLD es abrir un nuevo diseo al oprim

    uestra en la figura 4.2: