Programmable array logic

MMI-tillverkad PAL 16R6 i 20-bens DIP-kapsel.

PAL, Programmable Array Logic, en tidig variant av programmerbar logik. PAL-kretsar började bli kommersiellt tillgängliga under 1980-talet. En PAL-krets har typiskt några tiotal ingångar och något färre utgångar. PAL bygger på att de flesta enkla logiska funktioner kan skrivas som ett antal AND-operationer följda av en OR-operation. Kretsen innehåller därför en s.k. AND-OR matris. Varje insignal finns tillgänglig i matrisen både som den är och som inverterad. Först utförs ett antal parallella AND-operationer mellan valfria ingångsvärden eller deras inverser[särskiljning behövs]. AND-operationerna utförs i diodlogik.

PAL-kretsar programmeras genom att man rent fysiskt bränner sönder de förbindelser (dioder) man inte ville ha med hjälp av ström (övriga komponenter och ledningar tålde högre ström än förbindelserna). OR-operationerna utförs av mångingångas OR-grindar som har AND-operationens utsignaler som insignaler. Antalet ingångar i OR-grindarna begränsar hur komplicerade nät man kan bygga. Icke använda OR-ingångar sätts till värdet falsk (0). PAL följdes av PLA, Programmable Logic Array, som är något mindre generell i fråga om vilka insignalkombinationer som är möjliga än PAL, men betydligt billigare. Senare kom även PAL/PLA med minnen (D-vippor) på utgångarna vilket gjorde det möjligt att konstruera till exempel räknare. Nuförtiden har PAL/PLA ofta ersatts av PGA/FPGA, Enchipsdatorer eller ASIC.