从PROM到GAL:低密度可编程逻辑器件的进化图谱
在数字电路设计的工具箱里,可编程逻辑器件(PLD)就像瑞士军刀般的存在。特别是对于电子工程初学者而言,理解PROM、PLA、PAL和GAL这四种经典低密度PLD的区别,就像学习区分螺丝刀的不同型号——看似简单却容易混淆。这些诞生于不同年代的技术产物,各自带着鲜明的时代烙印和设计哲学,共同构成了现代可编程逻辑的基础框架。
1. 低密度PLD的四大金刚:核心特征解析
1.1 PROM:存储器的逻辑变身
PROM(可编程只读存储器)最初设计用于数据存储,却意外成为最早的可编程逻辑器件之一。它的结构特点可以用"固定菜单"来比喻:
- 与阵列:完全固定,相当于餐厅预设的菜品组合
- 或阵列:用户可编程,如同可以选择不同的调味方式
- 典型应用:地址解码器、简单逻辑函数实现
// PROM实现2-4解码器的简化模型 module prom_decoder( input [1:0] addr, output reg [3:0] decode ); always @(*) begin case(addr) 2'b00: decode = 4'b0001; 2'b01: decode = 4'b0010; 2'b10: decode = 4'b0100; 2'b11: decode = 4'b1000; endcase end endmodule提示:PROM的与阵列固定意味着其输入项的乘积项数量有限,这限制了实现复杂逻辑的灵活性。
1.2 PLA:双可编程的灵活方案
PLA(可编程逻辑阵列)的出现解决了PROM的局限性,它的"双可编程"特性如同自助餐厅:
| 特性 | PLA | PROM |
|---|---|---|
| 与阵列 | 可编程 | 固定 |
| 或阵列 | 可编程 | 可编程 |
| 灵活性 | 高 | 低 |
| 资源利用率 | 可优化 | 固定 |
这种结构允许工程师自由定义与项和或项,特别适合实现多输出组合逻辑。例如,一个全加器的逻辑可以用PLA高效实现,而PROM则需要更大的容量。
1.3 PAL:成本与性能的平衡点
PAL(可编程阵列逻辑)在PLA基础上做了关键改进——固定或阵列。这种看似倒退的设计实际上带来了显著优势:
- 制造更简单:固定或阵列减少芯片面积
- 速度更快:固定布线带来更可预测的时序
- 成本更低:适合大批量生产
典型的PAL16V8器件包含:
- 8个输入引脚
- 8个输出宏单元
- 每个输出对应7-8个乘积项
1.4 GAL:可重构性的突破
GAL(通用阵列逻辑)是PAL的升级版,引入了输出逻辑宏单元(OLMC)这一革命性设计:
GAL基本结构: ┌───────────────┐ │ 可编程与阵列 │ ├───────────────┤ │ 固定或阵列 │ ├───────────────┤ │ OLMC单元 │←─ 可配置为组合/时序逻辑 └───────────────┘OLMC的关键特性包括:
- 可编程输出极性(XOR控制)
- 寄存器/组合输出选择
- 输出使能控制
- 反馈路径选择
2. 关键差异对比:从结构到应用
2.1 阵列可编程性矩阵
下表清晰展示了四种器件在阵列可编程性上的本质区别:
| 器件类型 | 与阵列 | 或阵列 | 输出单元 | 可重复编程 |
|---|---|---|---|---|
| PROM | 固定 | 可编程 | 固定 | 否 |
| PLA | 可编程 | 可编程 | 固定 | 部分型号 |
| PAL | 可编程 | 固定 | 固定 | 否 |
| GAL | 可编程 | 固定 | 可配置 | 是 |
2.2 实际应用场景选择
选择哪种器件取决于具体需求:
- PROM:适合固定模式的逻辑转换
- PLA:需要高度灵活的多输出逻辑
- PAL:中低复杂度的组合逻辑
- GAL:需要现场调试的混合逻辑设计
注意:虽然GAL功能更强大,但其速度通常比PAL慢10-15%,在严格时序要求的场景需要权衡。
3. 编程技术与工艺演进
3.1 编程技术的三次革命
低密度PLD的发展伴随着编程技术的进步:
熔丝技术(早期PROM/PAL)
- 一次性编程
- 高可靠性但不可修改
UV可擦除(EPROM-based PLA)
- 需要紫外线擦除
- 有限擦写次数(约100次)
EEPROM技术(GAL)
- 电擦写(约1000次)
- 现场可编程
3.2 工艺节点的影响
工艺进步使得PLD性能显著提升:
| 器件 | 典型工艺 | 延迟(ns) | 功耗(mW/MHz) |
|---|---|---|---|
| PROM | 5μm | 50-100 | 2-5 |
| PLA | 3μm | 30-50 | 1-3 |
| PAL | 2μm | 15-25 | 0.5-1.5 |
| GAL | 1.2μm | 10-20 | 0.3-1.0 |
4. 现代EDA工具中的LDPLD设计
4.1 设计流程对比
虽然现代设计多转向CPLD/FPGA,但理解LDPLD设计流程仍有价值:
st=>start: 设计输入 op1=>operation: 逻辑化简 op2=>operation: 拟合(针对特定器件) op3=>operation: 熔丝图生成 e=>end: 编程下载 st->op1->op2->op3->e4.2 在Vivado/Quartus中的支持
主流EDA工具仍保留对经典PLD的支持:
- Xilinx Vivado:通过IP集成器支持PAL等效设计
- Intel Quartus:提供传统PLD设计模板
- 开源工具:如Yosys可以综合到GAL目标
5. 从历史角度看技术演进
早期PLD的发展呈现出明显的迭代路径:
- 存储转向逻辑(PROM)
- 提高灵活性(PLA)
- 优化成本效益(PAL)
- 增加可重构性(GAL)
这种演进反映了数字设计从专用向通用、从固定向灵活的发展趋势。有趣的是,现代FPGA中的某些概念(如LUT结构)可以追溯到这些早期PLD的设计思想。