可编程逻辑器件(Programmable Logic Device,PLD)是20世纪70年代发展起来的新型逻辑器件。可编程逻辑器件与传统逻辑器件的区别在于其功能不固定,属于一种半定制逻辑器件,可以通过软件的方法对其编程从而改变其逻辑功能。微电子技术的发展,使得设计与制造集成电路的任务已不完全由半导体厂商独立承担,系统设计师们可以在更短的设计周期里,在实验室里设计自己需要的专用集成电路(Application Specific Integrated Circuit,ASIC)芯片。对于可编程逻辑器件有一种说法“What you want is what you get”(所见即所得),这是PLD的一个优势。由于PLD可编程的灵活性以及科学技术的快速发展,PLD也正向高集成、高性能、低功耗、低价格的方向发展,并具备了与ASIC同等的性能。近几年可编程逻辑器件的应用有了突飞猛进的增长,被广泛地使用在各行各业的电子及通信设备里。可编程逻辑器件的规模不断扩大,例如Altera Stratix 10系列单芯片,采用了Altera的3D SiP异构架构,整合了550万逻辑门、HBM2内存以及四核ARM Cortex-A53处理器,被视为高性能FPGA的代表。
我们可以用图1-1描述PLD沿着时间推进的发展流程。
图1-1 PLD器件的发展流程
从集成度上,可以把PLD分为低密度和高密度两种类型,其中低密度可编程逻辑器件LDPLD通常指那些集成度小于1000逻辑门的PLD。20世纪70年代初期至80年代中期的PLD,如PROM(Programmable Read Only Memory)、PLA(Programmable Logic Array)、PAL(Programmable Array Logic)和GAL(Generic Array Logic)均属于LDPLD。低密度PLD与中小规模集成电路相比,有着集成度高、速度快、设计灵活方便、设计周期短等优点,因此在推出之初得到了广泛的应用。
低密度PLD的基本结构如图1-2所示,它是根据逻辑函数的构成原则提出的,由输入缓冲、与阵列、或阵列和输出结构等四部分组成。其中,由与门构成的与阵列用来产生乘积项,由或门构成的或阵列用来产生乘积项之和,因此,与阵列和或阵列是电路的核心。输入缓冲电路可以产生输入变量的原变量和反变量,输出结构相对于不同的PLD差异很大,有组合输出结构、时序输出结构、可编程的输出结构等。输出信号往往可以通过内部通路反馈到与阵列,作为反馈输入信号。虽然与/或阵列的组成结构简单,但是所有复杂的PLD都是基于这种原理发展而来的。根据与阵列和或阵列可编程性,将低密度PLD分为上述四种基本类型,如表1-1所示。
图1-2 PLD器件原理结构图
表1-1 低密度PLD器件
随着科学技术发展,低密度PLD无论是资源、I/O端口性能,还是编程特性都不能满足实际需要,已被淘汰。高密度可编程逻辑器件HDPLD通常指那些集成度大于1000门的PLD。20世纪80年代中期以后产生的EPLD(Erasable Programmable Logic Device)、CPLD(Complex Programmable Logic Device)和FPGA(Field Programmable Gate Array)均属于HDPLD。EPLD结构上类似GAL。EPLD与GAL相比,无论是与阵列的规模还是输出逻辑宏单元的数目都有了大幅度的增加,EPLD的缺点主要是内部互联能力较弱。
复杂可编程逻辑器件CPLD(Complex PLD)和现场可编程门阵列FPGA(Field Programmable Gate Array)是可编程逻辑器件的两种主要类型。其中复杂可编程逻辑器件CPLD的结构包含可编程逻辑宏单元、可编程I/O单元和可编程内部连线等几部分。在CPLD中数目众多的逻辑宏单元被排成若干个阵列块,丰富的内部连线为阵列块之间提供了快速、具有固定时延的通路。Xilinx公司的XC7000和XC9500系列,Lattice公司的ispLSI系列,Altera公司的MAX9000系列,以及AMD公司的MACH系列都属于CPLD。
现场可编程门阵列FPGA结构包含可编程逻辑块、可编程I/O模块和可编程内连线。可编程逻辑块排列成阵列,可编程内连线围绕着阵列。通过对内连线编程,将逻辑块有效地组合起来,实现逻辑功能。FPGA与CPLD之间主要的差别是CPLD修改具有固定内连电路的逻辑功能进行编程,而FPGA则是通过修改内部连线进行编程。许多器件公司都有自己的FPGA产品。例如,Xilinx公司的Spartan系列和Virtex系列,Altera公司的Stratix系列和Cyclone系列,Actel公司的axcelerator系列等。
在这两类可编程逻辑器件中,FPGA提供了较高的逻辑密度、较丰富的特性和较高的性能。而CPLD提供的逻辑资源相对较少,但是其可预测性较好,因此对于关键的控制应用CPLD较为理想。简单地说,FPGA就是将CPLD的电路规模、功能、性能等方面强化之后的产物。FPGA与CPLD的主要区别如表1-2所示。
表1-2 FPGA与CPLD的主要区别
PLD生产厂商众多,有Xilinx、Altera(现并入Intel公司内)、Actel、Lattic、Atmel等,其中以Xilinx和Altera的产品较有代表性,且占有绝大部分的市场份额。不同公司的PLD产品结构不同,且有高低端产品系列之分,因此没有可比性,产品设计时可根据具体的需求来决定。
目前,可编程逻辑器件产业正以惊人的速度发展,可编程逻辑器件在逻辑器件市场的份额正在增长。高密度的FPGA和CPLD作为可编程逻辑器件的主流产品,继续向着高密度、高速度、低电压、低功耗的方向发展,并且PLD厂商开始注重在PLD上集成尽可能多的系统级功能,使PLD真正成为系统级芯片SoC(System on Chip),用于解决更广泛的系统设计问题。