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. [ aclaración necesaria ]
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. [1]
Procedimiento de implementación
- Preparación en forma de SOP ( suma de productos ).
- Obtenga el formulario de POE mínimo para reducir al mínimo el número de términos del producto.
- Decida la conexión de entrada de la matriz AND para generar el término de producto requerido.
- Luego, decida las conexiones de entrada de la matriz OR para generar los términos de suma.
- Decidir las conexiones de la matriz invertida.
- 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 [2] ).
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. [3]
Ver también
Referencias
- ^ Andrés, Kent (octubre de 1970). Un informe de aplicación de Texas Instruments: matrices lógicas programables MOS . Instrumentos Texas. Boletín CA-158.
- ^ Cómo funcionan realmente los códigos de operación ilegales MOS 6502
- ^ arcadecomponents.com - Commodore 906114-01 64 PLA IC
enlaces externos
- "Matriz de lógica programable (PLA)" . cmsc311 . Universidad de Maryland . 2003. Archivado desde el original el 14 de diciembre de 2017.
- "PLA (matriz lógica programable)" . Applet de Java . Universidad de Hamburgo . Archivado desde el original el 15 de enero de 2013 . Consultado el 7 de abril de 2010 .