FPGA与CPLD 总结

FPGA与CPLD 总结
FPGA与CPLD 总结

CPLD(complex programable logic device)复杂可编程逻辑器件

FPGA(field programable gate array)现场可编程门阵列

FPGA和CPLD的逻辑单元本身的结构与SPLD相似,即与阵列和可配置的输出宏单元组成。FPGA逻辑单元是小单元,每个单元只有1-2个触发器,其输入变量通常只有几个因而采用查找表结构(PROM形式)

这样的工艺结构占用的芯片面积小,速度高(通常只有1-2纳秒),每个芯片上能集成的单元数多,但逻辑单元功能弱。

如果想实现一个较复杂的功能,需要几个这样的单元组合才能完成(总延时是各个单元延时和互连延时的和),互连关系复杂。

CPLD中的逻辑单元是单元,通常其变量数约20-28个。因为变量多,所以只能采用PAL结构。由于这样的单元功能强大,一般的

逻辑在单元内均可实现,因而其互连关系简单,一般通过集总总线既可实现。电路的延时通常就是单元本身和集总总线的

延时(通常在数纳秒至十几纳秒),但是同样集成规模的芯片中的触发器的数量少得多。从上面分析可知道:小单元的FPGA较适合数据型系统,这种系统所需要的触发器数多,但是逻辑相对简单;大单元的CPLD较适合

逻辑型系统,如控制器等,这种系统逻辑复杂,输入变量多,但触发器需求量相对较少。

反熔丝工艺只能一次性编程,EPROM EEPROM 和FLASH工艺可以反复的编程,但是他们一经编程片内逻辑就被固定。他们都是

只读型(ROM)编程,这类编程不仅可靠性较高还可以加密。

XILINX公司的FPGA芯片采用RAM型编程,相同集成规模的芯片中的触发器数目较多,功耗低,但是掉电后信息不能保存,必须

与存储器联用。每次上电时必须先对芯片配置,然后才能使用,这似乎是RAM型PLD的缺点,但是ROM型PLD中的编程信息在使用时

是不能变化的,RAM型PLD却可以在工作时更换内容,实现不同的逻辑。

CPLD和FPGA的结构,性能对照:

CPLD FPGA PROM

集成规模:小(最大数万门)大(最高达百万门)

单元粒度:大(PAL结构)小(PROM结构)

互连方式:集总总线分段总线长线专用互连

编程工艺:EPROM EEPROM FLASH SRAM

编程类型:ROM RAM型须与存储器联用

信息:固定可实时重构

触发器数:少多

单元功能:强弱

速度:高低222222222222222222222222222222222222

延迟:确定,可以预测不能确定不能预测

功耗:高低

加密性能:可加密不能加密

适用场合:逻辑型系统数据型系统

LCA(LOGIC CELL ARRAY)逻辑单元阵列

CLB(CONFIGURABLE LOGIC BLOCK)可配置逻辑模块

IOB(INPUT OUTOUT BLOCK)输入输出块

Spartan-xl系列FPGA的主要特性

SPARTAN-XL系列的FPGA具有低压,低功耗的特点。随着外界提供的电压降低到3.3v,该系列FPGA比在5v电压工作下的功耗降低

了一半。此外该系列FPGA为计数器和算术应用提供了更高的速度,工作频率超过120MHz。

SPARTAN-XL系列FPGA是唯一提供片上RAM代替ASCI设计FPGA产品。这种片上RAM就是可选RAM存储器,可有效的用于FIFO,位移存储等设计。

SPARTAN-XL系列FPGA采用了标准的FPGA结构,主要包括3个部分:

1:可配置逻辑块(CLBs):CLBs用于实现用户设计的逻辑功能;(包括3个查找表LUT,他们用做逻辑函数发生器,还有两个触发器以及

两组信号多路选择器)

2:输入输出块(IOBs):IOBs提供芯片的封装引脚与内部信号连线之间的接口;

3:布线资源:其用于CLBs和IOBs的输入和输出之间的连接;SPARTAN-XL系列的FPGA存储器的配置模式主要有两种:单端RAM和双端RAM。对于这两种模式,写操作是同步的(边沿触发),而读操作是异步

的。在单端模式中,一个CLB可配置一个16*1,或(16*1)*2,或是32*1的RAM阵列。在双端模式下,一个CLB仅能配置成一个16*1的RAM阵列。

SPARTAN-Ⅱ系列FPGA是XILINX公司生产的代替ASIC的第二代FPGA产品。该系列FPGA密度高达5292个逻辑元胞,即20*10000个系统门,采用基于

VIRTEX TM结构的流水线新结构,片内含有嵌入式RAM,并采用先进的0.22/0.18цm半导体工艺,6层板结构。具有无限可编程性。

SPARTAN-Ⅱ系列FPGA的主要特性:

SPARTAN-Ⅱ系列FPGA芯片采用低压布线结构。片内含有丰富的寄存器/锁存器,时钟使能信号,同步,异步置位/复位信号。为了增强时钟

控制提供了4个精确的延时锁项环(DLLs);含有4个主要全局低偏移时钟分配网络,以及24个次全局网络;有两种类型的片上随机存取内存

(SELECTRAM TM):块状分布式RAM。为满足高速预算设计的进位逻辑提供精确的乘法器,以适应各种PCI应用。

SPARTAN-Ⅱ系列FPGA的基本结构原理:

SPARTAN-Ⅱ系列FPGA主要包括5个可配置部分:

1:可配置逻辑块(CLBs),用于实现大部分逻辑功能;(构成CLB的基本结构是逻辑元胞LC,一个LC包括一个4输入的函数发生器,进位逻辑和一个存储部分。每个LC中,函数发生器的输出既是CLB的输出又是D触发器的输入。每个SPARTAN-Ⅱ系列FPGA包括4个LCs。每个CLB由相似的两个单元构成。除了4个基本的LCs之外,SPARTAN-Ⅱ系列FPGA CLB还包括可以提供5输入或是6输入的函数发生器。因此在估计所给器件系统门数时,应以每个CLB包含4.5个LCs计算。)

2:在CLBs的周围分布着可编程的输入输出(IOBs),提供引脚与内部逻辑之间的连接接口;

3:丰富的多层互连结构;

4:片上随机存去内存(SELECTRAM TM);

5:DLL时钟控制块;

SPARTAN-Ⅱ系列FPGA的先进结构

1:块状RAM

在SPARTAN-Ⅱ系列FPGA中有几个大的块状RAM。这些块状RAM是按列排列的。所有SPARTAN-Ⅱ系列FPGA器件都有两个这样的列,他们沿着芯片垂直边排列。每个块状

RAM有4个CLBs高,因此一个有8个CLBs高的SPARTAN-Ⅱ系列FPGA芯片每列有两个块状RAM,整个芯片共有4块RAM。

每个块状RAM是一个完全同步的有4096bit的双端RAM,其中每一端都有独立的控制信号。可独立配置两个端口的数据宽度。

2:延迟锁项环(DLL)

在SPARTAN-Ⅱ系列FPGA中,没个全局时钟输入缓冲器相连有一个全数字式的延迟锁项环,DLL可使时钟输入信号与整个芯片内部的时钟输入引脚之间偏差减少到最小。每个DLL可以驱动两个全局时钟网络。DLL控制输入时钟,分布的时钟并可以自动调整时钟的延迟。

XILINX高密度系统级FPGA的结构与工作原理

VIRTEX TM-E1.8v系列FPGA:

VIRTEX TM-E系列FPGA是高性能,高密度的可编程逻辑器件。采用了先进的6层金属0.18цm的CMOS工艺,优化的新型结构,使硅片得到了有效的利用。

VIRTEX TM-E1.8v系列FPGA的主要特性

高速,高密度的VIRTEX TM-E1.8v系列FPGA专为低压操作设计。其系统门数从58k 到4M;可提供高达130MHz的内部性能;PCI适用于3.3v,32/64位,33/66MHz。该系列FPGA还具有高灵活的SELECTI/O TM 技术,可支持20种高性能的I/O接口标准并具有高达804个单端I/O口或344对差分I/O口。支持差分信号LVDS(622Mb/s),BLVDS(总线LVDS),LVPECL;差分的I/O信号口可做输入,输出或是I/O口;并兼容标准差分设备;其中LVPECL和LVDS的输入为300MHz。并且该系列FPGA还拥有独有的高性能SELECTLINK TM 技术。芯片内部包括1Mb的内部可配置分布式RAM以及高达832k的内部块状RAM;存储器的带宽达到1.66Tb/s;为外部存储器提供高性能的接口;并提供200MHz ZBT SRAMs(ZBT是一种集成技术的商标)及200Mb/s的DDR SDRAMs。该系列FPGA 还具有高性能的时钟控制环。片内有八个全数字化的延迟锁项环(DLLs)可对时钟倍频和分频,该系列FPGA还提供多种先进的封装形式:0.88mm的芯片封装,1.0mm的BGA,1.27mm的BGA,HQ/PQ等封装形式。

VIRTEX TM-E1.8v系列FPGA的基本结构原理

VIRTEX TM-E系列FPGA器件基本结构主要包括:

1:可配置逻辑单元(CLBs)。CLBs用于实现用户设计的逻辑功能;(可编程逻辑块CLB 的基本单元是逻辑元胞(LC)。一个LC包括一个4输入的函数发生器,进位逻辑和一个存储部分。在每个LC中,函数发生器的输出即可以作为CLB的输出信号,也可以作为D触发器的输入信号。每个CLB包括4个LCs,他们位于相同的两个单元中。)每个CLB中有4条直接回读路径,每一个单元有两条。这些路径提供了附加的数据输入线,减少了逻辑资源消耗。此外,每个CLB中还有两个三态缓冲器(BUFTs),他们可以驱动片上总线。每个BUFT有一个独立的三态控制引脚和一个独立的输入引脚。

2:输入输出块(IOBs)。IOBs提供封装引脚与内部信号之间的接口;

3:丰富的布线资源。它提供CLBs和IOBs的输入输出之间的连接,使VIRTEX TM-E 系列器件能适用更大,更复杂的设计。

VIRTEX TM-E1.8v中的1.8v是核心电压,他还有与之配置的I/O引脚的外部电压(其值取决与配置工作电压可以是1.8 2.5 3.3)。

VIRTEX TM-E系列FPGA先进的结构特征:VIRTEX TM-E系列FPGA提供了大量的片上和片外RAM资源。除了片上分布式SELECT RAM和块状SELECT RAM ,一个VIRTEX TM器件也可以直接与片外兆字节的高速SRAMs和DRAMs相接。高速SELECT I/O TM 和片上时钟延迟锁项环(DLL)使系统以最大的RAM速度操作。

VIRTEX TM2.5v系列FPGA的结构和功能原理

VIRTEX TM2.5v系列FPGA的主要特性:

VIRTEX TM系列FPGA是快速,高密度的可编程门阵列。其系统门数从50K到1M。系统性能高达200MHz,并能兼容66MHz的PCI。可支持多种SELECT I/O TM接口及16种高性能的接口标准,可直接与ZBTRAM器件相连。该系列FPGA还拥有片内时钟控制电路。片内有4个精细的延迟锁项环(DLLs),4个低偏移的主全局时钟分配网络,以及24个次级全局时钟网络。拥有分等级的存储器系统。查找表(LUTs)可配置16bitRAM,32bitRAM,16bit双端RAM,以及16bit的移位寄存器。可配置的同步双端4Kbit RAM。并可以提供与外部高性能的RAMs的快速接口。为运算提供精细的进位逻辑及精细的乘法器。丰富的寄存器/锁存器,他们带有时钟使能信号和同步/异步置位/复位信号。

VIRTEX TM2.5v系列FPGA的基本结构原理

VIRTEX TM2.5v系列FPGA的器件主要包括两个可配置部分:

1:可配置逻辑单元(CLBs):用于实现用户设计的逻辑功能;

2:输入输出模块(IOBs):IOBs提供封装引脚与CLBs之间的接口。CLBs利用一个通用的布线矩阵(GRM)实现互连。GRM由位于水平和垂直布线通道交叉点上的一组布线开关构成。每个CLB嵌入一个VersaBlock TM中,他提供CLB与GRM的局部互连。VersaRing TM I/O接口为器件周围的外设部分提供了布线资源。

此外VIRTEX TM FPGA系列器件结构还包括以下与GRM相连的一些电路:

1:精细的块状存储器(每个有4096bit);

2:时钟延迟锁项环(DLLs),用于缩小时钟分配延时及对时钟主频控制

3:与每个CLB相连的三态缓冲器(BUFT)

VIRTEX TM系列FPGA器件的各个部分结构与VIRTEX-E TM系列的FPGA器件结构相类似

VIRTEX TM2.5v系列的FPGA采用了CS TQ PQ/HQ BG FG等多种新型的封装形式XILINX CPLD的基本结构和工作原理

XILINX公司的CPLD以其操作灵活,使用方便,开发迅速,投资风险低,编程/擦除达10000次以上等特点,成为一种用于硬件电路优化设计的具有竞争力的产品。XILINX的CPLD主要有5v的XC9500系列和3.3v的XC9500XL系列,以及低工耗的Cool Runner CPLD 系列。各种系列的CPLD为设计师们从实现简单的PAL综合设计到先进的实时硬件现场升级的全套方案。经验证的引脚锁定功能,最先进的JTAG测试功能,使设计者的编程,测试和设计实验更为方便,快捷。

低功耗的CoolRunner CPLD的结构原理

CoolRunner TM XPLA3系列CPLD的主要特性:

CoolRunner TM XPLA3系列CPLD采用先进的0.53μm,5个金属层的EECOMS工艺制造。其整个COMS结构采用FZP(Fast Zero Power)设计技术,既可以保证超低功耗又可以保证教高的速度。该系列CPLD的静态功耗极小且输入寄存器的信号建立时间仅为2.0ns,引脚至引脚延时仅为5.0ns。其工作电压为3.3v,并具有5v的容差。片内可提供多种时钟选择,增强了设计的灵活性。

CoolRunner TM XPLA3系列CPLD的基本结构原理:

XPLA3主要由用一个零功耗的互连阵列(ZIA)互连在一起的逻辑块构成。ZIA是一个虚拟的交叉开关。每个逻辑块有36条输入来自ZIA,并包含16个宏单元。该结构与其他的CPLD结构类似。但是XPLA3系列CPLD的独特之处在于每个逻辑块内部逻辑的布局以及用于实现这些逻辑块的设计技术不同的。

XC9500系列CPLD结构和工作原理:

XC9500系列CPLD采用了ISP技术。采用ISP技术之后,器件编程不需要硬件编程器,只需要一根下载电缆通过下载软件和器件的编程接口相连即可实现。并且,可以在产品设计和制造的任何一个环节,甚至在产品卖给最终用户之后,仍可以方便地改写ISP器件的逻辑功能,即可通过软件进行硬件升级。

XC9500系列CPLD器件的主要特性

XC9500系列CPLD是一种采用先进的FastFlash ISP技术的CPLD。其采用基于Flash 的0.35μm技术,可以提供10000次以上的编程/擦除周期。该系列CPLD的宏单元数从36个到288个。器件封装的引脚数从44个到352个;有PLCC VQFP CSP TQFP PQFP HQFP BGA CSP(Chip Scale Package)等芯片封装形式。

XC9500系列CPLD共分为5.0v,3.3v和2.5v三种CPLD系列:

1:XC9500XV系列CPLD:2.5v ISP;引脚至引脚延时3.5ns,f=200MHz;多种电压的I/O接口;可支持的电压3.3/2.5/1.8v;

2:XC9500XL系列CPLD:3.3v ISP;引脚至引脚延时4ns ,f=196MHz;多种电压的I/O接口;可支持的电压5.0/3.3/2.5v;

3:XC9500 系列CPLD:5.0v ISP;引脚至引脚延时5ns ,f=125MHz;多种电压的I/O 接口;可支持的电压5.0/3.3v;

XC9500XL3.3V系列CPLD的结构:每一个XC9500XL系列CPLD由多个功能块(FB)和I/O块(IOB)组成,可用开关距阵FastCONNECTⅡ完全互连的子系统,IOB提供器件输入和输出缓冲,每个FB提供具有54个输入和18个输出的可编程逻辑的内容量,可用开关距阵FastCONNECTⅡ连接所有的FB的输出,输入信号。每个FB,有高达18个输出(根据封装的引脚数)和相对应的输出使能信号直接驱动IOBs。

各种CPLD与FPGA的区别:

1:XC9500 Flash工艺PLD,常见型号有XC9536,XC9572,XC95144。95是型号。型号后两位表示宏单元数量

2:CoolRunner(XPLA3) 原是PHILIPS的PLD产品,99年被Xilinx收购,特点是功耗很低,可以用于电池供电系统,已经被CoolRunnerII取代。

3:CoolRunner-II 最新一代1.8v低功耗PLD产品,适合用于电池供电系统

4:XC4000 主要有XC4000E(5v),XC400XL/XLA(3.3v),XC4000XV(2.5v) 容量从64到8464个CLB,属较早期的产品,基本不推广。

5:SPARTAN :中等规模SRAM工艺FPGA,已经被SpartanIIE等新产品取代。

6:SPARTAN-II : 2.5vSRAM工艺FPGA, SPARTAN的升级产品

7:Spartan-IIE:1.8v中等规模FPGA,与Virtex-E的结构基本一样,是VirtexE的低价格版本,主流器件。

8:Virtex /Virtex-E :大规模SRAM工艺FPGA,逐渐被VirtexII取代

9:Virtex-II:新一代大规模SRAM工艺FPGA产品,主流器件

10:Virtex-II pro: 基于VirtexII的结构,内部集成CPU和高速接口的FPGA产品

11:SpartanIII:最新一代FPGA产品,结构与VirtexII类似,90nm工艺。

12:SpartanIII:最新一代FPGA产品,结构与VirtexII类似,90nm工艺,将于2004年逐步开始量产

13:Virtex-4 SX:侧重数字信号处理,DSP模块比较多,预计2006年年初开始量产

14:Virtex-4 FX:集成PowerPC和高速接口收发模块,预计2006年年初开始量产

门”一般用于ASIC的规模衡量,对于FPGA来讲,基本逻辑单元(LE:ALTERA概念)才是最准确的。一个基本逻辑单元包含一个触发器、一个四输入LUT和级连链、进位链等。XILINX的器件通常用CLB或者SLICE来衡量,不同的器件,一个CLB含2个、4个SLICE

不等,但是一个SLICE含两个基本逻辑单元。LC是XILINX自造的一个概念,是因为如果用基本逻辑单元来算,虽然ALTERA和XILINX的某款器件一样,但是实际上XILINX的器件因为多了MUXF5、MUXF6、MUXF7这些咚咚,所以实际上可以实现更多的功能。XILINX于是把多出来的这些ALTERA没有的咚咚折算成四分之一个基本逻辑单元。

一般来说,一个FPGA的基本逻辑单元相当于ASIC的7到15个门,为什么不是一个确切值?因为每一个基本逻辑单元的用法不一样。比如有的LUT只用了一个输入,有的却是4个全用了。FPGA厂家宣传的FPGA的门数通常是SystemGates,包含了RAM、JTAG等等,其实对于衡量逻辑容量的意义不是很大。

FPGA等效门数的计算方法有两种,一是把FPGA基本单元(如LUT+FF,ESB/BRAM)和实现相同功能的标准门阵列比较,门阵列中包含的门数即为该FPGA基本单元的等效门数,然后乘以基本单元的数目就可以得到FPGA门数估计值;二是分别用FPGA和标准门阵列实现相同的功能,从中统计出FPGA的等效门数,这种方法比较多的依赖于经验数据。对于第一种方法,FPGA包括LUT/FF/RAM等资源,分析各种资源等效门数时,总原则是等效原则,就是实现相同的功能,在标准门阵列中需要的门数就是FPGA该资源等效门数,例如实现一个带寄存器输出的4输入XOR,在FPGA中需要用一个LUT和1个FF实现,在标准门阵列中一般要用21个与非门实现,于是1个LUT+1个FF等效于21个门。对ESB(BRAM),由于用标准门阵列实现1bit的RAM时一般需要4个门,因此ESB/BARM 做RAM使用时,1bit等效4个门,对Altera FPGA中一个2048bit的ESB,等效门数为8K。光靠这些数据还不能比较准确地计算出FPGA的等效门数。因为这只是一种简单情况,实际情况要复杂很多。例如,如果实现的是带寄存器输出地2输入XOR,FPGA也要用1个LUT+FF,而标准门阵列只需要8个NAND,于是1个LUT+1个FF只等效于8个门。同时特定功能的实现,在不同的标准门阵列系列中需要的门数也不一样,因此等效门的计算只能是个大概的数值。也就是说对于某一具体型号FPGA的门数估计,与FPGA资源的用途有密切关系。LUT用于实现2输入XOR和4输入XOR等效门数不一样(分别为1和13);FF不带异步清零、复位、时钟使能和带这些端口的等效门数不同(分别为8和13);ESB (BRAM)做RAM使用时,1bit等效4个门,1个2048bit的BRAM等效8K门,但是做查找表使用时可能只相当于不到200门。因此估计FPGA的等效门数需要做更细致的分析。图1显示了EP20K系列的等效门数等参数,下面以EP20K1000E为例详细说明FPGA等效门数的估计方法。

(1)计算逻辑阵列的等效门数:估算EP20K1000E的门数时,把FPGA特定资源和LCA300K标准逻辑阵列的门数(LSI LCA300K Data Book)比较,可以对FPGA等效门做出估计。FPGA一个LUT+FF等效门数计算如图2所示即LUT+FF等效于8~21个门,上限和下限分别由实现简单函数、复杂函数分别界定。APEX20K的等效门数也可以根据经验数据获得,把超过100个针对4输入LUT的设计用FPGA实现,同时用LCA300K gate arrays和Design Compiler实现,比较相同的设计FPGA所用的LE数目和LCA300K所用的门数可知,每个LE相当于12个门。EP20K1000E有38400个LE,于是相当于46万门。

(2)计算ESB的等效门数RAM中一个bit所需要的门数与RAM的体系结构、工艺、厂商等有关,一般而言,1bit相当于4个门,Altera也采用这个标准,这样可以方便地估计ESB等效门数。计算ESB等效门数也可以采用和LSI LCA300K比较的方法,即通过与实现相同容量RAM在LCA300K所用的门数相比较,从而得到ESB的每一bit相当于多少门,从而计算出ESB的等效门数,参考图3。从上表可见,4gates/bit是一个比较合适的估计,于是EP20K1000E的ESB等效门数为160 ESBs X 2,048 bits per ESB X 4 gates per bit = 1,310,720 gates,即约为130万门。总而言之,对EP20K1000E,LUT+FF等效门数约为46万(经验数值),ESB全用作RAM时等效门数约为130万,所以最大系统门数为170万。

结论:FPGA等效门数估计方法可以是把FPGA资源基本单元(如LUT+FF,ESB)和实现相同功能的标准门阵列相比得到FPGA基本单元等效的门数,然后乘以单元的个数得到整个FPGA等效门数。也可以是实现很多设计,和用标准门阵列相比,从中统计出等效门数。FPGA的等效门数估计一般分为LUT+FF和ESB(BRAM)两部分,LUT+FF等效于8~21个门,典型值为12;ESB做RAM使用时,一般相当于4门/bit,此时估计出的门数最多,如果ESB做乘积项/LUT则等效门数大大减小,例如对EP20K1000E,前者为130万,后者为2万。

配置PROM例如XCF01S其中01是他的容量1Mbit。F代表可多次擦写,S是他的供电电压是3.3v,可能有P就是代表供电电压是1.8v。18V01中的18也是可擦写的。其中17系列的是不可擦除的。

IQ Speed Grate是汽车工业速度等级。

CPLD中的速度等级是数字越小速度越快,单位为纳秒。而FPGA中的速度等级是一个量级单位,是数字越大速度越快。

ASIC:专用集成电路。SOPC:片上可编程系统

在现场可编程逻辑器件领域,目前的主要产品分为3大类:

1:基于SRAM编程的FPGA

所谓的SRAM从结构上而言,主要由3个部分组成:可编程逻辑模块CLB(Configurable Logic Block)可编程输入/输出模块(Input/Output Block)可编程内部连线PI(Programmable Interconnect)。

2:基于EPROM或EEPROM编程的CPLD

基于EPROM或EEPROM编程的CPLD其主要由可编程I/O块,可编程逻辑单元模块(LB),可编程布线池组成。其特点在于:芯片功能的定义由阵列分布EPROM或EEPROM 型的下拉MOS开关来控制;其LB的逻辑资源要比SRAM FPGA的CLB大得多,也就是说单个LB能够实现更复杂的逻辑功能。

EPROM,EEPROM,FLASH这些技术之间的最根本的区别在于,EEPROM和FLASH型开关可以进行加电清除,而EPROM则只能用紫外光清除编程结果,而且需要花费时间。并且,电清除技术使在系统可编程得以实现而紫外清除只能离线进行。

3:基于一次性编程的反熔丝FPGA

反熔丝型FPGA的主要特点是功耗低,布线通路丰富,逻辑元胞粒度小。但是反熔丝技术的FPGA只能进行一次性编程。

现场集成的编程方式:

1:在系统可编程技术ISP(In-System Programmability)。具有ISP功能的器件下载时无须专门的编程器,可直接在已制成的系统(称为目标系统)中或印制板上对芯片进行编程数据下载。ISP技术为系统设计和制造带来了很大的灵活性。目前大多数CPLD芯片均采用ISP编程技术。

2:在系统可重配置技术ISR(In-System Reconfiguration)。具备ISR功能的器件也可直接在目标系统中或印制电路板上通过数据下载电缆配置和重新配置,无须专门的编程器。因为ISR器件是基于SRAM编程技术,故掉电后,芯片的编程信息会丢失。

3:一次性编程技术。具有这种编程技术的FPGA采用反熔丝制造工艺,一旦编程就不可改变,适用于高可靠性低功耗的使用场合。

Virtex系列NOTES:

1:System gates include 20-30% of CLBs used as RAMs

2:Logic cell=One 4-input look up table(LUT)+Flip-Flop+Carry Logic

Spartan3

1:System gates include 20-30% of CLBs used as RAMs

2:A logic cell is defined as a 4-input LUT+flip-flop

其他spartan系列

1:System gates include 20-30% of CLBs used as RAMs

2:logic cell=a 4-input(LUT) and a register

电子设计自动化(Electronic Design Automation, 即EDA)

下载电缆就是将编译通过后的程序文件对应的下载文件下载到器件内的电缆。通过该电缆下载后,器件拥有了设计的功能,然后你就可以使用该器件了。

IP CORE就是人家编好的模块,分硬核和软核,拿过来就可以直接组建自己的系统,是SOC 的核心思想

DCM:数字时钟管理器,XILINX的DCM有4个时钟管理功能块:时钟数字延时锁定环(CLKDLL);数字频率合成器(DFS);数字移项器(DPS);数字扩谱(DSS).

电压标准:

CTT:中央抽头终端.3.3v存储器总线标准.

GTL:注射收发逻辑终端.

HSTL:高速收发器逻辑.是一种1.5v总线接口标准.

SSTL:短线串行收发器逻辑.存储器总线接口标准.

FPGA的封装形式:

BGA:球栅阵列封装

CS: 芯片比例封装

FG:(fine-pitch ball grid array) 微间距球栅阵列封装

HQ: 高散热方型扁平封装

PQ: (plastic quad flat pack)塑料方型扁平封装

BF:

CB:

CC:

CG:

CP:

FF:

FS*:

FT:

HQ:

HT:

PC:(plastic lead chip carrier)

PD:

PG:

PP:

SO:

TQ:(thin quad flat pack)

VO:

VQ:(very thin quad flat pack)

FPGA与CPLD的区别

系统的比较:

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:

①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显

随著复杂可编程逻辑器件(CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市场。许多设计人员已经感受到CPLD容易使用、时序可预测和速度高等优点,然而,在过去由于受到CPLD密度的限制,他们只好转向FPGA 和ASIC。现在,设计人员可以体会到密度高达数十万门的CPLD所带来的好处。

CPLD结构在一个逻辑路径上采用1至16个乘积项,因而大型复杂设计的运行速度可以预测。因此,原有设计的运行可以预测,也很可靠,而且修改设计也很容易。CPLD在本质上很灵活、时序简单、路由性能极好,用户可以改变他们的设计同时保持引脚输出不变。与FPGA相比,CPLD的I/O更多,尺寸更小。

如今,通信系统使用很多标准,必须根据客户的需要配置设备以支持不同的标准。CPLD可让设备做出相应的调整以支持多种协议,并随著标准和协议的演变而改变功能。这为系统设计人员带来很大的方便,因为在标准尚未完全成熟之前他们就可以著手进行硬件设计,然后再修改代码以满足最终标准的要求。CPLD的速度和延迟特性比纯软件方案更好,它的NRE 费用低於ASIC,更灵活,产品也可以更快入市。CPLD可编程方案的优点如下:

●逻辑和存储器资源丰富(Cypress Delta39K200的RAM超过480 Kb)

●带冗余路由资源的灵活时序模型

●改变引脚输出很灵活

●可以装在系统上后重新编程

●I/O数目多

●具有可保证性能的集成存储器控制逻辑

●提供单片CPLD和可编程PHY方案

由于有这些优点,设计建模成本低,可在设计过程的任一阶段添加设计或改变引脚输出,可以很快上市

CPLD的结构

CPLD是属於粗粒结构的可编程逻辑器件。它具有丰富的逻辑资源(即逻辑门与寄存器的比例高)和高度灵活的路由资源。CPLD的路由是连接在一起的,而FPGA的路由是分割开的。FPGA可能更灵活,但包括很多跳线,因此速度较CPLD慢。

CPLD以群阵列(array of clusters)的形式排列,由水平和垂直路由通道连接起来。这些路由通道把信号送到器件的引脚上或者传进来,并且把CPLD内部的逻辑群连接起来。CPLD之所以称作粗粒,是因为,与路由数量相比,逻辑群要大得到。CPLD的逻辑群比FPGA 的基本单元大得多,因此FPGA是细粒的。

CPLD的功能块

CPLD最基本的单元是宏单元。一个宏单元包含一个寄存器(使用多达16个乘积项作为其输入)及其它有用特性。

因为每个宏单元用了16个乘积项,因此设计人员可部署大量的组合逻辑而不用增加额外的路径。这就是为何CPLD被认为是“逻辑丰富”型的。

宏单元以逻辑模块的形式排列(LB),每个逻辑模块由16个宏单元组成。宏单元执行一个AND 操作,然后一个OR操作以实现组合逻辑。

每个逻辑群有8个逻辑模块,所有逻辑群都连接到同一个可编程互联矩阵。

每个群还包含两个单端口逻辑群存储器模块和一个多端口通道存储器模块。前者每模块有8,192b存储器,后者包含4,096b专用通信存储器且可配置为单端口、多端口或带专用控制逻辑的FIFO。

CPLD有什麽好处?

I/O数量多

CPLD的好处之一是在给定的器件密度上可提供更多的I/O数,有时甚至高达70%。

时序模型简单

CPLD优于其它可编程结构之处在于它具有简单且可预测的时序模型。这种简单的时序模型主要应归功于CPLD的粗粒度特性。

CPLD可在给定的时间内提供较宽的相等状态,而与路由无关。这一能力是设计成功的关键,不但可加速初始设计工作,而且可加快设计调试过程。

粗粒CPLD结构的优点

CPLD是粗粒结构,这意味著进出器件的路径经过较少的开关,相应地延迟也小。因此,与等效的FPGA相比,CPLD可工作在更高的频率,具有更好的性能。

CPLD的另一个好处是其软件编译快,因为其易于路由的结构使得布放设计任务更加容易执行。

细粒FPGA结构的优点

FPGA是细粒结构,这意味著每个单元间存在细粒延迟。如果将少量的逻辑紧密排列在一起,FPGA的速度相当快。然而,随著设计密度的增加,信号不得不通过许多开关,路由延迟也

快速增加,从而削弱了整体性能。CPLD的粗粒结构却能很好地适应这一设计布局的改变。灵活的输出引脚

CPLD的粗粒结构和时序特性可预测,因此设计人员在设计流程的后期仍可以改变输出引脚,而时序仍保持不变。

为什么CPLD和FPGA需要不同的逻辑设计技巧?

FPGA是细粒器件,其基本单元和路由结构都比CPLD的小。FPGA是“寄存器丰富”型的(即其寄存器与逻辑门的比例高),而CPLD正好相反,它是“逻辑丰富”型的。

很多设计人员偏爱CPLD是因为它简单易用和高速的优点。CPLD更适合逻辑密集型应用,如状态机和地址解码器逻辑等。而FPGA则更适用于CPU和DSP等寄存器密集型设计。

新的CPLD封装

CPLD有多种密度和封装类型,包括单芯片自引导方案。自引导方案在单个封装内集成了FLASH存储器和CPLD,无须外部引导单元,从而可降低设计复杂性并节省板空间。在给定的封装尺寸内,有更高的器件密度共享引脚输出。这就为设计人员提供了“放大”设计的便利,而无须更改板上的引脚输出。

CPLD的功耗

与同样密度的FPGA相比,CPLD的待机功耗更低。

CPLD FPGA (待機電流(在Vcc 為1.8V時))

50K 300μA 200mA

100K 600μA 200mA

200K 1.25mA 300mA

CPLD特别适合那些要求低功耗和低温度的电池供电应用,像手持设备。

许多设计人员都熟悉传统的PLD,并喜欢这种结构所固有的灵活性和易用性。CPLD为ASIC 和FPGA设计人员提供了一种很好的替代方案,可让他们以更简单、方便易用的结构实现其设计。CPLD现已达到数十万门的密度,并可提供当今通信设计所需的高性能。大于50万门的设计仍需ASIC和FPGA,但对于小型设计,CPLD不失为一个高性价比的替代方案FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:

1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。——2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

3)FPGA内部有丰富的触发器和I/O引脚。

4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可

以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

在CPLD中的macrocell就相当于一个D触发器

CPLD和FPGA

PLD介绍

可编程逻辑器件PLD(Programable Logic Device)是允许用户编程(配置)实现所需逻辑功能的电路, 它与分立元件相比,具有速度快、容量大、功耗小和可靠性高等优点。由于集成度高,设计方法先进、现场可编程,可以设计各种数字电路,因此,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域内得到了广泛应用。不久的将来将全部取代分立数字元件,目前一些数字集成电路生产厂商已经停止了分立数字集成电路的生产。因此应该学会PLD的设计技术。

PLD电路早期代表产品由XLINX公司推出的门阵列,称为FPGA(Field Programable Gate Array),随后ALTERA公司推出以并行走线的PLD产品,称为CPLD(Complex Programable Logic Device),这些早期产品价格高达万元,其开发软件价格高达几十万元。但是随着生产技术水平的提高,现在PLD产品的价格已大大降低,一片5000门、具有5K X 8的SRAM 电路作配置、84脚封装、速度达40—200MHz的PLD的价格已经下降到一百元以下。每一片这样的PLD可以设计成单片机、或者是CPU等,并且可以在外部接线完成以后还可以重新进行设计多次。

目前在我国常见的PLD生产厂家有XILINX、ALTERA、ACTEL、LATTIC、ATMEL、MICROCHIP和AMD等等,其中XILINX和ALTERA为两个主要生产厂,XILINX的产品为FPGA,ALTERA的产品称为CPLD,各有优缺点,

但比较起来ALTERA的产品略有长处:

1.同样具有EPROM和SRAM的结构

2.对于SRAM结构的产品,ALTERA公司PLD的输出电流可达25MA,而XILINX的FPGA 只有16MA

3.ALTERA公司的PLD延时时间可预测,弥补了FPGA的缺点

4.XILINX公司的开发软件FOUNDATION 功能全,但是不如ALTERA公司的MAX+PLUS 软件使用简单,特别是对于学校的学生学习VHDL语言和PLD设计。

5.ALTERA公司的产品价格稍微便宜

6.ALTERA公司新推出的FLEX 10K10E系列的产品具有更大的集成度

PLD的结构分为两类:

l 逻辑单元阵列(LCA),包括逻辑快、互连阵列和I/O块

l 复合PLD结构,包括逻辑块和互连矩阵开关

XLINIX、ACTEL公司的产品采用LCA结构,而ALTERA、AMD的MACH系列采用的是复合PLD结构。

ALTERA公司MAX7000系列

(1)特点

l 该系列是以第二代多阵列结构为基础,高性能的CMOS器件

l 高密度,600—5000个可用门的EPLD系列

MAX7128E:提供5000个门,其中可用门数2500,128个宏单元,最大I/O引脚104,

l 引脚到引脚的时延6ns,计数器工作频率151MHz

l 可配置的扩展乘积项,允许向每个宏单元提供52个乘积项

l 44到208个引脚的各种封装,引线塑料载体(PLCC)、针栅阵列(PGA)扁平封装(QFP)l 3.3V 或5V的电源电压

l 可编程保密位

l ALTERA MAX+PLUS软件提供开发支持

该系列型号:EPM7032,EPM7032V,EPM7064,EPM7096,EPM7128E,EPM7160,EPM7192,EPM7256

(2)结构

MAX7000的结构图2.1.1,其中I/O为输入输出模块,FB为逻辑阵列模块(LAB),这些模块由可编程互连矩阵相互连接。

图2.1.1

l 专用输入信号

包含4个专用输入信号,它们能用作专用输入或每一个宏单元和I/O引脚的全局控制信号: 时钟,清除和输出使能

l 逻辑阵列块(LAB)

每个LAB由16个宏单元组成,多个LAB通过可编程连线阵列互连,每一个LAB有来自PIA 的36个信号、用于寄存器辅助功能的控制信号和I/O引脚到寄存器的直接通道

l 宏单元

宏单元可以单独配置为组合逻辑和时序逻辑工作方式,它由三个功能块组成:逻辑阵列、乘积项选择矩阵和可编程触发器

l 扩展乘积项

扩展乘积项可以使一个宏单元实现更复杂的逻辑函数,而不使使用两个宏单元

l 可编程连线阵列

该阵列将各个LAB互连在一起,构成所需的逻辑功能

l I/O控制块

允许每个I/O引脚可以单独配置为输入、输出或是双向工作方式

FLEX 8000系列

FLEX是Flexible Logic Element Matrix的缩写,该系列采用0.8μm CMOS SRAM或0.65μm CMOS SRAM集成电路制造工艺制造。

(1) 特点

l 最大门数32000,具有2500—16000个可用门和282—1500个触发器

l 在线可重配置

l 可预测在线时间延迟的布线结构

l 实现加法器和计数器的专用进位通道

l 3.3V和5V电源

l MAX+PLUS软件支持自动布线和布局

l 84到304个引脚的各种封装

常用型号:EPF8282,EPF8452,EPF8636,EPF8820,EPF81188,EPF81500

FLEX 10K10系列

该系列采用0.5μm CMOS SRAM或0.25μm CMOS SRAM(10K10E系列)集成电路制造工艺制造。

(1)特点

l 具有7000—31000个可用门、6144位RAM、720个触发器和最大I/O数150

l 在线可重配置

l 可预测在线时间延迟的布线结构

l 实现加法器和计数器的专用进位通道

l 3.3V和5V电源

l MAX+PLUS软件支持自动布线和布局

l 84到562个引脚的各种封装

常用型号:EPF10K10,EPF10K20,EPF10K30,EPF10K40,EPF10K50,EPF10K70,EPF10K100等PLD的配置

(1) MAX7000系列

由于MAX7000系列的配置程序是固化在芯片内的EEPROM中,所以该器件不需要专用的配置存储器,所有MAX7000系列产品都由ALTERA公司提供的编程硬件和软件进行编程。

编程硬件:编程卡、主编程部件(MPU—Master Programming Unit)和配套的编程适配器

编程软件:MAX+PLUSⅡ

(2) FLEX8000系列和FLEX10K10系列

该系列产品的配置信息是存放在芯片内的SRAM中,当掉电后,配置信息将全部丢失,所以这些配置信息需要存放在其它EPROM中,ALTERA公司提供了与该系列芯片配套使用的EPROM。所以对芯片的编程就是对EPROM的编程,

芯片开始工作时,进入命令状态,在该状态将配置信息从EPROM中读到自己的SRAM中,然后进入用户状态,在用户状态器件就可以按照配置的功能进行工作,整个配置过程全部自动进行,也可以靠外部逻辑控制进行,时钟可由器件自己提供,也可由外部时钟控制。

所以整个器件只要更换EPROM中的配置信息就可以更换功能,其灵活性是不言而喻的。该器件有如下配置方式:

l 主动串行配置(AS)

l 主动并行升址和降址配置(APU/APD)

l 被动并行同步配置(PPS)

l 被动并行异步配置(PPA)

l 被动串行配置(PS)

主或者从是从CCLK来区别的,若FPGA本身提供CCLK则为主,外部提供CCLK则为从.

串并是从数据宽度来区别的,串行就只用DIN,并行就要用D0~D7

乘积项与查找表的区别:

两者都是宏模块和I/O模块,及布线资源构成,宏模块的区别在于CPLD用可编程与或阵列和输出配置构成,由于用与或阵列完成逻辑功能因此称为基与乘积项技术,而FPGA用一些RAM在其中编程入一些特定数据,完成一定逻辑功能工作时就象查表一样把地址输入再把结果读出来,因此称基与查找表技术

FPGA有很多类:(包括CPLD)

GAL,CPLD,FPGA based on SRAM,FPGA based on Anti_fuse,FPGA based on FLASH.

这几类器件各有优缺点.

GAL属于早期的器件,到目前还有少数人在使用.你可以认为GAL是很多74系列搭起来的. CPLD你可以认为是很多GAL搭起来的,内部的连接是EEPROM做开关,速度比较高,可重复摖写,加载一次上电可运行,内部含有一个小的硬CORE专门用作加载的.

FPGA based on SRAM,你可以认为是很多CPLD搭起来的,但是开关是SRAM来实现.由于SRAM掉点丢失,所以,这种FPGA需要每次上电加载.它的加载是由一个内嵌的CPU来完成,内部资源按照行列来分,相当于一个数组.每次上电对电源有一定要求,如果拿示波器看,你可以看见加载时,电源会起伏.这种芯片用于军事,航天上不可靠,因为大气层高能离子会将sram 的信息破坏.该FPGA用的比较多,通常和CPLD或者CPU组合起来使用.

Antifuse,你可以认为是很多GAL,或者CPLD搭起来的,但是开关是由保险丝来实现的,只能烧

写一次,需要专门的烧写器,保密性比较高,速度快,功耗低,但是编程很麻烦,编程时有比较高的失效率.适合军用航天和低端不需要升级的消费品.每次上电都ACTIVE.

FLASH fpga,你可以认为时很多CPLD搭起来的,但是开关由FLASH来实现的,该技术实现较SRAM工艺复杂,可以重复摖写,掉点保存,上电active.不过速度稍微比SRAM的要低些.密度也要低些.他届于反容思和sram两者之间.各取优缺点.加载由内部专门的CPU来实现.但是使用的时候你是看不到那个CPU的.

FPGA的基本单元就是一些逻辑门,与非门和或非门搭起来实现任意逻辑.和触发器组合在一起,可以实现时序电路,同时可以做成3输入或者4输入的逻辑单元.再加上一些数字锁相环,和一些接口电路,以及一些内部的RAM.

FPGA:

适合速度快,功能复杂的一些编解码,控制.有时也做些接口用(电平转换),以及时钟处理用. 开发的工作量主要工作量在逻辑设计工程师.

分布式的系统.

单片机:

适合功能简单,速度要求不高

开发的工作量主要是在软件工程师.

集中式的系统.

最主要的是:FPGA的基本运算单元是逻辑门,不是晶体管,是分布式的,可以真正的同时处理多任务.

单片机的基本运算单元是处理器内部的加法器,移位寄存器.是集中式的.典型的单任务系统,多任务需要分时.

还可以把DSP拿来比较比较:DSP是流水结构,基于两者之间.

可以说性能上:当然还要看应用.

FPGA>DSP>单片机.

笼统的说,两者的区别在于资源的规模和芯片工作速度。

FPGA规模大于CPLD,但系统工作频率低于CPLD。此外,PIN

的延迟上,CPLD比FPGA要好。

由于FPGA内部资源比较丰富,如大量的寄存器,RAM,因此

特别适合算法实现,如FFT,网络通讯协议等。

CPLD的工作速度高,延迟更容易确定,通常也比较小,因此

适合作控制系统、译码部分,如总线控制器、开关网络等。

但是不要把这两者绝对起来,具体问题需要具体分析。例如

很多人就用FPGA实现PCI总线接口。

发信人: maynard (tiantian), 信区: Circuit

用altera的flex 10ke 做了一个sdram 控制器

但用max9000系列去编译设计,然后仿真,时序一塌糊涂!

按理说,max9000的fmax也很高呀。

【在endpoint (snow) 的大作中提到: 】

: 笼统的说,两者的区别在于资源的规模和芯片工作速度。

: FPGA规模大于CPLD,但系统工作频率低于CPLD。此外,PIN : 的延迟上,CPLD比FPGA要好。

: 由于FPGA内部资源比较丰富,如大量的寄存器,RAM,因此: 特别适合算法实现,如FFT,网络通讯协议等。

: CPLD的工作速度高,延迟更容易确定,通常也比较小,因此

: 适合作控制系统、译码部分,如总线控制器、开关网络等。

: 但是不要把这两者绝对起来,具体问题需要具体分析。例如

: 很多人就用FPGA实现PCI总线接口。

发信人: endpoint (snow), 信区: Circuit

【在maynard (tiantian) 的大作中提到: 】

: 用altera的flex 10ke 做了一个sdram 控制器

: 但用max9000系列去编译设计,然后仿真,时序一塌糊涂!

: 按理说,max9000的fmax也很高呀。

无论是在FPGA还是在CPLD上进行设计,都必须充分利用

所用芯片的体系结构才能设计一个高速的系统。MAX9000

的速度确实比10KE快,但也不意味着就一定可行。

我姑且假设你的10KE逻辑的已经调试好了。因此你可能针

对10KE的体系结构进行了优化。而这种优化对于9000来说

很有可能是无效的,而且说不定会引入新的麻烦。例如,

在10KE中,状态机通常用ONE-HOT编码方式效率会比较高,而在MAX9000中如果仍然采用ONE-HOT是否会同样有效呢?

此外,由于器件的结构特点,在进行大规模设计时,通常

都会最初的行为设计进行一定程度的调整,例如一个大的

状态机改变为几个层次小状态机等,否则是无法达到系统

速度的。因此,通常不能指望最初的行为设计就是最终的

逻辑设计,两者通常会有一定程度的差别

ZBT:高速接口存储处理(应用于图形处理)

FPGA与CPLD

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 CPLD与FPGA的关系 早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。 CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。 CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点 1)采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和I/O引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完

CPLD与FPGA区别

CPLD和FPGA区别 可编程逻辑器件主要包括FPGA和CPLD,FPGA是Field Programmable Gate Array缩写,CPLD是Complex Promrammable Logic Device的缩写。 从可编程逻辑器件的发展历史上来讲,CPLD一般是指采用乘积相结构的基于EEPROM的器件,所以具 有非挥发的,不需要外部配置ROM,具有保密性和有限次编程次数(根据不同的结构,从100次到1万次不等)等特点,适合用在胶合逻辑(glue logic,如DSP芯片外围的译码逻辑),IO扩展,IO电平转换,FPGA 芯片配置等应用场合。如Altera的MAX7000和MAX3000系列芯片,Xilinx的XC9500和CoolRunner/II 系列芯片,Lattice的ispMACH4000/Z系列芯片都是CPLD器件,容量从32宏单元到512宏单元不等。 FPGA主要是指采用四输入查找表(LUT4)的基于SRAM的器件,因为SRAM是挥发的,掉电丢失数据, 所以FPGA需要外部配置ROM,上电的时候,从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作。具有SRAM的FPGA采用标准的CMOS制造工艺,可以随着最新的工艺而更新还代,给用户带来了实惠;衡量FPGA容量的一个基本指标是逻辑单元(Logic cell或者Logic element),由一个可编程得LUT4和一个可编程的DFF组成,LUT4完成组合逻辑功能, 而DFF用来实现时序功能。FPGA的容量从几千的逻辑单元到几十万的逻辑单元不等。如Altera的Cyclone/II/III和Stratix/II/III系列芯片,Xilinx Spartan3/3E/3A/3AN和Virtex4/5系列芯片都是FPGA器件。 随着芯片技术的发展,CPLD和FPGA的概念已经模糊在一起,如Altera和Lattice公司把小容量(小于2K 左右逻辑单元)非挥发的可编程器件归到CPLD里,如Altera的MAXII系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和FLASH的储存单元做到一个芯片里面,以及跟传统的CPLD不一样了; 总之,我们可以简单的区分FPGA和CPLD,CPLD:小容量(<2K左右LE)的非挥发的可编程器件;其它 的可编程器件都可归到FPGA。 系统的比较: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结 构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结 构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能 来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 ⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并 且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

FPGA、CPLD、ASIC、DSP、单片机的区别

1. FPGA FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。 什么是FPGA? 简单来说,FPGA就是“可反复编程的逻辑器件”。FPGA取自 Field Programmable Gate Array的首个字母,代表现场(Field)可编程(Programmable)逻辑阵列(Gate Array)。 由于在产品发售后您仍然可以对产品设计作出修改,因此我们可以顺利地对产品进行更新以及针对新的协议标准作出相应改进。相对于对售后产品设计无法进行修改的ASIC和ASSP来说,这是FPGA特有的一个优势。由于FPGA 可编程的灵活性以及近年来科技的快速发展,FPGA也正向高集成,高性能,低功耗,低价格的方向发展,并具备了与ASIC和ASSP 同等的性能,被广泛地使用在各行各业的电子及通信设备里。 FPGA与CPLD的区别 尽管很多人听说过CPLD,但是关于CPLD与FPGA之间的区别,了解的人可能不是很多。虽然FPGA与CPLD都是“可反复编程的逻辑器件”,但是在技术上却有一些差异。简单地说,FPGA就是将CPLD的电路规模,功能,性能等方面强化之后的产物。 一般而言,CPLD与FPGA之间的区别的如下所示(当然也有例外)。

5分钟学会使用CPLD(FPGA)

5分钟学会使用CPLD 当今社会,随着电子行业的发展,大规模集成电路的运用越来越普遍,用CPLD/FPGA 来开发新产品是当前很多实际情况的需求。在此本人结合到自己的所学,利用业余时间草写了一个简单的使用说明,不要求有丰富经验的大虾来驻足观望,只希望对吾辈刚入门的菜鸟们起到一个抛砖引玉的作用。由于水平有限,文中错误在所难免,望各位提出宝贵的意见。 1.首先请准备一套简单的CPLD原理图。在此我们准备了如下所示的简单一个系统图。晶体用10M的有源晶体,可以在线下载的JTAG接口。电源用5转3.3V的电源模块AS1117。1个1K的排阻。8个发光管在程序运行时轮流点亮。 2.安装XILINX的集成编译软件ISE5.0或6.0。因为ISE在运行时比较消耗计算机的内存,所以要求计算机配置符合相关的要求,高一点的配置,不至于在运行时死机。 3.准备一小段verilog hdl编写一段小代码,主要用来验证系统板的正确。 其中也可以用VHDL来编写,考虑到verilog hdl比较接近C语言,对初级学者来说,相对所花时间较短,上手较快。在此我推荐学verilog hdl。具体的参考书可以看下面的提示:

4.此我们用下面的一小段代码作为范例:其功能是驱动8个发光管轮流点亮,因为是采用了10M频率晶体的边沿触发,所以速度很快,为了使我们肉眼能够看的清楚其工作的流程,我们在里面安放了一个计数器,计数器计每次满一次就点亮一个发光管,依次类推。。。。。。其源程序如下: /* 流水灯的V erilog-HDL描述*/ module LEDWA TER(reset,CLK,LED); input reset, CLK; output [7:0] LED; reg [7:0] LED;//=8'b11111111; reg [17:0] buffer;//=0; reg exchange; always@(posedge CLK) if(reset==0) //如果复位了就熄灭全部的灯 begin LED=8'b1111_1111; buffer=0; exchange=0; end else begin if (exchange==0) begin buffer=(buffer +1); if ( buffer == 17'b111111111111111111111111) begin buffer=0; LED=(LED-1); if(LED==8'b0000_0000) begin LED=8'b1111_1111; exchange=1; end end end if(exchange==1) begin buffer=(buffer +1); if ( buffer == 17'b111111111111111111111111) begin buffer=0; LED=(LED>>1); if(LED==8'b00000000) begin LED=8'b1111_1111;

单片机、DSP、PLC、CPLD、FPGA、嵌入式的区别

所谓嵌入式,专指嵌入到其它系统内部,满足特定需求的专用计算机系统。它的概念非常广泛,只要是具有包含软硬件等计算机专有属性的系统都可以称之为嵌入式系统。 单片机是指把CPU、存储器、输入输出设备或接口集成到一片芯片内,加少量的外围电路就可以构成计算机系统的器件,目前常用的有MCS-51系列、PIC系列等器件,生产厂家很多、以8位、16位为主,一般没有操作系统,主要满足简单的控制需求。 目前以ARM为代表的32位CPU严格意义上说是一个单板机系统,可以加载Linux、WinCE等复杂的操作系统,可以满足复杂的需求。 PLC是可编程控制器,也是嵌入式系统的一种,但是一般用于电气控制,已经预制了很多程序,用梯形图等简单的编程语言就能构成系统。PLC价格昂贵、应用简单、容易上手,一般用来实现工业现场复杂情况下的控制,应用领域有限。 CPLD和FPGA以往大多用于可编程数字电路的实现,使数字电路设计趋于简单和可更改设计。这几年随之FPGA的发展,内部可以嵌入微控制器核,来构建SoC(System on Chip),但是开发难度相当大。 DSP的优势在于信号处理,运算能力强大,但控制能力一般,一般往往用于视频分析等需要进行信号复杂运算的场合。 DSP:数字信号处理器,处理器采用哈弗结构,工作频率较高,能大幅度提高数字信号处理算法的执行效率。 MCU:微控制器,主要用于控制系统,工作频率一般来说比DSP低,硬件上具有多个IO 端口,同时也集成了多个外设,主要是便于在控制系统中的应用。至于ARM处理器,个人认为是MCU的高级版本,ARM本身只是一个内核,目前已经有多个版本。 CPLD:复杂可编程逻辑器件 FPGA:现场可编程门阵列 后两者都是可编程器件,CPLD目前一半采用FLASH技术,而FPGA采用SRAM技术,这就决定了FPGA需要采用特定的配置技术。同时FPGA的规模要比CPLD大得多,但CPLD应用起来相对要简单的多

认清CPLD和FPGA

认清CPLD和FPGA CPLD和FPGA都是我们经常会用到的器件。有的说有配置芯片的是FPGA,没有的是CPLD;有的说逻辑资源多的是FPGA,少的是CPLD;有的直接就不做区分,把他们都叫做FPGA。那么两者到底有什么区别呢?下面我们就以Altera公司的CPLD和FPGA为例来说说两者的区别。 首先我们看一下CPLD的芯片结构,搞清楚CPLD是由哪几部分组成的。下图是MAX 系列CPLD的芯片结构图: 从图中可以清楚的看出来CPLD主要由三部分组成:Macro cell(宏单元),PIA(可编程连线),和IO Control Block(IO控制块)。每个宏单元都与GCLK(全局时钟)OE(输出使 能)GCLR(清零)等控制信号直接相连,并且延时相同。各宏单元之间也由固定长度的金属线互连,这样保证逻辑电路的延时固定。其中宏单元模块是CPLD的逻辑功能实现单元,是器件的基本单元,我们设计的逻辑电路就是由宏单元具体实现的。下面我们再来看看宏单元的具体结构:

一个宏单元主要包括了LAB Local Array(逻辑阵列),Product-Term Select Matrix(乘积项选择矩阵)和一个可编程D触发器组成。其中逻辑阵列的每一个交叉点都可以通过编程实现导通从而实现与逻辑,乘积项选择矩阵可实现或逻辑。这两部分协同工作,就可以实现一个完整的组合逻辑。输出可以选择通过D触发器,也可以对触发器进行旁路。通过这个结构可以发现,CPLD非常适合实现组合逻辑,再配合后面的触发器也能够实现一定的时序逻辑。 我们再来以cyclone系列为例看看FPGA的内部结构:

CPLD和FPGA的区别

《CPLD和FPGA的区别》 1).两者的区别: 最大的区别,就是CPLD进行一次下载编程(写入操作)后,其逻辑门组合方式就保存下来,不管什么时候断电,通电,他都可以执行上一次的逻辑功能。FPGA不能保存上次逻辑功能,断电后,FPGA就失去所有配置。因此FPGA通常需要带一块配置芯片,在通电后,对FPGA进行重新配置,恢复功能(重配置需要时间,CPLD通电后,马上就可以执行相应逻辑)。 CPLD的擦写次数非常有限,经过100~1000次左右的反复擦写就报废了。而FPGA可以反复擦写无限次(当然,实际上是有限的。但是在通常使用中,就算你反复擦写,大概你挂了,它还没有挂)。FPG的配置芯片擦写次数有限,而且常常只能烧写一次(OTP)。CPLD的容量一般比较小,FPGA容量很大。 综合上面所有的情况,结论是这样的,你在学习阶段,或者开发阶段,最好使用FPGA,因为可以反复擦写,不对马上重新烧写。只要不断电,你烧写下去的逻辑功能是一直可用的。定型后可以使用CPLD,可以免去FPGA。但是当你的配置容量非常大的时候,CPLD装不下,你又必须采用FPGA了,这个时候,在最后成品上需要加配置芯片(当然也用单片机模拟配置芯片,具体这个地方不介绍)。 市面上尤其是学校里面可以看到Xilinx公司或者Altera公司各种不同的开发板,其实只有两个大类,CPLD开发板和FPGA开发板。尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTF

单片机,DSP和FPGA区别以及发展前景

单片机、dsp、FPGA/CPLD的分析、比较 硬件天地2009-02-15 11:54:39 阅读367 评论0 字号:大中小订阅 引言 信息技术正在快速发展,其应用已经深入到各个领域各个方面。如今越来越多的电子产品向着智能化、微型化、低功耗方向发展,其中有的产品还需要实时控制和信号处理。电子系统的复杂性在不断增加,它迫切要求电子设计技术也有相应的变革和飞跃。使用纯SSI 数字电路设计系统工作量大,灵活性低,而且系统可靠性差。广泛使用单片机(MCU) 设计系统克服了纯SSI 数字电路系统许多不可逾越的困难,是一个具有里程碑意义的飞跃。而DSP 以其极强的信号处理功能赢得了广阔的市场,得到了广泛地应用。近年来,PLD 器件迅速发展,尤其是CPLD/ FPGA 向深亚微米领域进军,PLD 器件得到了广泛应用,以CPLD/ FPGA 为物质基础的EDA 技术诞生了。它具有电子技术高度智能化、自动化的特点,打破了软硬件最后的屏障,使得硬件设计如同软件设计一样简单。它作为一种创新技术正在改变着数字系统的设计方法、设计过程和设计观念。单片机,DSP ,PLD/ EDA 以其各自的特点满足了各种需要,正从各个领域各个层面改变着世界,它们已经成为数字时代的核心动力,推动着信息技术的快速发展。 以下,我们将对单片机,DSP ,PLD/ EDA 分别加以介绍,并作比较和分析。 单片机 单片机是集成了CPU ,ROM ,RAM 和I/ O 口的微型计算机。它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU) 。它与通用处理器不同,它是以工业测控对象、环境、接口等特点出发,向着增强控制功能,提高工业环境下的可靠性、灵活方便地构成应用计算机系统的界面接口的方向发展。所以,单片机有着自己的特点。 品种齐全,型号多样 自从INTEL 推出51 系列单片机,许多公司对它做出改进,发展成为增强型51 系列,而且新的单片机类型也不断涌现。如MOTOROLA 和PHIL IPS 均有几十个系列,几百种产品。CPU 从8 ,16 ,32 到64 位,多采用RISC 技术,片上I/O 非常丰富,有的单片机集成有A/ D ,“看门狗”,PWM ,显示驱动,函数发生器,键盘控制等,它们的价格也高低不等,这样极大地满足了开发者的

CPLD与FPGA性能特点差异

CPLD与FPGA区别 转载了网上的文章,帮大家了解下基本概念问题! 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2P

ROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 ⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。 ⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 ⑧CPLD保密性好,FPGA保密性差。 ⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

CPLDFPGA的基本知识

第一章CPLD/FPGA的基本知识 FPGA,CPLD和其它类型PLD的结构各有其特点和长处,但概括起来,它们是由三大部分组成的:(1)一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心;(2)输入/输出块;(3)连接逻辑块的互连资源,由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接。 图1.2.1 PLD的结构 对用户而言,虽然CPLD与FPGA的内部结构稍有不同,但其用法都一样,所以多数情况下,不加以区分。FPGA/CPLD芯片都是特殊的ASIC芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:(1)随着VlSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成,即片上系统SOC。 (2)FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以,FPGA /CPLD的资金投入小,节省了许多潜在的花费。 (3)用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。所以,用FPGA/PLD 试制样片,能以最快的速度占领市场。FPGA/CPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路有少量改动时,更能显示出FPGA/CPLD的优势。电路设计人员使用FPGA/CPLD进行电路设计时,不需要具备专门的IC(集成电路)深层次的知识,FPGA/CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场。(4)在线可编程技术(ISP)使得使用CPLD/FPGA的产品可以做到远程升级。 (以上内容参照西电《CPLD技术及其应用》,有改动) (三)PLD/FPGA 结构与原理初步 一. 基于乘积项(Product-Term)的PLD结构 采用这种结构的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice,Cypress的大部分产品(EEPROM工艺)。我们先看一下这种PLD的总体结构(以MAX7000为例,其他型号的结构与此都非常相似):

CPLD与FPGA的用途及区别

CPLD与FPGA的用途及区别 FPGA/CPLD能做什么呢?可以毫不夸张的讲,FPGA/CPLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA/CPLD来实现。FPGA/CPLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA/CPLD的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA/CPLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA/CPLD 还可以做数字IC设计的前端验证,用这种方式可以很大程度上降低IC设计的成本。FPGA/CPLD的这些优点使得FPGA/CPLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。FPGA/CPLD有什么区别呢?1)各个厂家叫法不尽相同:PLD(Programmable Logic Device)是可编程逻辑器件的总称,早期多EEPROM工艺,基于乘积项(Product Term)结构。FPGA (Field Programmable Gate Arry)是指现场可编程门阵列,最早由Xilinx公司发明。多为SRAM 工艺,基于查找表(Look Up Table)结构,要外挂配置用的EPROM。Xilinx把SRAM工艺,要外挂配置用的EPROM的PLD叫FPGA,把Flash工艺(类似EEPROM工艺),乘积项结构的PLD叫CPLD; Altera把自己的PLD产品:MAX系列(EEPROM工艺),FLEX/ACEX/APEX系列(SRAM工艺)都叫作CPLD,即复杂PLD(Complex PLD)。由于FLEX/ACEX/APEX系列也是SRAM工艺,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX/ACEX/APEX系列产品也叫做FPGA. 2)结构上的主要区别逻辑块的粒度不同逻辑块指PLD 芯片中按结构划分的功能模块,它有相对独立的组合逻辑阵列,块间靠互连系统联系.FPGA 中的CLB 是逻辑块,其特点是粒度小,输入变量为4~8 ,输出为1~2 ,因而只是一个逻辑单元,每块芯片中有几十到近千个这样的单元. CPLD中逻辑块粒度较大,通常有数十个输入端和一、二十个输出端,每块芯片只分成几块. 有些集成度较低的(如ATV2500) 则干脆不分块. 显然,如此粗大的分块结构使用时不如FPGA 灵活. 逻辑之间的互连结构不同CPLD 的逻辑块互连是集总式的,其特点是等延时,任意两块之间的延时是相等的,这种结构给设计者带来很大方便; FPGA 的互连则是分布式的,其延时与系统的布局有关, 3)应用范围也有所不同逻辑系统通常可分两大类型: 1、逻辑密集型: 如高速缓存控制、DRAM 控制和DMA 控制等,它们仅需要很少的数据处理能力,但逻辑关系一般都复杂2、数据密集型: 数据密集型需要大量数据处理能力,其应用多见于通讯领域. 为了选择合适的PLD 芯片,应从速度与性能、逻辑利用率、使用方便性、编程技术等方面进行考查。速度与性能: 数据密集型系统,比如,通讯中对信号进行处理的二维卷积器. 在实现这一算法的逻辑系统中,每个单元所需要的输入端较少,但需要很多这样的逻辑单元. 这些要求与FPGA 的结构相吻合. 因为FPGA 的粒度小,其输入到输出的传输延迟时间很短,因而能获得高的单元速度.而控制密集型系统通常是输入密集型的,逻辑复杂,CLB 的输入端往往不够用,需把多个CLB 串行级联使用,同时CLB 之间的连接有可能通过多级通用PI 或长线,导致速度急剧下降. 因而实际的传输延迟时间要大CPLD. 比如,实现一个DRAM 控制器,它由四个功能块组成:刷新状态机、刷新地址计数器、刷新定时器和地址选择开关,需要的输入端有几十个,显然用CPLD 更合适. 逻辑利用率: 逻辑利用率是指器件中资源被利用的程度. CPLD 逻辑寄存器少,FPGA 逻辑弱而寄存器多,这正好与控制密集型系统与数据密集型系统相对应. 比如, 规模同为6000PLD 门的 is2pLSI1032 有192 个寄存器;而XC4005E 有616 个寄存器. 因此从逻辑利用率角度,对于组合电路较复杂的设计,宜采用颗粒较粗的CPLD ,触发器较多的设计,宜采用用细颗粒的FPGA. (3) 使用方便性: 使用方便首先要考虑性能的可预测性,在这点上CPLD 优于FPGA. 对于CPLD ,通常只要输入、输出端口数,内部门和触发器数目不超过芯片的资源并有

FPGA_CPLD的发展与展望

《EDA技术》结课论文FPGA技术及发展方向 姓名:____________郭阳______ 指导教师:________卢超______ 学号:______1110064081______ 所在学院:___物理与电信工程学院 所在专业:__电子信息科学与技术 论文完成时间:_____2014-6-20___

目录 摘要 (3) 一、 CPLD/FPGA简介 (3) 二、FPGA不断扩大的应用领域 (3) 三、FPGA的发展现状 (4) 1、FPGA的硬件朝向大容量、低电压、低功耗发展 (4) 2、系统级高密度FPGA (4) 3、第三方设计使FPGA更加方便 (5) 3.1、Altium:System-On-FPGA方案 (5) 3.2、Cadence:致力于验证 (5) 3.3、Mentor:具备FPGA全流程方案 (5) 4、FPGA和ASIC出现相互融合 (6) 5、动态可重构FPGA (6) 结论 (6) 参考文献 (6)

[摘要]:CPLD/FPGA的出现为EDA的快速发展做出了巨大的贡献。与传统单片机相比,CPLD/FPGA在高频电子设计上有突出的优势。CPLD/FPGA在很短的时间内得到了空前的发展,同时在电子市场上也得到了广泛的应用。通过对CPLD/FPGA当前现状的分析,可以为其未来的发展奠定基本方向。本篇文章得出CPLD/FPGA器件会向着大容量、低电压、低功耗的方向发展。于此同时IP库也在各大厂商的推动下将得到进一步的发展。另一方面,随着技术的发展,芯片的规模将越来越大,有取代ASIC的可能性。而最新的“动态可重构技术”也为系统设计方法的转变提供了条件。 [关键字]:CPLD/FPGA 技术现状发展方向 [Abstract]: The emergence of the CPLD/FPGA made great contribution to the rapid development of EDA. Compared with the traditional MCU, CPLD/FPGA has prominent advantages in high frequency electronic design. CPLD/FPGA in a very short period of time got unprecedented development, at the same time also has been widely used in the electronic market. Through the analysis of the current status of CPLD/FPGA, to lay the basic direction of future development. This article concludes that CPLD/FPGA device will toward the direction of large capacity, low voltage, low power consumption. At the same time the IP library under the impetus of the major manufacturers will also get further development. , on the other hand, with the development of technology, the size of the chip will be bigger and bigger, have replaced the possibility of an ASIC. The latest "dynamic reconfigurable technique" also provides conditions for the transition of the system design method. [Key words]: CPLD/FPGA technical state development direction 一、 CPLD/FPGA简介 CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于 CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。较常用的有Altera公司的CPLD。 FPGA通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程互连。可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,FPGA在可编程逻辑块的规模,内部互连线的结构和采用的可编程元件上存在较大的差异。FPGA一般用于逻辑仿真。电路设计工程师设计一个电路首先要确定线路,然后进行软件模拟及优化,以确认所设计电路的功能及性能。 随着电路规模的不断增大,电路频率的不断提高,将给电路引入许多分布参数的影响,而这些影响用软件方法较难进行仿真,所以有必要进行硬件仿真。FPGA就可以进行硬件仿真以做成模型机。将软件模拟后的路径下载到FPGA,就可容易的到一个模型机。从改模型机,设计者就可以很直观的测试其逻辑功能以及性能指标。 二、FPGA不断扩大的应用领域 据Gartner Dataquest在去年美国DAC(设计自动化年会)期间公布的数据,每年采用ASIC开始进行设计的数量在逐年下降,取而代之的是ASSP(特殊应用标准产品),由于深亚微米(DSM)制程以后,ASIC的开发成本不断上升,因此标准产品中的FPGA是理想的选择之一。FPGA的应用领域不断扩大,未来,消费电子(例如HDTV、无线路由器)和汽车电子是所有应用中成长最快的。汽车行业一直在密切关注可编程逻辑器件(PLD),发掘PLD怎样帮助系统供应商和汽车制造商(原始设备生产商)获得成功。PLD凭借其较低的成本结构和较高的系统性能,进入了主流汽车市场。与ASSP解决方案不同,PLD所具有的灵活性在汽车行业中受到普遍欢迎。汽车图形处理汽车联网辅助驾驶音频处理汽车行业一直在密切关注可编程逻辑器件(PLD),发掘PLD怎样帮助系统供应商和汽车制造商(原始设备生产商)获得成功。PLD已经在信息娱乐和通信市场上得到了广泛应用,新兴的汽车辅助驾驶设计也采用了PLD。在这一领域中,某些应用发展非常迅速,包括道路偏离报警、夜视和胎压监

CPLD和FPGA区别

CPLD和FPGA区别 可编程逻辑器件要紧包括FPGA和CPLD,FPGA是Field Programmable Gate Array缩写,CPLD是Complex Promrammable Logic Device的缩写。 从可编程逻辑器件的进展历史上来讲,CPLD一样是指采纳乘积相结构的基于EEPROM 的器件,因此具有非挥发的,不需要外部配置ROM,具有保密性和有限次编程次数(依照不同的结构,从100次到1万次不等)等特点,适合用在胶合逻辑(glue logic,如DSP芯片外围的译码逻辑),IO扩展,IO电平转换,FPGA芯片配置等应用场合。如Altera的MAX7000和MAX3000系列芯片,Xilinx的XC9500和CoolRunner/II系列芯片,Lattice的ispMACH4000/Z 系列芯片差不多上CPLD器件,容量从32宏单元到512宏单元不等。 FPGA要紧是指采纳四输入查找表(LUT4)的基于SRAM的器件,因为SRAM是挥发的,掉电丢失数据,因此FPGA需要外部配置ROM,上电的时候,从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作。具有SRAM的FPGA采纳标准的CMOS制造工艺,能够随着最新的工艺而更新还代,给用户带来了实惠;衡量FPGA容量的一个差不多指标是逻辑单元(Logic cell或者Logic element),由一个可编程得LUT4和一个可编程的DFF组成,LUT4完成组合逻辑功能, 而DFF用来实现时序功能。FPGA的容量从几千的逻辑单元到几十万的逻辑单元不等。如Altera的Cyclone/II/III和Stratix/II/III系列芯片,Xilinx Spartan3/3E/3A/3AN 和Virtex4/5系列芯片差不多上FPGA器件。 随着芯片技术的进展,CPLD和FPGA的概念差不多模糊在一起,如Altera和Lattice 公司把小容量(小于2K左右逻辑单元)非挥发的可编程器件归到CPLD里,如Altera的MAXII 系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和FLASH的储存单元做到一个芯片里面,以及跟传统的CPLD不一样了; 总之,我们能够简单的区分FPGA和CPLD,CPLD:小容量(<2K左右LE)的非挥发的可编程器件;其它的可编程器件都可归到FPGA。 系统的比较:

FPGA与CPLD 总结

CPLD(complex programable logic device)复杂可编程逻辑器件 FPGA(field programable gate array)现场可编程门阵列 FPGA和CPLD的逻辑单元本身的结构与SPLD相似,即与阵列和可配置的输出宏单元组成。FPGA逻辑单元是小单元,每个单元只有1-2个触发器,其输入变量通常只有几个因而采用查找表结构(PROM形式) 这样的工艺结构占用的芯片面积小,速度高(通常只有1-2纳秒),每个芯片上能集成的单元数多,但逻辑单元功能弱。 如果想实现一个较复杂的功能,需要几个这样的单元组合才能完成(总延时是各个单元延时和互连延时的和),互连关系复杂。 CPLD中的逻辑单元是单元,通常其变量数约20-28个。因为变量多,所以只能采用PAL结构。由于这样的单元功能强大,一般的 逻辑在单元内均可实现,因而其互连关系简单,一般通过集总总线既可实现。电路的延时通常就是单元本身和集总总线的 延时(通常在数纳秒至十几纳秒),但是同样集成规模的芯片中的触发器的数量少得多。从上面分析可知道:小单元的FPGA较适合数据型系统,这种系统所需要的触发器数多,但是逻辑相对简单;大单元的CPLD较适合 逻辑型系统,如控制器等,这种系统逻辑复杂,输入变量多,但触发器需求量相对较少。 反熔丝工艺只能一次性编程,EPROM EEPROM 和FLASH工艺可以反复的编程,但是他们一经编程片内逻辑就被固定。他们都是 只读型(ROM)编程,这类编程不仅可靠性较高还可以加密。 XILINX公司的FPGA芯片采用RAM型编程,相同集成规模的芯片中的触发器数目较多,功耗低,但是掉电后信息不能保存,必须 与存储器联用。每次上电时必须先对芯片配置,然后才能使用,这似乎是RAM型PLD的缺点,但是ROM型PLD中的编程信息在使用时 是不能变化的,RAM型PLD却可以在工作时更换内容,实现不同的逻辑。 CPLD和FPGA的结构,性能对照: CPLD FPGA PROM 集成规模:小(最大数万门)大(最高达百万门) 单元粒度:大(PAL结构)小(PROM结构) 互连方式:集总总线分段总线长线专用互连 编程工艺:EPROM EEPROM FLASH SRAM 编程类型:ROM RAM型须与存储器联用 信息:固定可实时重构 触发器数:少多 单元功能:强弱 速度:高低222222222222222222222222222222222222 延迟:确定,可以预测不能确定不能预测 功耗:高低 加密性能:可加密不能加密 适用场合:逻辑型系统数据型系统 LCA(LOGIC CELL ARRAY)逻辑单元阵列 CLB(CONFIGURABLE LOGIC BLOCK)可配置逻辑模块 IOB(INPUT OUTOUT BLOCK)输入输出块

FPGA与CPLD常见术语

FPGA专业术语 1.泛类 FPGA:field programmable gate array 现场可编程门阵列 CPLD:complex programmable logic device 复杂可编程逻辑器件 (EPLD:enhanced programmable logic device 增强型CPLD) VLSIC:very large scale integrated circuit 大规模集成电路 ASIC:application specific integrated circuit 专用型集成电路 RAM:random-access memory 随机存取存储器 ROM:read-only memory 只读存储器 E2PROM:electrically erasable programmable ROM 电擦除可编程ROM SOPC:system on programmable chip 可编程片上系统 PAL:programmable array logic 可编程逻辑阵列 GAL:generic array logic 通用逻辑阵列 SRAM工艺:static RAM 静态RAM DRAM:dynamic RAM 动态RAM SDRAM:synchronous dynamic RAM 同步动态RAM NOR flash:(not or)容量小,读得快擦写得慢 NAND flash:(not and)容量大,写得快读的慢 TTL:transistor-transistor logic 三级管结构 2.FPGA结构名词 ●逻辑单元 LUT:look up table 查找表 Register:寄存器 FF:flip flop 时钟使能触发器 Latch:锁存器 LE:logic element 逻辑单元(LE = LUT + Register) (LC:logic cell 意同LE) LAB:logic array block 逻辑阵列模块(LAB = 10LE) (PFU:programmable function unit 可编程功能单元,意同LAB) ●嵌入式块RAM SPRAM:single port RAM 单端口RAM DPRAM:double port RAM 双端口RAM Pseudo RAM:伪双端口RAM CAM:content addressable memory 查找数据返回地址,功能与RAM反FIFO:first in first out 先进先出存储结构 Glue logic:粘合逻辑,基于RAM实现RAM ROM CAM FIFO结构 (LUT也可配置为RAM ROM CAM FIFO结构:distributed RAM:分布式RAM) ●布线资源 Bank:分区 Low skew:第二全局时钟 ●底层潜入单元 PLL:phase locked loop 相位锁环 DLL:delay locked loop 延时锁环

相关文档
最新文档