《{PLD可编程逻辑器件}13CPLD与FPGA》由会员分享,可在线阅读,更多相关《{PLD可编程逻辑器件}13CPLD与FPGA(70页珍藏版)》请在金锄头文库上搜索。
1、CPLD与FPGA,ARM,DSP,FPGA 的区别,ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面。 DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。 FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、检错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。,目录,可编程逻辑器件的发展历程 CPLD/FPGA厂商概述 CPLD原理 FPGA原理 常用
2、EDA设计工具,可编程逻辑器件的发展历程,可编程逻辑器件的发展历程-1,当今社会是数字化的社会,是数字集成电路广泛应用的社会; 系统设计师们愿意自己设计专用集成电路(ASIC)芯片; 现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。,可编程逻辑器件的发展历程-2,早期,出现了可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM); 其后,出现了可编程逻辑器件(PLD) ,典型的PLD由一个“与”门和一个“或”门阵列组成 产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑),可编程逻辑器件的发展历程-3,20世纪80年代中期。
3、Altera和Xilinx分别推出了类似于PAL结构的扩展型 CPLD(Complex Programmable Logic Dvice)和与标准门阵列类似的FPGA(Field Programmable Gate Array),谁在使用Altera和Xilinx的产品?,通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。 全球CPLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。,相关说明-1,Xilinx把基于查找表技术,SRAM工艺,要外挂配置用的EEPROM的P
4、LD叫FPGA;把基于乘积项技术,Flash(类似EEPROM工艺)工艺的PLD叫CPLD; Altera 把自己的PLD产品:MAX系列(乘积项技术,EEPROM工艺),FLEX系列(查找表技术,SRAM工艺)都叫作CPLD,由于FLEX系列也是SRAM工艺,基于查找表技术,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX系列产品也叫做FPGA。,相关说明-2,“可编程ASIC”是错误的说法 ASIC是专用集成电路 ,通常都不可编程。 CPLD与FPGA的一般不同就在于其结构和配置方式 CPLD掉电后,仍能保存着原有数据不丢失; FPGA需要给予
5、稳定的电源,否则掉电后又需重新配置(编程)。,CPLD/FPGA厂商概述,CPLD/FPGA厂商概述,随着可编程逻辑器件应用的日益广泛,许多IC制造厂家涉足PLD/FPGA领域。 目前世界上有十几家生产CPLD/FPGA的公司,最大的三家是:ALTERA,XILINX,Lattice,其中ALTERA和XILINX占有了60%以上的市场份额。,CPLD/FPGA部分厂商介绍,Altera Xilinx Lattice Actel Cypress,QuickLogic Lucent Atmel Clear Logic WSI,Altera,九十年代以后发展很快,是最大可编程逻辑器件供应商之一。主
6、要产品有:MAX3000/7000,FLEX10K,APEX20K,ACEX1K,Stratix,Cyclone等。开发软件为MaxplusII和QuartusII。 普遍认为其开发工具QuartusII是最成功的PLD开发平台之一,配合使用Altera公司提供的免费OEM HDL综合工具可以达到较高的效率。,Xilinx,FPGA的发明者,老牌PLD公司,是最大可编程逻辑器件供应商之一。产品种类较全,主要有:XC9500/4000,Coolrunner(XPLA3) ,Spartan, Virtex等。开发软件为Foundition和ISE。,Lattice,Lattice是ISP技术的发明
7、者,ISP技术极大的促进了PLD产品的发展,与ALTERA和XILINX相比,其开发工具比ALTERA和XILINX略逊一筹。中小规模PLD比较有特色,不过其大规模PLD、FPGA的竞争力还不够强。,Actel,反熔丝(一次性烧写)PLD的领导者,由于反熔丝PLD抗辐射,耐高低温,功耗低,速度快,所以在军品和宇航级上有较大优势。ALTERA和XILINX则一般不涉足军品和宇航级市场。,Atmel,ATMEL公司是是世界上高级半导体产品设计、制造和行销的领先者,产品包括了微处理器、可编程逻辑器件、非易失性存储器、安全芯片、混合信号及RF射频集成电路。,CPLD原理,基于乘积项的PLD结构,采用这
8、种结构的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice,Cypress的大部分产品(EEPROM工艺)。,PLD的总体结构,以MAX7000为例,其他型号的结构与此都非常相似,PLD的总体结构,以MAX7000为例,其他型号的结构与此都非常相似,宏单元(Marocell),PLD的总体结构,以MAX7000为例,其他型号的结构与此都非常相似,可编程连线(PIA),PLD的总体结构,以MAX7000为例,其他型号的结构与此都非常相似,I/O控制块,宏单元的结构,宏单元(Macro cell),宏
9、单元的结构,宏单元(Macro cell),左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。,宏单元的结构,宏单元(Macro cell),图右侧是一个可编程D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O脚。,乘积项结构的PLD逻辑实现原理-1,下面我们以一个简单的电路为例,具体说明PLD是如何利用以上结构实现逻辑的。,乘积项结构的
10、PLD逻辑实现原理-1,假设组合逻辑的输出(AND3的输出)为f,则f=(A+B)*C*(!D)=A*C*!D+ B*C*!D 我们以!D表示D的“非”,乘积项结构的PLD逻辑实现原理-2,PLD将以下面的方式来实现组合逻辑f,说明见备注,PLD原理总结-1,前面的电路是一个很简单的例子,只需要一个宏单元就可以完成。 对于一个复杂的电路,一个宏单元是不能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为另一个宏单元的输入。,PLD原理总结-2,这种基于乘积项的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他
11、芯片配合。,FPGA原理,基于查找表结构的FPGA原理,采用这种结构的PLD芯片我们也可以称之为FPGA:如Altera的ACEX,APEX系列,Xilinx的Spartan,Virtex系列等。,查找表的实质-1,查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。 目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。,查找表的实质-2,当用户通过原理图或HDL语言描述了一个逻辑电路以后,开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。 这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地
12、址对应的内容,然后输出即可。,一个4输入与门的例子,给出实际电路。 给出LUT地实现方式。 通过对比观察结果。,一个4输入与门的例子,一个4输入与门的例子,一个4输入与门的例子,基于查找表的FPGA的结构-1,我们看一看Xilinx Spartan-II的内部结构 (详细见备注),Xilinx Spartan-II 芯片内部结构,基于查找表的FPGA的结构-1,我们看一看Xilinx Spartan-II的内部结构 (详细见备注),Slices结构,基于查找表的FPGA的结构-2,Altera的FLEX/ACEX等芯片的结构 (详细见备注),Altera FLEX/ACEX 芯片的内部结构,基
13、于查找表的FPGA的结构-2,Altera的FLEX/ACEX等芯片的结构 (详细见备注),逻辑单元(LE)内部结构,查找表结构的FPGA逻辑实现原理-1,回顾CPLD实现原理中讲述过的例子。,查找表结构的FPGA逻辑实现原理-2,A,B,C,D由FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。,查找表结构的FPGA逻辑实现原理-2,该电路中D触发器是直接利用LUT后面D触发器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输
14、出与I/O脚相连,把结果输出到芯片管脚。这样PLD就完成了上图所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预),查找表结构的FPGA逻辑实现原理-3,这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。,查找表结构的FPGA逻辑实现原理-4,由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPG
15、A就可以正常工作,由于配置时间很短,不会影响系统正常工作。,查找表结构的FPGA逻辑实现原理-5,也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。,选择PLD还是FPGA?(1),根据上一篇PLD的结构和原理可以知道,PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至2030多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑, 因此,PLD适合用于设计译码等复杂组合逻辑。,选择PLD还是FPGA?(2),但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,
16、而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。 所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。,常用EDA设计工具,集成的PLD/FPGA开发环境,这类软件都是由PLD/FPGA芯片厂家提供,基本都可以完成所有的设计输入(原理图或HDL),仿真,综合,布线,下载等工作。,设计输入工具(文本),这类软件主要是帮助用户完成HDL文本的编辑和输入工作,提高输入效率,并不是必须的,更多人更习惯使用集成开发软件或者综合/仿真工具中自带的文本编辑器,甚至可以直接使用普通文本编辑器。,逻辑综合软件,这类软件将把HDL语言翻译成最基本的与或非门的连接关系(网表),输出edf文件,导给PLD/FPGA厂家的软件进行试配和布线。 为了优化结果,在进行复杂HDL设计时,基本上都