Unidad IV

4.5. Circuitos lógicos programables

4.5.1. Memorias ROM y RAM

En la actualidad existen circuitos que se pueden programar para obtener funciones digitales diversas mediante un proceso de programación, llamados PLD (Programmable Array Logic), el uso de estos PLD, permite reducir considerablemente el número de circuitos requeridos para implementar una función lógica.

Existen en el mercado varios tipos de PLD como son:

  • Circuitos digitales de Memoria tipo: Solo lectura y de lectura-escritura
  • Circuitos lógicos programables tipo PLD y GAL
  • Una característica relevante de los sistemas digitales es su capacidad de almacenar una gran cantidad de datos en forma temporal o permanente, esto permite realizar las operaciones que se realizan por ejemplo en las computadoras, entre otras aplicaciones diversas.

    Memorias ROM o memorias de sólo lectura.

    Estas memorias ROM son de diferentes tipos los, que se diferencian por la forma de ser programados y borrados:

  • MROM, memoria ROM programada por máscara
  • Estas memorias son programadas por los fabricantes de acuerdo a los requerimientos del cliente y son exclusivamente de lectura, es decir no se pueden borrar ni reprogramar. Su uso es en la fabricación de gran cantidad de aparatos con la misma ROM, como son computadoras, celulares, entre otros. A estas memorias programables por máscara, se les conoce generalmente como memorias ROM.
  • PROM, memoria ROM programable.
  • Estas memorias son programadas una sola vez no se pueden borrar ni reprogramar, se usan en aplicaciones de menor volumen y/o en las que el usuario requiere guardar la secrecía de los datos programados, su programación se realiza a través de aparatos llamados programadores que pueden ser para alto o bajo volumen.
  • EPROM, memoria ROM programable y borrable,
  • Estas memorias el usuario las puede programar, borrar y reprogramar cuantas veces le sea necesario. Una vez programada es una memoria no volátil que mantendrá sus datos en forma indefinida, hasta que sea borrada. Estas memorias se borran con luz ultravioleta que se aplica a través de una ventanita de plástico transparente colocada en la parte superior del CI. Para que no se borren por accidente, esta ventanita es tapada con papel opaco a la luz ultravioleta
  • EEPROM, memoria ROM eléctricamente borrable
  • Estas memorias permiten ser borradas eléctricamente, lo cual supera, para ser borradas, la limitante de las EPROM. Otra ventaja es la facilidad de borrado y reprogramado por byte. Pero la desventaja es que requiere mayor complejidad y costo para la misma capacidad de almacenamiento que una EPROM.
  • A medida que aumenta la facilidad de borrado y programación aumenta el costo y tiempo de acceso a los datos, pudiendo ser esto una característica para la decisión de la selección para su aplicación .

    Actividad complementaria 4:


    Investiga los campos de aplicación de las memorias ROM en sus diversos tipos


    Memoria RAM

    El acrónimo RAM significa acceso aleatorio, es decir cualquier posición de memoria es tan accesible como otra, esta memoria tiene la ventaja de ser de gran capacidad y consumir menor energía que una memoria ROM, pero no es de almacenamiento permanente, esto significa que al quitarse la alimentación eléctrica se pierde la información.

    Es muy usada en sistemas de cómputo para almacenamiento temporal de programas y datos.


    Memoria RAM

    Figura 76. Memoria RAM

    Memoria RAM estática (SRAM).

    Esta memoria está construida en esencia a base de Flip-flops con tecnología CMOS de tipo BiCMOS y NMOS, la primera a base de transistores y la segunda con MOSFET

    Ambas tecnologías han evolucionado considerablemente, en la actualidad se tienen memorias de gran capacidad y velocidad, este tipo de memoria es capaz de almacenar los datos indefinidamente hasta que se pierda la energía de alimentación.

    Memoria RAM dinámica (DRAM)

    Las memorias DRAM son construidas en base a pequeños capacitores para almacenar la información ,1 y 0 cargado o no el capacitor, son de una gran capacidad de almacenamiento y poco consumo de energía, pero tiene la desventaja que los capacitores tienden a descargarse, por lo que requieren circuitos de recarga o también llamados de refresco de datos. Pero son usadas preferentemente cuando se requiere menor costo y menor potencia.


    Memoria RAM estática

    Figura 77. Memoria RAM estática

    Ejemplo 9.-Describe memoria DRAM y SRAM para laptop

    Estos dos tipos de memorias son como ya se dijo, de acceso aleatorio, se utilizan en la memoria de las computadoras y laptops, en ellas se guardan los datos que se están operando, ya sea para almacenar temporalmente o para tener los datos en forma inmediata para hacer operaciones que se puedan realizar en forma inmediata por la CPU.

    Ambas tienen ventajas y desventajas, la SRAM son memorias más rápidas que las DRAM pero tienen menor capacidad de almacenamiento, se usan preferentemente en memorias tipo caché. Las memorias DRAM son de mayor capacidad y menor costo, se utilizan como memoria principal.

    La DRAM se diseñó para superar las desventajas de la SDRAM; se redujo su costo y aumentó la capacidad de almacenamiento, pero es más lenta y de mayor consumo de energía.

    Actividad complementaria 5:


    Investiga cuales son las memorias empleadas en las computadoras tipo Laptop; Marcas, su nomenclatura, su capacidad y costos.


    4.5.2. Circuitos PLD Y GAL

    El diseño con PLD’s tiene las siguientes ventajas en relación a la lógica cableada:

  • Economía.
  • Menos espacio en los impresos.
  • Se mantiene la reserva del diseño. Se requiere tener menos inventarios que con circuitos estándar SSI, MSI
  • Menos alambrado.
  • Mayor velocidad de operación
  • Las arquitecturas que se pueden desarrollar pueden ser más complejas
  • Existen diferentes tecnologías de programación
  • Los circuitos programables PLD, (Programable Array Device), son todos los dispositivos programables, de acuerdo a sus características se dividen en ROM, PLA y GAL, en el apartado anterior se trataron los tipos de ROM, en seguida veremos los PLA y GAL

  • PLA, Estos dispositivos tienen un arreglo AND programable seguido de un arreglo OR también programable. Se pueden programar una sola vez.
  • GAL’s : Estos chips están fabricados en base a tecnología E2CMOS, por lo que consumen mucho menos potencia, sus salidas pueden también ser configuradas por el usuario y su principal ventaja es que son eléctricamente reprogramables
  • Circuitos PLA

    (PLA, Programmable Logic Array)

    El PLA es un PLD formado por una matriz AND programable y una matriz OR programable. La PLA ha sido desarrollada para superar algunas de las limitaciones de las memorias PROM. Tienen ambos planos programables, esto hace que su costo se eleve y sea su desventaja.


    Diagrama de circuito programable PLA

    Figura 78. Diagrama de circuito programable PLA

    Estos dispositivos contienen ambos términos AND y OR programables lo que permite a cualquier término AND alimentar cualquier término OR. Las PAL probablemente tienen la mayor flexibilidad frente a otros dispositivos con respecto a la lógica funcional. Normalmente poseen realimentación desde la matriz OR hacia la matriz AND que puede usarse para implementar máquinas de estado asíncronas.

    La mayoría de las máquinas de estado, sin embargo, se implementan como máquinas síncronas. Con esta perspectiva, los fabricantes crearon un tipo de PLA denominado Secuencial (Sequencer) que posee registros de realimentación desde la salida de la matriz OR hacia la matriz AND.

    ¿Qué es?

  • Arreglo Lógico Programable
  • Una gran flexibilidad ya que los términos producto se localizan en las compuertas OR y sus salidas asociadas
  • Caracteriza a un arreglo programable AND, y un arreglo programable OR.

  • Diagrama esquemático de un CI PLD programable

    Figura 79. Diagrama esquemático de un CI PLD programable


    PLA 3x4 con 5 términos producto

    Figura 80. PLA 3x4 con 5 términos producto

    Ejemplo 10.-Reduce a la mínima expresión los minitérminos y muestra el esquema de la PAL programada.

  • X= ABC+AB’C’+AB’C+A’B’C+A’B’C’
  • Y= AB’[ABC+A’B’C’+AB]
  • Z=A’C+AC’
  • Solución

  • X= AC(B+B’)+AB’(C’+C)+A’B’(C+C’)
  • X=AC+AB’+A’B’
  • X=AC+B’
  • Y= AB’[ABC+A’B’C’+AB]
  • Y=(AB’)[ABC+A’B’C’+AB]
  • Y=A’B((ABC)(A’B’C’+AB))
  • Y=(A’+B)(AA’BB’CC’+ABC)
  • Y=(A’+B)(ABC)
  • Y=ABC
  • Z=A’C+AC’
  • Ecuaciones

    X= AC+B’

    Y= ABC

    Z= A’C+AC’


    Esquema de la PLA programada

    Figura 81. Esquema de la PLA programada

    GAL

    Otro tipo de PLD son las GAL

    Las GAL son dispositivos de matriz lógica genérica. Esto tiene entradas AND programables, una matriz OR fija y una salida lógica programable. Están diseñados para emular muchas PAL.

  • Es reprogramable
  • Tiene configuraciones de salidas programables
  • Usa tecnología E2CMOS

  • Diagrama de circuito programable PLA

    Figura 82. Diagrama de circuito programable PLA

    Método de programación de dispositivos.

    Cabe mencionar que no es propósito de esta unidad el mostrar cómo se programan los PLD, ya que esto se hace en la UAP de Dispositivos Programables

    Pero sí señalaremos lo siguiente:

    El proceso de diseño lógico con PLD’s se resume en tres grandes etapas:

    Diseño lógico

    Dentro de la primera etapa, los pasos involucrados son los mismos que en cualquier diseño digital, combinatorio o secuencial, y se pueden subdividir en los pasos siguientes:

  • Definir el problema
  • Generar un diagrama a bloques.
  • Obtener la tabla de verdad.
  • Derivar ecuaciones lógicas que describen la operación del diseño
  • Implementación

    La implementación del diseño consiste en seleccionar y usar las herramientas, tanto de hardware y software, necesarias para la traducción de los resultados a un mapa de fusibles para la programación del chip. Esta fase consiste en:

  • Selección del PLD.
  • Hacer las ecuaciones
  • Correr software, como por ejemplo el OPAL ( National), para generar el archivo mapa de fusibles.
  • Configurar programador universal.
  • Programar chip
  • Verificación

    La etapa final consiste en la verificación del diseño en la cual la correcta programación del PLD es comprobada, por medio de técnicas de simulación

    Los pasos de la verificación son:

  • Generación de vectores de prueba.
  • Simulación del funcionamiento del PLD en la computadora,
  • Prueba funcional del dispositivo.
  • Documentación del diseño
  • Ejemplo 11.-Ejemplo de circuito GAL que existen en el mercado

    El GAL es un tipo de circuito integrado de marca registrada por Laticce Semiconductor diseñada para sustituir a la mayoría de las PAL, teniendo compatibilidad con sus terminales.

    Entre los principales fabricantes están: Laticce, Philips, Texas Instruments, entre otros.

    En la página web http://pdf1.alldatasheet.com/datasheet-pdf/view/70208/LATTICE/GAL22V10D-10LJ.html se pueden observar las características del a GAL 22V10, que es un circuito que permite 22 entradas y 10 salidas.

    Actividad complementaria 6:


    Muestra tres ejemplos de PLA y tres ejemplos de GAL comerciales, señalando su capacidad y costo.


    Programador universal

    Para programar los PLA o GAL se usa un dispositivo llamado programador de PLD, el cual se alimenta con un programa . jedec que se genera a través de un lenguajes de programación de PLD s especifico, como OPAL ( Open Programable Architecture Languajes), Lenguaje Abierto de Arquitecturas Programables

    En este lenguaje, se ofrece al diseñador usar lenguaje de máquinas de estado, ecuaciones booleanas multi-nivel, así como funciones de tabla de verdad, etc. Esto le proporciona libertad para seleccionar la implementación que mejor se adapte a las especificaciones del diseño.

    Como ya se mencionó no es propósito de esta unidad el mostrar cómo se programan los PLD, ya que esto se hace en la UAP de Dispositivos Programables

    Solamente se muestra un ejemplo de aplicación resuelto con un lenguaje OPAL.

    Ejemplo 12.-Diseña un convertidor de un número binario de 4 bits a una salida ASCII de 7 bits utilizando tablas de verdad, mostrando solamente el implementar un vector de prueba en un dispositivo PAL16L8.

    Solución

    El listado a cargar en el editor del OPAL es:

    BEGIN HEADER

    Este es un convertidor de 4 bits a una salida en c¢digo ASCII de 7 bits,

    utilizando tablas de verdad.

    END HEADER

    BEGIN DEFINITION

    DEVICE p16l8;

    INPUTS w=1,x=2,y=3,z=4;

    OUTPUTS (COM) /a6=12,/a5=13,/a4=14,/a3=15,/a2=16,/a1=17,/a0=18;

    END DEFINITION

    BEGIN TRUTH_TABLE

    TTIN w,x,y,z;


    TTOUT /a6,/a5,/a4,/a3,/a2,/a1,/a0;

    0000 0110000

    0001 0110001

    0010 0110010

    0011 0110011

    0100 0110100

    0101 0110101

    0110 0110110

    0111 0110111

    1000 0111000

    1001 0111001

    1010 1000001

    1011 1000010

    1100 1000011

    1101 1000100

    1110 1000101

    1111 1000110

    END TRUTH_TABLE

    BEGIN VECTOR

    w,x,y,z,/a6,/a5,/a4,/a3,/a2,/a1,/a0;

    0000 LHHLLLL

    0001 LHHLLLH

    0010 LHHLLHL

    0011 LHHLLHH

    0100 LHHLHLL

    0101 LHHLHLH

    0110 LHHLHHL

    0111 LHHLHHH

    1000 LHHHLLL

    1001 LHHHLLH

    1010 HLLLLLH

    1011 HLLLLHL

    1100 HLLLLHH

    1101 HLLLHLL

    1110 HLLLHLH

    1111 HLLLHHL

    END VECTOR


    descargar ejercicios     descargar soluciones