Un Arreglo Lógico Programable (PAL), es un circuito PLD que puede programarse para ejecutar una función lógica compleja. Normalmente se utilizan para implementar lógica combinacional, pero algunos PAL pueden usarse para implementar diseños lógicos secuenciales.
La PAL es una solución con un solo circuito integrado a muchos problemas lógicos, que pueden tener muchas entradas y muchas salidas, se trata de una solución AND-OR de dos niveles que puede programarse para realizar cualquier expansión lógica de suma de productos, sujeta únicamente a las limitaciones propias del producto. Estas limitaciones son el número de entradas (n), el número de salidas (m) y el número de términos productos (p).
Se puede describir como un “PAL de n x m, con p términos productos”. Por lo tanto su utilidad estará limitada al número de funciones que pueden expresarse en forma de suma de productos usando p o menos términos producto.
Normalmente se construyen con compuertas AND y OR, donde las AND están a la entrada y las OR están en la salida. En estos arreglos a la entrada se coloca una matriz de fusibles o de diodos y a través de ellos se implementan las diversas funciones que se requiere implementar en determinada aplicación.
La PAL se diferencia de la PLA, en que esta primera las compuertas de entrada son fijas y la salida es programable, mientras que en la segunda (PLA), tanto las compuertas de entrada como las de salida son programables. Para ello, se denota de diferente manera, un circuito convencional en forma horizontal y un PLD en forma vertical.