I am studying the Programmable Logic Array (PLA) and Programmable Array Logic (PAL). I understood every detail I found about them including the implementation and difference between them. But I have a very simple question about their naming. Why did the early designer of such devices choose those close names for both of them? If the PLA appeared first then they designed a new device, why did they just swapped two words in the name from Programmable Logic Array (PLA) to Programmable Array Logic (PAL)? Do not you find it very confusing to differentiate between them? I did google search to find an answer to this question but I did not find any. Do you have any explanation?
To summarize the link that jonk put in the comments: There are three ways to implement a generic programmable sum-of-products (AND gates followed by OR gates) function. In historical order, they are:
- PROM Programmable Read-Only Memory - the word decoder (AND gates) are fixed, and the data (OR gates) are programmable.
- PLA Programmable Logic Array - both the AND gates and the OR gates are programmable. This allows more complex functions than a straight PROM allows with a much more efficient implementation.
- PAL Programmable Array Logic - the AND gates are programmable, but the OR gates are fixed. It was realized that the PLA was overkill for many simple functions that only needed a limited number of product terms per output, so fixing the OR structure allowed a much smaller chip.
The similarity of the last two names is mainly a historical artifact, and also probably a function of how the devices were marketed.