Matriz lógica programable - Programmable logic array

Ejemplo esquemático de PLA

Una matriz lógica programable ( PLA ) es un tipo de dispositivo lógico programable que se utiliza para implementar circuitos lógicos combinacionales . El PLA tiene un conjunto de planos de puerta Y programables , que se enlazan con un conjunto de planos de puerta O programables , que luego pueden complementarse condicionalmente para producir una salida. Tiene 2 puertas N Y para N variables de entrada, y para M salidas de PLA, debe haber M puertas O, cada una con entradas programables de todas las puertas Y. Este diseño permite sintetizar muchas funciones lógicas en la suma de formas canónicas de productos .

Los PLA se diferencian de los dispositivos lógicos de matriz programables ( PAL y GAL ) en que los planos de puerta AND y OR son programables.

Historia

En 1970, Texas Instruments desarrolló una máscara -programmable IC basado en el IBM sólo lectura de memoria asociativa o ROAM. Este dispositivo, el TMS2000, fue programado alterando la capa de metal durante la producción del IC. El TMS2000 tenía hasta 17 entradas y 18 salidas con 8 flip-flops JK para memoria. TI acuñó el término Matriz lógica programable para este dispositivo.

Procedimiento de implementación

  1. Preparación en forma de SOP ( suma de productos ).
  2. Obtenga el formulario de POE mínimo para reducir al mínimo el número de términos del producto.
  3. Decida la conexión de entrada de la matriz AND para generar el término de producto requerido.
  4. Luego, decida las conexiones de entrada de la matriz OR para generar los términos de suma.
  5. Decidir las conexiones de la matriz invertida.
  6. Programe el PLA.

Diagrama de bloques PLA:

1er BLOQUE 2do BLOQUE 3er BLOQUE CUARTO BLOQUE BLOQUE 5
BÚFER DE ENTRADA Y MATRIZ O MATRIZ MATRIZ INVERTIDA / NO INVERTIDA BÚFER DE SALIDA FLIP FLOP

Ventajas sobre la memoria de solo lectura

Las salidas deseadas para cada combinación de entradas podrían programarse en una memoria de solo lectura , con las entradas controladas por el bus de direcciones y las salidas leídas como datos. Sin embargo, eso requeriría una ubicación de memoria separada para cada combinación posible de entradas, incluidas las combinaciones que se supone que nunca deben ocurrir, y también la duplicación de datos para condiciones de "no importa" (por ejemplo, lógica como "si la entrada A es 1, entonces, en lo que respecta a la salida X, no nos importa cuál es la entrada B ": en una ROM esto tendría que escribirse dos veces, una por cada valor posible de B, y como más" no importa " se agregan entradas, la duplicación crece exponencialmente); por lo tanto, una matriz lógica programable a menudo puede implementar una pieza de lógica utilizando menos transistores que el equivalente en la memoria de solo lectura. Esto es particularmente valioso cuando es parte de un chip de procesamiento donde los transistores son escasos (por ejemplo, el chip 6502 original contenía un PLA para dirigir varias operaciones del procesador).

Aplicaciones

Una aplicación de un PLA es implementar el control sobre una ruta de datos . Define varios estados en un conjunto de instrucciones y produce el siguiente estado (por bifurcación condicional). [por ejemplo, si la máquina está en el estado 2 y pasará al estado 4 si la instrucción contiene un campo inmediato; entonces el PLA debe definir las acciones del control en el estado 2, establecerá el siguiente estado en 4 si la instrucción contiene un campo inmediato y definirá las acciones del control en el estado 4]. Los arreglos lógicos programables deben corresponder a un diagrama de estado del sistema.

Las primeras computadoras domésticas Commodore 64 lanzadas en 1982 (a principios de 1983) inicialmente usaban un PLA programado Signetics 82S100, pero a medida que aumentaba la demanda, MOS Technology / Commodore Semiconductor Group comenzó a producir un PLA programado con máscara, que llevaba el número de pieza 906114-01.

Ver también

Referencias

enlaces externos