CPLD复杂可编程逻辑器件的结构与工作原理详解
2024-05-09 14:07:05 6,798
CPLD(复杂可编程逻辑器件)是一种集成电路上的数字逻辑器件,它允许用户根据特定应用需求,通过编程来实现定制化的数字电路功能。CPLD介于简单的PAL和FPGA(现场可编程门阵列)之间,在灵活性和集成度上提供了一个平衡点。相比于FPGA,CPLD通常具有更快的内部逻辑连接速度和更低的功耗,但其可编程资源和逻辑容量相对较小。
CPLD的基本结构包含可编程的逻辑块、可编程的互连资源以及输入/输出块(I/O )。逻辑块通常包含查找表、寄存器、多路复用器等基本逻辑单元,可以实现组合逻辑和时序逻辑功能。可编程互连资源则负责连接各个逻辑块,以实现更复杂的功能。I/O块负责外部信号的输入输出,支持多种电平标准,以适应不同的系统需求。
CPLD的编程一般通过专门的软件工具(如Altera的Quartus II、Xilinx的ISE/Vivado等)完成,用户可以通过硬件描述语言(如VHDL或Verilog)来设计逻辑电路,然后由软件编译并下载到CPLD中,这一过程称为配置。
CPLD因其较快的信号传输速度、较低的功耗、以及无需外部配置存储器即可自启动等特点,常被应用于需要较高可靠性和确定性的领域,如工业控制、汽车电子、通信系统、消费电子产品的控制逻辑等。与FPGA相比,CPLD更适合逻辑规模适中且对成本、功耗有严格要求的应用场景。
CPLD基本结构
CPLD是复杂可编程逻辑器件的缩写,FPGA是现场可编程门阵列的缩写。两者的功能基本相同,编程等流程也基本相同(编程文件不同,但都是由软件自动生成的),但芯片内部实现原理和结构略有不同。
可编程逻辑单元
功能与FPGA的基本I/O口相同,但CPLD的应用范围相对有限,I/O的性能和复杂度与FPGA不同,支持的I/O标准较少并且频率较低。
基本逻辑单元
CPLD中的基本逻辑单元是宏单元。所谓宏单元就是由一些AND,或者数组加触发器组成,其中“AND-OR”数组完成组合逻辑功能,触发器则用来完成时序逻辑。与CPLD基本逻辑单元相关的另一个重要概念是乘积项。所谓乘积项就是宏单元中AND数组的输出,它的数量表示CPLD的容量。乘积项数组实际上是一个“AND-OR”数组。每个交叉点都是一个可编程熔丝。如果打开,则执行“AND”逻辑。 “AND”数组后面通常有一个“OR”数组,用于完成最小逻辑表达式中的“或”关系。
路由池、路由矩阵
CPLD中的布线资源比FPGA中的布线资源简单得多,并且布线资源也相对有限。一般采用集中布线池结构。所谓接线池本质上是一个开关矩阵,不同宏单元的输入输出项之间的连接可以通过结点来完成。由于CPLD器件内部互连资源缺乏,在某些情况下器件布线时会遇到一些困难。由于CPLD的接线池结构是固定的,所以从CPLD的输入引脚到输出引脚的延迟是固定的,称为Pin to Pin延迟,表示为Tpd。 Tpd延迟反映了CPLD器件可以达到的最高频率,也清楚地表明了CPLD器件的速度等级。
CPLD基本结构实例
EPM7128S设备
(1) EPM7128S器件的基本结构
EPM7128S器件主要由逻辑阵列块LAB、宏单元、I/O控制块和可编程互连阵列PIA组成。
在多阵列矩阵结构中,每个宏单元都有一个可编程AND阵列和一个固定OR阵列,以及一个具有独立可编程时钟的可配置触发器,时钟使能清除和置位功能。每16个宏单元组成一组,形成灵活的逻辑阵列模块LAB。多个 LAB 通过可编程互连阵列 PIA 连接到全局总线。每个LAB还连接到相应的I/O控制块,以提供直接的输入和输出通道。
(2) EPM7128S宏单元结构
EPM7128S 的每个宏单元都可以单独配置为以组合逻辑或时序逻辑工作。宏单元主要由逻辑阵列、产品项选择矩阵和可编程寄存器组成。可编程寄存器可以根据逻辑需要编程旁路,实现组合逻辑。如果作为寄存器使用,相应的可编程逻辑器件开发软件会根据设计逻辑要求选择有效的寄存器工作模式,从而最大限度地减少设计中使用的器件资源。
XCR3064XL器件
(1) XCR3064XL器件结构
XCR3064XL器件的宏单元结构由通过零功耗互连阵列连接的功能块和I/O单元组成,每个逻辑块包含16个宏单元。
CPLD架构图
这里以 Xilinx CoolRunner-II 为例。下图是Xilinx CoolRunner-II的CPLD架构图。
现在道合顺为您解释一下上图的内容。
1. 该 CPLD 有几个功能块,从“功能块 1”到“功能块 n”(对于 CoolRunner-II CPLD,该编号范围为 2 到 32)
2. 每个功能块的 16 行输出进入 AIM(高级互连矩阵),同时 40 行信号从 AIM 输入到功能块。
3. 每个功能块有 16 个宏单元(MC1 至 MC16)。
4. 每个宏单元可以访问来自I/O 块的16 个信号。
5. MacroCell 的结构如下所示。每个宏单元都包含触发器和 PLA 阵列的乘积和,用户可以利用它们来创建组合或顺序逻辑。因此,CoolRunner-II CLPD (XC2C512) 中可用的最大触发器数量为 512 个! (记住这个数字,我们将它与FPGA中触发器的数量进行比较)
6. AIM 可以根据需要进行编程以互连信号。但正如我们在上面的第二个要点中看到的,每个功能块的信号数量是有限的。
与PLA(可编程逻辑阵列)一样,每个宏单元中CPLD的逻辑功能都是通过JTAG上的系统编程(ISP)接口进行电编程的。一旦编程,这些基于闪存的连接多年来一直保持不变。这使得 CPLD 具有“即时启动”工作的独特优势。也就是说,CPLD一上电就开始工作,因为程序是通过ISP闪存烧入的。
总而言之,我们可以说,在 CPLD 中,有数百个功能块(或逻辑块),通常少于 1000 个,可以通过单个大型逻辑单元互连进行访问。
如何使用CPLD
CPLD是用户根据自己的需要构造逻辑功能的数字集成电路。基本设计方法是利用集成开发软件平台通过原理图、硬件描述语言等方式生成相应的目标文件,并通过下载线(“在系统”)将代码传输到目标芯片编程)来实现所设计的数字系统。
这里以应答器为例讲一下它的设计(装饰)过程,即芯片的设计过程。 CPLD的大部分工作都是在计算机上完成的。打开集成开发软件(Altera公司的Max+pluxII)→画原理图,编写硬件描述语言(VHDL、Verilog)→编译→给出逻辑电路的输入激励信号,进行仿真,检查是否满足要求。逻辑输出结果正确→进行引脚输入输出锁定(7128的64个输入输出引脚可根据需要设置)→生成代码→通过下载线将代码传输并存储到CPLD芯片中。 7128芯片的引脚已被引出。将数码管、应答开关、指示灯、蜂鸣器通过电线连接到刨花板上,并测试电源。当按下答题开关时,相应的指示灯应亮,则答题正确。以后裁判加分后,检查数字显示的结果是否正确。如果有问题,可以重新修改原理图或硬件描述语言来改进设计。设计完成后,如批量生产,可以直接复制其他CPLD芯片,即可以编写代码。如果要设计其他芯片,例如交通灯设计,则需要重新绘制原理图或编写硬件描述语言,重复上述工作过程,完成设计。这种改造设计相当于重新装修房子,而这种装修对于CPLD来说可以进行上万次。
CPLD和FPGA的区别
1.FPGA简介
FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它作为专用集成电路(ASIC)领域的半定制电路而应运而生,它不仅解决了定制电路的缺点,而且克服了原有可编程器件门电路数量有限的缺点。
FPGA特性
1)利用FPGA设计ASIC电路(专用集成电路),用户无需胶片生产即可获得合适的芯片。
2)FPGA是ASIC电路中设计周期最短、开发成本最低、风险最低的器件之一。
3)FPGA采用高速CMOS工艺,功耗低,兼容CMOS和TTL电平。
FPGA通过片内RAM中存储的程序来设置其工作状态。因此,工作时需要对片内RAM进行编程。用户可以根据不同的配置方式采用不同的编程方式。
2.CPLD简介
CPLD(是由围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较为复杂,具有复杂的I/O单元互连结构。用户可以根据需要生成特殊的电路结构来完成某些功能。由于CPLD内部采用固定长度的金属线互连各个逻辑块,因此设计的逻辑电路具有时间可预测性,避免了分段互连结构时序预测不完整的缺点。到了20世纪90年代,CPLD发展更加迅速,不仅具有电擦除的特点,还具有边缘扫描、在线可编程等先进功能。常用的是Xilinx CPLD和Altera CPLD 。
CPLD特点
具有编程灵活、集成度高、设计开发周期短、应用范围广、开发工具先进、设计制造成本低、对设计人员硬件经验要求低、无需测试标准产品、保密性强等特点。大众价格。可实现大规模电路设计,因此广泛应用于产品原型设计和产品制造(一般小于10000件)。 CPLD器件几乎可用于所有中小型通用数字集成电路的应用。 CPLD器件已成为电子产品中不可或缺的一部分,其设计和应用已成为电子工程师的必备技能。
FPGA与CPLD的区别
CPLD 与 FPGA
① CPLD更适合完成各种算法和组合逻辑,FPGA更适合完成时序逻辑。换句话说,FPGA更适合触发器丰富的结构,而CPLD更适合触发器有限且产品丰富的结构。
② CPLD的连续布线结构决定了其时序延迟是均匀且可预测的,而FPGA的分段布线结构决定了其延迟的不可预测性。
③ FPGA在编程方面比CPLD具有更大的灵活性。 CPLD通过修改互连电路固定的逻辑功能来编程,而FPGA主要通过改变互连的布线来编程; FPGA 可以在逻辑门下进行编程,而 CPLD 可以在逻辑块下进行编程。
④ FPGA 的集成度比 CPLD 更高,布线结构和逻辑实现更复杂。
⑤ CPLD比FPGA使用更方便。 CPLD的编程采用E2PROM或FAST FLASH技术,无需外部存储芯片,使用方便。 FPGA的编程信息需要存储在外部存储器中,使用方法复杂。
⑥ CPLD 比 FPGA 速度更快,并且具有更大的时间可预测性。这是因为FPGA是门级编程,CLB之间采用分布式互连,而CPLD是逻辑块级编程,其逻辑块之间的互连是集总的。
⑦在编程方式上,CPLD主要基于E2PROM或FLASH存储器编程,编程次数可达10000次。优点是系统断电时编程信息不会丢失。 CPLD可分为两类:在编程器上编程和在系统中编程。大多数FPGA都是基于SRAM编程,当系统掉电时编程信息就会丢失。每次系统上电时,都需要将编程数据从器件外部重新写入SRAM中。其优点是可以进行任意多次编程,并且可以快速进行动态编程,从而实现电路板和系统级别的动态配置。
⑧ CPLD保密性好,而FPGA保密性差。
⑨一般情况下,CPLD的功耗比FPGA大,且集成度越高越明显。
随着复杂可编程逻辑器件(CPLD)密度的增加,数字器件设计人员可以灵活且轻松地进行大规模设计,产品也可以快速进入市场。许多设计人员发现CPLD具有易于使用、时序可预测和速度高等优点,但过去由于CPLD密度的限制,他们不得不转向FPGA和ASIC。设计人员现在可以认识到密度高达数十万门的 CPLD 的优势。