可编程逻辑/PALs
在 PLDs 出现之前,只读存储器 (ROM) 芯片被用来创建任意数量输入的组合逻辑函数。考虑一个具有 m 个输入(地址线)和 n 个输出(数据线)的 ROM。当用作存储器时,ROM 包含 2m 个 n 位字。
现在假设输入不是由 m 位地址驱动,而是由 m 个独立的逻辑信号驱动。理论上,这些 m 个输入信号有 22m 个可能的布尔函数。在此上下文中,布尔函数是指将 m 个布尔输入的 2m 个可能组合中的每一个映射到单个布尔输出的单个函数。有 22m 种不同的方法可以将 2m 个输入中的每一个映射到布尔值,这解释了为什么有 22m 个这样的 m 个输入的布尔函数。
现在,假设每个输出引脚独立地充当一个逻辑设备,该设备被专门选择以仅采样 22m 个可能函数中的一个。在任何给定时间,ROM 上只能存在 2m 个可能的输入值中的一个,但随着时间的推移,当输入值跨越其完整的可能域时,每个输出引脚将从 22m 个可能的函数中映射出其特定于 2m 个可能输入值的函数。请注意,ROM 的结构允许在输出引脚上仅生成 22m 个可能的布尔函数中的 n 个。因此,ROM 等效于 n 个独立的逻辑电路,每个电路生成 m 个输入的选定函数。
以这种方式使用 ROM 的优点是,所有可能的 m 个输入组合的任何可想象的函数都可以出现在 n 个输出中的任何一个上,使其成为 m 个输入引脚和 n 个输出引脚的最通用组合逻辑器件。
此外,还提供 PROM(可编程 ROM)、EPROM(紫外线可擦除 PROM)和 EEPROM(电可擦除 PROM),它们可以使用标准 PROM 编程器进行编程,而无需专门的硬件或软件。但是,也有一些缺点
they are usually much slower than dedicated logic circuits, they cannot necessarily provide safe "covers" for asynchronous logic transitions so the PROM's outputs may glitch as the inputs switch, they consume more power, they are often more expensive than programmable logic, especially if high speed is required.
由于大多数 ROM 没有输入或输出寄存器,因此它们不能独立用于时序逻辑。外部 TTL 寄存器通常用于状态机等时序设计。例如 2716 等常见 EPROM 仍然有时被爱好者电路设计师使用,他们通常会有一些闲置的。这种使用有时被称为“穷人的 PAL”。
早期可编程逻辑
1969 年,摩托罗拉推出了 XC157,这是一种掩模编程门阵列,具有 12 个门和 30 个未连接的输入/输出引脚。[1]
1970 年,德州仪器开发了一种基于 IBM 只读关联存储器或 ROAM 的掩模编程 IC。这种器件,即 TMS2000,通过在 IC 生产过程中更改金属层来编程。TMS2000 有多达 17 个输入和 18 个输出,以及 8 个用于存储器的 JK 触发器。TI 为这种器件创造了可编程逻辑阵列一词。[2]
1971 年,通用电气公司 (GE) 正在开发一种基于新型 PROM 技术的可编程逻辑器件。这种实验装置在 IBM 的 ROAM 的基础上进行了改进,允许多级逻辑。英特尔刚刚推出了浮栅紫外线可擦除 PROM,因此 GE 的研究人员采用了该技术。GE 器件是第一个开发的可擦除 PLD,比 Altera EPLD 早十多年。GE 获得了早期关于可编程逻辑器件的多项专利。[3][4][5]
1973 年,国家半导体推出了一个掩模编程 PLA 器件(DM7575),该器件具有 14 个输入和 8 个输出,没有存储器寄存器。这比 TI 的产品更受欢迎,但制作金属掩模的成本限制了它的使用。该器件意义重大,因为它成为 1975 年由西格内蒂克公司生产的现场可编程逻辑阵列(82S100)的基础。(英特尔实际上抢先于西格内蒂克,但低良率导致了他们的产品失败。)[6][7]
1974 年,GE 与单片记忆公司达成协议,开发一种包含 GE 创新技术的掩模编程逻辑器件。该器件名为“可编程关联逻辑阵列”或 PALA。MMI 5760 于 1976 年完成,可以实现超过 100 个门的 multilevel 或时序电路。该器件由 GE 设计环境支持,在该环境中,布尔方程将被转换为用于配置器件的掩模模式。该部分从未上市。[8]
PLA
主条目:可编程逻辑阵列
1970 年,德州仪器开发了一种基于 IBM 只读关联存储器或 ROAM 的掩模编程 IC。这种器件,即 TMS2000,通过在 IC 生产过程中更改金属层来编程。TMS2000 有多达 17 个输入和 18 个输出,以及 8 个用于存储器的 JK 触发器。TI 为这种器件创造了可编程逻辑阵列一词。[2]
可编程逻辑阵列 (PLA) 具有可编程的 AND 门阵列,该阵列连接到可编程的 OR 门阵列,然后可以有条件地进行补码以产生输出。
PAL
主条目:可编程阵列逻辑
PAL 器件具有晶体管单元阵列,这些单元阵列以“固定 OR、可编程 AND”平面排列,用于实现“积之和”二进制逻辑方程,以表示每个输出的输入和来自输出的同步或异步反馈。
1978 年,MMI 推出了一款突破性的器件,即可编程阵列逻辑或 PAL。该架构比西格内蒂克 FPLA 的架构更简单,因为它省略了可编程 OR 阵列。这使得器件更快、更小、更便宜。它们有 20 引脚 300 mil DIP 封装,而 FPLA 有 28 引脚 600 mil 封装。PAL 手册揭开了设计过程的神秘面纱。PALASM 设计软件(PAL 汇编器)将工程师的布尔方程转换为用于编程器件所需的熔丝模式。PAL 器件很快就被国家半导体、德州仪器和 AMD 二次授权。
在 MMI 成功推出 20 引脚 PAL 器件后,AMD 推出了具有附加功能的 24 引脚 22V10 PAL。在收购 MMI(1987 年)后,AMD 将合并后的业务剥离为 Vantis,而该业务在 1999 年被 Lattice Semiconductor 收购。