可编程逻辑可以在您的小部件中以多种不同的方式实现,从烧几个门或使用 MUX 到具有内置微控制器和 IO 外设的最新 FPGA,更不用说 ARM 的PrimeCell GPIO或其他更具体的示例。不同级别的可编程逻辑器件复杂性用于哪些应用?尽管分组似乎在其定义的极端附近融合在一起,但我认为这是一个可以接受的列表:
- PAL/PLA / GAL:可编程逻辑阵列;似乎在 Digikey 被列为“嵌入式 - PLD”,涵盖异步 10/8 I/O (ATF16V8C) 至 50MHz、192 个宏单元 (CY7C341B),并且大部分是可重新编程的。
- CPLD:复杂可编程逻辑器件;Digikey 列出了它们,在 7.5ns 10 I/O (ATF750C) 到 233 MHz、428 I/O“FPGA 密度下的 CPLD”(CY39100V484B) 中可用。
- FPGA:现场可编程门阵列;可用于 58 I/O (XC2064) 到 1023 I/O BGA 野兽 (EP1S80F1508C7N)。
- 带有硬 MCU 的 FPGA:这是指 MCU 物理布局在 FPGA IC 中,而不是仿真。
维基百科引用:
FPGA 和 CPLD 之间的区别在于 FPGA 在内部基于查找表 (LUT),而 CPLD 则通过门海(例如乘积之和)形成逻辑功能。CPLD 用于更简单的设计,而 FPGA 用于更复杂的设计。一般来说,CPLD 是广泛组合逻辑应用的理想选择,而 FPGA 更适合大型状态机(即微处理器)。
这并不能解释使用233 MHz、400 I/O CPLD和可比较的 FPGA之间的区别;或在192 个宏单元 PLD和可比较的 CPLD之间。我无法找到可靠的指导方针来缩小设计选项。请注意,我目前没有考虑特定的应用程序,但经常想知道,“我会用什么来做到这一点?”
我在场外收到了有关特定要求的出色建议,但仍然认为这个问题可以从一些示例中受益,这些示例显示了对一个 PLD 家族的偏好,而另一个 PLD 家族似乎同样或更合适。