Me resulta difícil de entender. ¿Cuál es la diferencia entre PLA y ROM? ¿Puede alguien proporcionar un enlace o una explicación?
Son dispositivos bastante diferentes.
PLA = Matriz Lógica Programable.
Un dispositivo PLA o PAL (lógica de matriz programable) es como un FPGA bebé que se puede programar para realizar funciones lógicas básicas. Se pueden conectar decenas a cientos de puertas en un PAL para realizar funciones lógicas simples. Un PAL a menudo es de solo lectura, ya que después de la programación debe realizar un borrado completo para actualizarlo.
ROM = Memoria de sólo lectura.
Una ROM no realiza funciones lógicas, sino que almacena datos. Un tipo de ROM podría ser EPROM, memoria de solo lectura programable y borrable.
Puede usar una ROM como un dispositivo lógico, implementando una búsqueda de tabla lógica simple. Como una tabla de verdad. Sin embargo, es algo costoso y un desperdicio hacer esto en comparación con el uso real de un PAL o incluso un CPLD/FPGA.
Una memoria de solo lectura (ROM) es un circuito lógico que puede generar todos los minitérminos posibles de sus entradas.
Entonces, estas son las características de la ROM:
Los productos de entrada están cableados e incluyen todos los minitérminos posibles. El circuito de suma de salida es programable.
Una matriz lógica programable de campo (FPLA) solo se generan los minitérminos que se necesitan. Además, cada uno se genera solo una vez, aunque puede aparecer varias veces en las expresiones de salida.
Entonces, estas son las características de la FPLA:
El circuito del producto de entrada es programable. El circuito de suma de salida es programable.
Una lógica de matriz programable (PAL) tiene un circuito de entrada similar al de la FPLA. Sin embargo, el circuito de salida incluye lógica OR cableada y no es programable.
Entonces, estas son las características del PAL:
El circuito del producto de entrada es programable. El circuito de suma de salida está cableado.
A modo de ejemplo, suponga que tiene un dispositivo PLA y una ROM, ambos con 12 entradas y 8 salidas.
La ROM tendrá celdas de 8 bits para cada una de las 2^12 = 4096 direcciones. Por lo tanto, esta ROM tendría 32768 celdas de bits individuales. La lógica en el chip incluiría (al menos en partes más grandes) un demultiplexor para los bits de entrada de orden superior, que seleccionaría un banco de, por ejemplo, 1024 celdas, y un multiplexor para las entradas de orden inferior para seleccionar la salida real 8 pedacitos del banco. Esto daría del orden de cuatro retardos de puerta para el muxing, más cualquier tecnología requerida para las celdas de bits. Las EPROM UV antiguas pueden tardar 120 ns en arrojar un resultado, pero había (¿todavía hay?) ROMS programables una sola vez que podían hacer el mismo trabajo en unas pocas decenas de nanosegundos.
Un PLA, por otro lado, tendrá una serie de 'fusibles' programables, generalmente mucho más pequeños que las celdas de 32768 bits en la ROM equivalente. Internamente, un PLA proporciona un banco de puertas AND, seguido de un banco de puertas OR y, opcionalmente, un flip-flop por salida. Un PLA de este tamaño podría tener 16 puertas AND, cada una con entre 8 y 16 entradas. En el estado borrado, los 'fusibles' son cortocircuitos, por lo que cada entrada de cada AND se puede conectar (generalmente) a cualquiera de las entradas o salidas del chip, o sus inversiones. Cuando programa el PLA, el programador quema los fusibles para dejar solo las conexiones que desea. Luego, la matriz OR se puede programar de manera similar para combinar varias combinaciones de las salidas AND. La tecnología de fusible incurre en un retraso mínimo, por lo que el retraso de propagación desde el pin de entrada al pin de salida puede ser tan pequeño como dos retrasos de puerta o hasta cuatro,
Con el mismo número de entradas y salidas, una ROM es capaz de una lógica más general, ya que puede grabar cualquier tabla de verdad que desee en la ROM. Sin embargo, como dispositivo lógico, la ROM no es óptima. Si intenta grabar varias pequeñas funciones independientes en una ROM, descubrirá que tiene muchos casos "no importa" que, no obstante, deben programarse en la ROM para obtener el resultado deseado. El PLA es mejor para la lógica porque no tiene que lidiar con los "no importa", pero la compensación es que no puede programar funciones completamente arbitrarias de los bits. Sin embargo, son lo suficientemente flexibles para ser útiles para muchas tareas comunes de "lógica de pegado" y, por lo general, son más rápidos en la producción de resultados.
Podemos pensar en un dispositivo lógico programable simple como una matriz de compuertas AND seguida de una matriz de compuertas OR (en realidad, puede implementarse como dos matrices de compuertas NAND).
En una PROM, la "matriz AND" es fija y la "matriz OR" es programable. Cada combinación de entradas genera exactamente una salida de la matriz AND. A continuación, se programa la "matriz OR" para definir la función lógica. Esto permite que cada salida implemente cualquier función lógica de las entradas.
Ser capaz de implementar funciones lógicas arbitrarias suena atractivo, pero hay dos problemas prácticos al usar PROM para la lógica. En primer lugar, no se escala bien, cada entrada adicional que agrega duplica el tamaño requerido de la matriz y. En segundo lugar, es muy propenso a fallas en la salida porque los términos del producto utilizados cubren exactamente una combinación de entrada.
En un PAL, la "matriz OR" es fija y la "matriz AND" es programable. Cada salida debe formarse a partir de un número restringido de términos de productos, pero esos términos de productos pueden cubrir varias combinaciones de entradas.
En un PLA, ambas matrices son programables. Esto le brinda más flexibilidad si algunas salidas necesitan más términos de productos que otras o si varias salidas tienen términos de productos en común.
brian carlton
Super gato
cuadue