XILINX FPGA/CPL.D简介 (Register)组成的。FPGA内部查找表一般为4输入(注:Altera StratixⅡ 的自适应逻辑模块ALM结构比较特殊)。 查找表 一般完成纯组合逻辑功能 FPGA内部寄存器结构相当灵活,可以配置为带同步/异步复位或置位、时仲 使能的触发器(FF,Flip Flop),也可以配置成为锁存器(Latch)。FPGA中 一般依赖寄存器完成同步时序逻辑设计。比较经典的基本可编程单元配置为 一个寄存器加一个杏找表。但是不间厂商的寄存器和杏找表的内部结构有 定的差异,而且寄存器和查找表的组合模式也不同。例如,Xix可编程透 辑单元叫做Sice,它由上下两部分构成 每部分都由 Register加 LUT组成,被称为LC(Logie Cell,漫辑单元),两个LC之间有一些共用透 辑,可以完成LC之问的配合工作与级连。Altera可编程逻辑单元被称为LE (Logic Element,逻辑单元),由一个Register加一个LUT构成。Lattice的 底层逻辑单元叫做PFU(Programmable Function Unit,.可编程功能单元),它 由8个LUT和9个Re sr构成。当然这些可编程单元的配置结构随着件 的发展也在不断更新,最新的一些可编程逻辑器件常常根据设计需求推出 些新的LUT和Register的配置比率,并更新其内部的连接构造。 学习底层配置单元的LUT和Register比率的一个重要意义在于器件选型 和规模估算。很多器件手册上用器件的ASIC门数或等效的系统门数表示器 件的规模。但是由于目前FPGA内部除了基本可编程辑单元外,还包含有 丰富的嵌入式RAM.PL或DLL 专用H IP Core 硬知识产权功能核 等。这些功能模块也会等效出相当规模的系统门,所以用系统门考核基本可 编程逻辑单元的数量是不准确的。比较科学的方法是用器件的Register或 LUT的数量衡量(因为一般未说两者比率为l:1)。例如,Xilinx的Spartan- Ⅲ系列的XC3S1000有15360个LUT,而Lattice的EC系列LFEC15E也有 15360 所以这两款FPGA的可编程逻辑单元数量基本相当, 腐于同 规模的产品。同样道理,Altera的Cyclone器件族的EPIC12的LUT数司 是12060个,就比前面提到的两款FPGA规模略小。需要说明的是,器件远 型是一个综合性问题,需要将设计的需求、成本压力、规模、速度等级、时 钟资源、V0特性、封装和专用功能棋块等诸多因素综合考患。 (3)嵌入式块RAM 目前大多数FPGA都有内嵌的块RAM(Block RAM)。FPGA内部嵌入可 编程RAM模块,大大地拓晨了FPGA的应用范围和使用灵活性。FPGA内的 的块RAM一般可以灵活地配置为单口RAM(SPRAM,Single Port RAM)、双 口RAM(DPRAM,Double Ports RAM)、伪双口RAM(Pseudo DPRAM) CAM(Content addressable memory)和FlFO(First In First Out)等常用存结 结构。RAM的念和功能迹考应这非常孰悉不再禁球。FGA中其空 有专用的ROM硬件资源 实现ROM的思路是对RAM赋子初值, 并保持议 初值。所谓CAM,即内容地址储存器。CAM这种存储器在其每个存储单元都 包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据 进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM 3
FPGA/CPLD 简介 3 (Register)组成的。FPGA 内部查找表一般为 4 输入(注:Altera Stratix II 的自适应逻辑模块 ALM 结构比较特殊),查找表一般完成纯组合逻辑功能。 FPGA 内部寄存器结构相当灵活,可以配置为带同步/异步复位或置位、时钟 使能的触发器(FF,Flip Flop),也可以配置成为锁存器(Latch)。FPGA 中 一般依赖寄存器完成同步时序逻辑设计。比较经典的基本可编程单元配置为 一个寄存器加一个查找表。但是不同厂商的寄存器和查找表的内部结构有一 定的差异,而且寄存器和查找表的组合模式也不同。例如,Xilinx 可编程逻 辑单元叫做 Slice,它由上下两部分构成,每部分都由一个 Register 加一个 LUT 组成,被称为 LC(Logic Cell,逻辑单元),两个 LC 之间有一些共用逻 辑,可以完成 LC 之间的配合工作与级连。Altera 可编程逻辑单元被称为 LE (Logic Element,逻辑单元),由一个 Register 加一个 LUT 构成。Lattice 的 底层逻辑单元叫做 PFU(Programmable Function Unit,可编程功能单元),它 由 8 个 LUT 和 9 个 Register 构成。当然这些可编程单元的配置结构随着器件 的发展也在不断更新,最新的一些可编程逻辑器件常常根据设计需求推出一 些新的 LUT 和 Register 的配置比率,并更新其内部的连接构造。 学习底层配置单元的 LUT 和 Register 比率的一个重要意义在于器件选型 和规模估算。很多器件手册上用器件的 ASIC 门数或等效的系统门数表示器 件的规模。但是由于目前 FPGA 内部除了基本可编程逻辑单元外,还包含有 丰富的嵌入式 RAM、PLL 或 DLL,专用 Hard IP Core(硬知识产权功能核) 等。这些功能模块也会等效出相当规模的系统门,所以用系统门考核基本可 编程逻辑单元的数量是不准确的。比较科学的方法是用器件的 Register 或 LUT 的数量衡量(因为一般来说两者比率为 1:1)。例如,Xilinx 的 SpartanIII 系列的 XC3S1000 有 15360 个 LUT,而 Lattice 的 EC 系列 LFEC15E 也有 15360 个 LUT,所以这两款 FPGA 的可编程逻辑单元数量基本相当,属于同 一规模的产品。同样道理,Altera 的 Cyclone 器件族的 EP1C12 的 LUT 数量 是 12060 个,就比前面提到的两款 FPGA 规模略小。需要说明的是,器件选 型是一个综合性问题,需要将设计的需求、成本压力、规模、速度等级、时 钟资源、I/O 特性、封装和专用功能模块等诸多因素综合考虑。 (3) 嵌入式块 RAM 目前大多数 FPGA 都有内嵌的块 RAM(Block RAM)。FPGA 内部嵌入可 编程 RAM 模块,大大地拓展了 FPGA 的应用范围和使用灵活性。FPGA 内嵌 的块 RAM 一般可以灵活地配置为单口 RAM(SPRAM,Single Port RAM)、双 口 RAM(DPRAM,Double Ports RAM)、伪双口 RAM(Pseudo DPRAM)、 CAM(Content Addressable Memory)和 FIFO(First In First Out)等常用存储 结构。RAM 的概念和功能读者应该非常熟悉,不再赘述。FPGA 中其实并没 有专用的 ROM 硬件资源,实现 ROM 的思路是对 RAM 赋予初值,并保持该 初值。所谓 CAM,即内容地址储存器。CAM 这种存储器在其每个存储单元都 包含了一个内嵌的比较逻辑,写入 CAM 的数据会和其内部存储的每一个数据 进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM
第1拿1SE系统简介 XILINX 是一种根据地址读、写数据的存储单元:而CAM和RAM恰恰相反,它返回 的是与端口数据相匹配的内部地址。CAM的应用也非常广泛,比如在路由器 中的地址交换表等。FFO即先进先出存储队列。FPGA 内部实现RAM ROM、CAM和FIFO等存储结构都可以基于嵌入式块RAM单元,并根据雪 求生成相应的粘合逻辑(Glu心Logic)以完成地址和片选等控制逻辑。 不同器件商或不同器件族的内嵌块RAM的结构不同,Xilinx常见的块 RAM大小是4Kbit和I8Kbit两种结构,Lattice常用的块RAM大小是9Kbit 些高端器件内部同时 有3种 RAM结构 M4KRAM(4Kbit)和M RAM(512Kbit)。 需要补充一点的是:除了块RAM以外,Xilinx和Lattice FPGA还可以灵 活的将LUT配置成RAM.ROM,FIFO等存储结构,这种技术被称为分布式 RAM(Distributed RAM)。分布式RAM适用于多块小容量RAM的设计。 根据设计需求,块RAM的数量和配置方式也是唇件选型的一个重要标 (4)丰富的布线资源 布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连 线上的驱动能力和传输速度。FPGA内部有着非常丰富的布线资源,这些布 线咨源授据工艺、长度、宽度和分布位置的不间而划分为不间的等级,有 些是全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位/置位 的布线 些叫做长线资源,用以完成器件Bank 的 些高速信号和 第二全局时钟信号的布线:还要一些叫做短线资源,用以完成基本逻辑单列 之间的逻辑互联与布线;另外在基本逻辑单元内即还有着各式各样的布线资 源和专用时钟、复位等控制信号线, 设计者通常不需要直接选择布线资源,实现过程中一般是由布局布线器 自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所 用的底层单元模块,所以设计者通常忽路布线资源。其实布线资源的使用看 设计的实现结果有直接关系。例如本书第4章第3节就介绍了全局时钟资源 和第二全局时钟资源的一些使用事项。在本书的第5意中,很多时序约束国 性就是通过调整布线资源以使设计的布局布线结果达到所雷的时序性能。 (⑤)底层嵌入功能单元 这个概念比较笼统,这里我们指的是那些通用程度较高的入式功能横 块。比如PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP和CPU 等。随着FPGA的发展,这些模块被越来越多地嵌入到FPGA的内部,以满足 不同场合的需求。 目前大多数FPGA厂商都在FPGA内部焦成了硬的DLL.(Delav-Locke Loop)或者PLL(Phase-.Locked】 00p) ,用以完成时钟的高精度 低抖动的信 频、分频、占空比调整、移相等功能。目前高端FPGA产品集成的DLL PLL资源越未越丰富,功能越来越复杂,精度越来越高(一般在100ps的数量 级),Xilinx芯片主要集成的是DLL,Altera芯片集成的是PLL,Lattice的新
第 1 章 ISE 系统简介 4 是一种根据地址读、写数据的存储单元;而 CAM 和 RAM 恰恰相反,它返回 的是与端口数据相匹配的内部地址。CAM 的应用也非常广泛,比如在路由器 中的地址交换表等。FIFO 即先进先出存储队列。FPGA 内部实现 RAM、 ROM、CAM 和 FIFO 等存储结构都可以基于嵌入式块 RAM 单元,并根据需 求生成相应的粘合逻辑(Glue Logic)以完成地址和片选等控制逻辑。 不同器件商或不同器件族的内嵌块 RAM 的结构不同,Xilinx 常见的块 RAM 大小是 4Kbit 和 18Kbit 两种结构,Lattice 常用的块 RAM 大小是 9Kbit, Altera 的块 RAM 最为灵活,一些高端器件内部同时含有 3 种块 RAM 结构, 分别是 M512 RAM(512bit),M4K RAM(4Kbit)和 M-RAM(512Kbit)。 需要补充一点的是:除了块 RAM 以外,Xilinx 和 Lattice FPGA 还可以灵 活的将 LUT 配置成 RAM、ROM、FIFO 等存储结构,这种技术被称为分布式 RAM(Distributed RAM)。分布式 RAM 适用于多块小容量 RAM 的设计。 根据设计需求,块 RAM 的数量和配置方式也是器件选型的一个重要标 准。 (4) 丰富的布线资源 布线资源连通 FPGA 内部所有单元,连线的长度和工艺决定着信号在连 线上的驱动能力和传输速度。FPGA 内部有着非常丰富的布线资源,这些布 线资源根据工艺、长度、宽度和分布位置的不同而划分为不同的等级,有一 些是全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位/置位 的布线;一些叫做长线资源,用以完成器件 Bank 间的一些高速信号和一些 第二全局时钟信号的布线;还要一些叫做短线资源,用以完成基本逻辑单元 之间的逻辑互联与布线;另外在基本逻辑单元内部还有着各式各样的布线资 源和专用时钟、复位等控制信号线。 设计者通常不需要直接选择布线资源,实现过程中一般是由布局布线器 自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所 用的底层单元模块,所以设计者通常忽略布线资源。其实布线资源的使用和 设计的实现结果有直接关系。例如本书第 4 章第 3 节就介绍了全局时钟资源 和第二全局时钟资源的一些使用事项。在本书的第 5 章中,很多时序约束属 性就是通过调整布线资源以使设计的布局布线结果达到所需的时序性能。 (5) 底层嵌入功能单元 这个概念比较笼统,这里我们指的是那些通用程度较高的嵌入式功能模 块。比如 PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP 和 CPU 等。随着 FPGA 的发展,这些模块被越来越多地嵌入到 FPGA 的内部,以满足 不同场合的需求。 目前大多数 FPGA 厂商都在 FPGA 内部集成了硬的 DLL(Delay-Locked Loop)或者 PLL(Phase-Locked Loop),用以完成时钟的高精度、低抖动的倍 频、分频、占空比调整、移相等功能。目前高端 FPGA 产品集成的 DLL 和 PLL 资源越来越丰富,功能越来越复杂,精度越来越高(一般在 100 ps 的数量 级)。Xilinx 芯片主要集成的是 DLL,Altera 芯片集成的是 PLL,Lattice 的新
XILINX FPGA/CPL.D简介 型FPGA同时集成了PLL与DLL以适应不同的需求。Xilinx芯片DLL的模块 名称为 CLKDLL 在高端FPGA中,CLKDLL的增强型模块为DCM(Digita Clock Manager,数字时钟管理模块)。Altera芯片的PLL模块也分为增强型 PLL(Enhanced PLL)和高速PLL(Fast PLL)等。这些时钟模块的生成和配 置方法一般分为两种,一种是在HDL代码和原理图中直接实例化,另一种方 法是在P核生成器中配置相关念数,自动生成P。XiX的P核生成器叫做 Core Get erator. 另外在Xilinx ISE6x版本中通过Architectu Wizard生成 DCM模 。Altera的P核生成器叫做Mega Wizard。.Lattice的IP核生成器 称为Module/IP Manager.。另外可以通过在综合,实现步骤的约束文件中编写 约束属性完成时钟模块的约束。 越来越多的高端FPGA产品将包含DSP或CPU等软处理核,从而FPGA 将由传统的硬件设计手段逐步过请为系统级设计工具。例如Xi的VtexⅡ 和VirtexⅡPro系列FPGA内部集成了Power ,PC450的CPU Cor MicroBlaze RISC处理器Core;而Altera的Stratix、Stratix GX atⅡ等 件族内部集成了DSP Core:Lattice的ECP系列FPGA内部集成了系统DSP Cor心模块。这些CPU或DSP处理模块的硬件主要由一些加、乘,快速进位 链,Pipelining和Mu取等结构组成,加上用逻辑资源和块RAM实现的软核部 分,就组成了功能强大的软计算中心。这种CPU或DSP比较适合实现FR 茨器 骗码解码和FFT(快速傅立叶变换)等运算。 FPGA 内部嵌入 PU或 DSP等处理器,使FPGA在一定程度上具备了实现软硬件联合系统的能力, FPGA正逐步称为SOC(System On Chip)的高效设计平台。Xilinx的SOC设 计工具是EDK和Platform Studio,在ISE6.x中已经集成了EDK和Monta Vista 、Wind River VxWorks,QNX Neutrino等常用设计软件的接口。 内嵌专用 硬核 内嵌专用硬核是相对于前文所述“底层嵌入单元”而言的,它主要指那些 通用性相对较差,不为大多数FPGA器件所包含的硬核(Hard Core)。我们称 FPGA和CPLD为通用逻辑器件,是区分于专用集成电路(ASIC)而言的。共 实PGA内部也有两个阵营:一方面是通用性较强,目标市场范围很广,价格 话中的FPGA:另一方面是针对性较强,目标市场明确,价格较高的FPGA ,后者主要指某些高端通信市场的可编 口标准 ,很多高端 FPGA集咸了SERDES(串并收发器)等专用Hard Core。例如Xilinx的Virtex ⅡPro内部集成了3.125 G SERDES,支持Rocket IO标准;Altera的对应器件族 为Stratix GX:Lattice器件的专用Hard Core的比重更大,有两粪器件族支持 SERDES功能,分别是Lattice高端SC系列FPGA和现场可编程系统芯片 (FPSC Field Programmable System Chip) 需要补充的是目前Xilinx和 Lattice都已经推出内嵌I0 Gbps SERDES模块的系统级可编程逻辑器件。 CPLD在工艺和结构上都与FPGA有一定的区别,如前面介绍,FPGA一般都是SRAM 工艺的,如Xilinx、.Altera和Lattice的系列FPGA器件,其基本结构都是基于查找表加寄存 5
FPGA/CPLD 简介 5 型 FPGA 同时集成了 PLL 与 DLL 以适应不同的需求。Xilinx 芯片 DLL 的模块 名称为 CLKDLL,在高端 FPGA 中,CLKDLL 的增强型模块为 DCM(Digital Clock Manager,数字时钟管理模块)。Altera 芯片的 PLL 模块也分为增强型 PLL(Enhanced PLL)和高速 PLL(Fast PLL)等。这些时钟模块的生成和配 置方法一般分为两种,一种是在 HDL 代码和原理图中直接实例化,另一种方 法是在 IP 核生成器中配置相关参数,自动生成 IP。Xilinx 的 IP 核生成器叫做 Core Generator,另外在 Xilinx ISE 6.x 版本中通过 Architecture Wizard 生成 DCM 模块。Altera 的 IP 核生成器叫做 Mega Wizard。Lattice 的 IP 核生成器被 称为 Module/IP Manager。另外可以通过在综合、实现步骤的约束文件中编写 约束属性完成时钟模块的约束。 越来越多的高端 FPGA 产品将包含 DSP 或 CPU 等软处理核,从而 FPGA 将由传统的硬件设计手段逐步过渡为系统级设计工具。例如 Xilinx 的 Virtex II 和 Virtex II Pro 系列 FPGA 内部集成了 Power PC 450 的 CPU Core 和 MicroBlaze RISC 处理器 Core;而 Altera 的 Stratix、Stratix GX 和 Stratix II 等器 件族内部集成了 DSP Core;Lattice 的 ECP 系列 FPGA 内部集成了系统 DSP Core 模块。这些 CPU 或 DSP 处理模块的硬件主要由一些加、乘、快速进位 链、Pipelining 和 Mux 等结构组成,加上用逻辑资源和块 RAM 实现的软核部 分,就组成了功能强大的软计算中心。这种 CPU 或 DSP 比较适合实现 FIR 滤 波器、编码解码和 FFT(快速傅立叶变换)等运算。FPGA 内部嵌入 CPU 或 DSP 等处理器,使 FPGA 在一定程度上具备了实现软硬件联合系统的能力, FPGA 正逐步称为 SOC(System On Chip)的高效设计平台。Xilinx 的 SOC 设 计工具是 EDK 和 Platform Studio,在 ISE 6.x 中已经集成了 EDK 和 MontaVista Linux、Wind River VxWorks、QNX Neutrino 等常用设计软件的接口。 (6) 内嵌专用硬核 内嵌专用硬核是相对于前文所述“底层嵌入单元”而言的,它主要指那些 通用性相对较差,不为大多数 FPGA 器件所包含的硬核(Hard Core)。我们称 FPGA 和 CPLD 为通用逻辑器件,是区分于专用集成电路(ASIC)而言的。其 实 FPGA 内部也有两个阵营:一方面是通用性较强,目标市场范围很广,价格 适中的 FPGA;另一方面是针对性较强,目标市场明确,价格较高的 FPGA。 前者主要指低成本(Low Cost)FPGA,后者主要指某些高端通信市场的可编 程逻辑器件。为了提高 FPGA 性能,适用高速通信总线与接口标准,很多高端 FPGA 集成了 SERDES(串并收发器)等专用 Hard Core。例如 Xilinx 的 Virtex II Pro 内部集成了 3.125G SERDES,支持 Rocket IO 标准;Altera 的对应器件族 为 Stratix GX;Lattice 器件的专用 Hard Core 的比重更大,有两类器件族支持 SERDES 功能,分别是 Lattice 高端 SC 系列 FPGA 和现场可编程系统芯片 (FPSC,Field Programmable System Chip)。需要补充的是目前 Xilinx 和 Lattice 都已经推出内嵌 10 Gbps SERDES 模块的系统级可编程逻辑器件。 CPLD 在工艺和结构上都与 FPGA 有一定的区别,如前面介绍,FPGA 一般都是 SRAM 工艺的,如 Xilinx、Altera 和 Lattice 的系列 FPGA 器件,其基本结构都是基于查找表加寄存
第1拿1SE系统简介 XILINX 婴结构的。而CPLD,一般都是基于乘积顶结构的,如Atea的MAX000、MAX3000 (EPROM工艺)系列器件,Lattice的ispMACH4OO0 工艺)系列器件,Xilinx的XC9s00(0.35μnCMOS Fast Flash工艺)、CoolRunner2 (0.18 umCMOS工艺)系列器件等都是基于乘积项的CPLD。 CPLD的结构相对比较简单,主要由可编程VO单元、基本逻辑单元、布线池和其他辅 助功能模块构成,如图1-2所示。 AIM LAB 国1-2CPD的结构示意图 (⑦)可编程0单元 CPLD的可编程I/O单元和FPGA的可编程I/O单元的功能一致,同样克 成不同电气特性下对输入出信号的驱动与匹配。由于CPLD的应用范国局 限性较大,所以其可编程VO的性能和复杂度与FPGA相比有相当的差距。 CPLD的可编程I/O支持的I/O电气标准较少,频率也较低。 (⑧)基本逻辑单元 与FPGA相似,基本逻辑单元是CPLD的主体,通过不同的配置方式 CPLD的基本逻辑单元可以完成不同类型的逻辑功能。需要强调的是,CPLD 的基本逻辑单元的结构与FPGA相差较大 ,前面介绍过,FPGA的卷本逻 元基本是由LUT和Register按照1:1的比例组成的;而CPLD中没有LUT 这种概念,其基本逻辑单元是一种被称为宏单元(Macro Cell,简称MC)的 结构。所谓宏单元,其本质是由一些与、或阵列加触发器构成,其中与、或阵 列完成组合逻辑功能,触发暴完成时序逻辑。CPLD器件规模一服用MC的数 目表示累件标称中的数字一般都含有该器件的MC数量。CPD厂事通讨 将若千个MC连接起来完成相对复 些的菱辑功能, ,不同厂商的这种MC集 合的名称不同,Xilinx9500和CoolRunner2.将之称为功能模块(FB,Function Block):Lattice的LC4000、ispLSI5000、ispLSI2000系列CPLD将之称为通用 菱辑模块(GLB,Generic Logie Block):Altera的MAX7000、MAX3OO0系列 EPLD将之称为逻辑阵列模块(LAB,Logic Array Block),其功能一致,但结
第 1 章 ISE 系统简介 6 器结构的。而 CPLD,一般都是基于乘积项结构的,如 Altera 的 MAX7000、MAX3000 (E2 PROM 工艺)系列器件,Lattice 的 ispMACH4000、ispMACH5000(0.18µm E2 COMS 工 艺 ) 系 列 器 件 ,Xilinx 的 XC9500(0.35µmCMOS Fast Flash 工 艺 )、CoolRunner2 (0.18µmCMOS 工艺)系列器件等都是基于乘积项的 CPLD。 CPLD 的结构相对比较简单,主要由可编程 I/O 单元、基本逻辑单元、布线池和其他辅 助功能模块构成,如图 1-2 所示。 CLK0/I CLK3/I CLK1/I CLK2/I TCK TMS TDI TDO VCC GND GOE1 GOE0 逻辑单元 GLB FB LAB I/O 单元 布线池 布线矩阵 GRP AIM PIA BANK 0 VCCO0 GND BANK 1 CLK JTAG VCCO0 GND I/O 单元 I/O 单元 I/O 单元 逻辑单元 GLB FB LAB 逻辑单元 GLB FB LAB 逻辑单元 GLB FB LAB 图1-2 CPLD 的结构示意图 (7) 可编程 I/O 单元 CPLD 的可编程 I/O 单元和 FPGA 的可编程 I/O 单元的功能一致,同样完 成不同电气特性下对输入/输出信号的驱动与匹配。由于 CPLD 的应用范围局 限性较大,所以其可编程 I/O 的性能和复杂度与 FPGA 相比有相当的差距。 CPLD 的可编程 I/O 支持的 I/O 电气标准较少,频率也较低。 (8) 基本逻辑单元 与 FPGA 相似,基本逻辑单元是 CPLD 的主体,通过不同的配置方式, CPLD 的基本逻辑单元可以完成不同类型的逻辑功能。需要强调的是,CPLD 的基本逻辑单元的结构与 FPGA 相差较大。前面介绍过,FPGA 的基本逻辑单 元基本是由 LUT 和 Register 按照 1:1 的比例组成的;而 CPLD 中没有 LUT 这种概念,其基本逻辑单元是一种被称为宏单元(Macro Cell,简称 MC)的 结构。所谓宏单元,其本质是由一些与、或阵列加触发器构成,其中与、或阵 列完成组合逻辑功能,触发器完成时序逻辑。CPLD 器件规模一般用 MC 的数 目表示,器件标称中的数字一般都包含有该器件的 MC 数量。CPLD 厂商通过 将若干个 MC 连接起来完成相对复杂一些的逻辑功能。不同厂商的这种 MC 集 合的名称不同,Xilinx 9500 和 CoolRunner2 将之称为功能模块(FB,Function Block);Lattice 的 LC4000、ispLSI5000、ispLSI2000 系列 CPLD 将之称为通用 逻辑模块(GLB,Generic Logic Block);Altera 的 MAX7000、MAX3000 系列 EPLD 将之称为逻辑阵列模块(LAB,Logic Array Block),其功能一致,但结
XILINX FPGA/CPL.D简介 构略有不同。 CPLD本逻辑单元相关的另外一个重要概念是乘积项。所调乘积项即 MC中与阵列的输出,其数量标志了CPLD容量,对CPLD的性能也有一定的 影响,不同厂商的CPLD定制的乘积项数目不同。乘积项阵列,实际上就是 个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻 摇,在与阵列后一般还有一个“或”阵列,用以宗成最小罗辑表达式中的 “或”关系。两者配合工作,完成复杂的组合逻辑功能。MC中的可编程触发 器与FPGA内部的可编程触发器相似, 一般也包含时钟、复位/置位的配置功 能,用以完成寄存悬或者锁存器等功能。 (9)布线池、布线矩阵 CPLD的布线与连通方式与FPGA差异较大。前面讲过,FPGA内部有不 间速度、不间驱动能力的丰富连线资源,用以完成FPGA内部所有单元之间的 互联互通。而CPLD的结构比较简单,其布线资源也相对有限, 般采用集中 式布线池结构。所谓布线 其本质就是一个开关矩阵,通过打结点可以完成不 同MC的输入与输出项之间的连接。Xilinx9500系列CPLD的布线池被称为 高速互联与交又矩阵(FastCONNECTⅡSwiteh Matrix).,而CoolRunner II系列 CPLD则被称为先进的互联短阵(AM,Advanced Interconnect matrix): Lattice的布线池被称为全局布线池(GRP,Global Routing Pool):Altera的布 线池叫做可编程互联阵列(PIA, Programmab le Interconnect Array) CPLD的器件内部互联资源比较缺乏,所以在某些情况下器件布线时会遇到 定的困准,Lattice的LC4OO0系列器件在输出I/Bank和功能模块GLB之问 还添加了一层输出布线池(ORP,Output Routing Pool),在一定程度上提高了 设计的布通率。 由于CPLD的布线池结构固定,所以CPLD的输入管脚到输出管脚的标准 延时固定,被称为Pin to Pin廷时 用Tpd表示。Pin to Pin延时 反应了CPLD 器件可以实现的最高频率,也就清晰地标明了CPLD器件的速度等级。 (10)其他辅助功能模块 CPLD中还有一些其他的辅助功能模块,如TAG(IEEE1532、EEE 1149.1)编程模块,一些全局时钟、全局使能、全局复位/置位单元等。 1.1.2FPGA和CPLD的特点 FPGA/CPLD既继承了ASIC的大规模、高集成度、高可靠性的优点,又克服了普通 ASIC设计周期长、投资大、灵活性差的缺点,逐步成为复杂数字硬件电路设计的理想尚 选。当代FPGA、CPLD有以下特点: 规模越来越大 随着VLSI(Very Large Scale IC,超大规模集成电路)工艺的 不断提高,单一芯片内部可以容纳上百万个晶体管,FPGA芯片的规模也越 越大。单片逻辑门数已愈百万,如Xilinx Virtex---II Pro XC2VPI25已经达到 1250万门以上的规模。芯片的规模越大所能实现的功能就越强,同时也更适 7
FPGA/CPLD 简介 7 构略有不同。 与 CPLD 基本逻辑单元相关的另外一个重要概念是乘积项。所谓乘积项即 MC 中与阵列的输出,其数量标志了 CPLD 容量,对 CPLD 的性能也有一定的 影响,不同厂商的 CPLD 定制的乘积项数目不同。乘积项阵列,实际上就是一 个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻 辑,在与阵列后一般还有一个“或”阵列,用以完成最小逻辑表达式中的 “或”关系。两者配合工作,完成复杂的组合逻辑功能。MC 中的可编程触发 器与 FPGA 内部的可编程触发器相似,一般也包含时钟、复位/置位的配置功 能,用以完成寄存器或者锁存器等功能。 (9) 布线池、布线矩阵 CPLD 的布线与连通方式与 FPGA 差异较大。前面讲过,FPGA 内部有不 同速度、不同驱动能力的丰富连线资源,用以完成 FPGA 内部所有单元之间的 互联互通。而 CPLD 的结构比较简单,其布线资源也相对有限,一般采用集中 式布线池结构。所谓布线池其本质就是一个开关矩阵,通过打结点可以完成不 同 MC 的输入与输出项之间的连接。Xilinx 9500 系列 CPLD 的布线池被称为 高速互联与交叉矩阵(FastCONNECT II Switch Matrix),而 CoolRunner II 系列 CPLD 则被称为先进的互联矩阵(AIM,Advanced Interconnect Matrix); Lattice 的布线池被称为全局布线池(GRP,Global Routing Pool);Altera 的布 线池叫做可编程互联阵列(PIA,Programmable Interconnect Array)。由于 CPLD 的器件内部互联资源比较缺乏,所以在某些情况下器件布线时会遇到一 定的困难,Lattice 的 LC4000 系列器件在输出 I/O Bank 和功能模块 GLB 之间 还添加了一层输出布线池(ORP,Output Routing Pool),在一定程度上提高了 设计的布通率。 由于 CPLD 的布线池结构固定,所以 CPLD 的输入管脚到输出管脚的标准 延时固定,被称为 Pin to Pin 延时,用 Tpd 表示。Pin to Pin 延时反应了 CPLD 器件可以实现的最高频率,也就清晰地标明了 CPLD 器件的速度等级。 (10) 其他辅助功能模块 CPLD 中还有一些其他的辅助功能模块,如 JTAG(IEEE 1532、IEEE 1149.1)编程模块,一些全局时钟、全局使能、全局复位/置位单元等。 1.1.2 FPGA 和 CPLD 的特点 FPGA/CPLD 既继承了 ASIC 的大规模、高集成度、高可靠性的优点,又克服了普通 ASIC 设计周期长、投资大、灵活性差的缺点,逐步成为复杂数字硬件电路设计的理想首 选。当代 FPGA、CPLD 有以下特点: • 规模越来越大。随着 VLSI(Very Large Scale IC,超大规模集成电路)工艺的 不断提高,单一芯片内部可以容纳上百万个晶体管,FPGA 芯片的规模也越来 越大。单片逻辑门数已愈百万,如 Xilinx Virtex-II Pro XC2VP125 已经达到 1250 万门以上的规模。芯片的规模越大所能实现的功能就越强,同时也更适