《FPGA、CPLD工作原理与简介.docx》由会员分享,可在线阅读,更多相关《FPGA、CPLD工作原理与简介.docx(11页珍藏版)》请在第一文库网上搜索。
1、FPGACP1D工作原理与简介可编程逻辑器件(Programmab1e1ogiCDevice,P1D)起源于20世纪70年代,藤军用集成电路(ASIC)的基础上发展起来的一种新型逻辑器件,是当今数字系统设计的主要便件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级P1D时,不需额外地改变匹殳电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本,因此获得了广大硬件建处的青睐,形成了巨大的P1D产业规模。目前常见的P1D产品有:编程只读存储器(PrOgrammabIeRe
2、adOn1yMemory,PROM),现场可编程逻辑阵列(Fie1dProgrammab1e1ogicArray,FP1A),可编程阵列逻辑(PrOgrammabIeArray1ogic,PA1),通用阵列逻辑(GenericArray1ogic,GA1)f可擦除的可编程逻辑器件(Erasab1eProgrammab1e1ogicArray,EP1A),复杂可编程逻辑器件(Comp1exProgrammab1e1ogicDevice,CP1D)和现场可编程门阵列(FieIdProgrammab1eGateArray,FP而等类型。P1D器件从规模上又可以细分为简单P1D(SP1D)复杂P1D(
3、CP1D)以及FPGA。它们内部结构的实现方法各不相同。可编程逻辑器件按照基本单元颗粒度可以分为3类:小颗粒度(如:“门海(seaofgates)”架构),中等颗粒度(如:FPGA),大颗粒度(如:CP1D)0按照编程工艺可以分为四类:熔丝(Fuse)和反熔丝(Antifuse)编程器件,可擦除的可编程只读存储器(UEPROM)编程器件,电信号可擦除的可编程只读存储器(EEPROM)编程器件(如:CP1D),SRAM编程器件(如:FPGA)0在工艺分类中,前3类为非易失性器件,编程后,配置数据保留在器件上;第4类为易失性器件,掉电后配置数据会丢失,因此在每次上电后需要重新进行数据配置。可编程逻
4、辑器件的发展历史可编程逻辑器件的发展可以划分为4个阶段,即从20世纪70年代初到70年代中为第1阶段,20世纪70年代中到80年代中为第2阶段,20世纪80年代到90年代末为第3阶段,20世纪90年代末到目前为第4阶段。第1阶段的可编程器件只有简单的可编程只读存储器(PROM),紫外线可擦除只读存储器(EPROM)和电可擦只读存储器(EEPROM)3种,由于结构的限制,它们只能完成简单的数字逻辑功能。第2阶段出现了结构上稍微复杂的可编程阵列逻辑(PA1)和通用阵列逻辑(GA1)器件,正式被称为P1D,能够完成各种逻辑运算功能。典型的P1D由“与”、“非”阵列组成,用“与或”表达式来实现任意组合
5、逻辑,所以P1D能以乘积和形式完成大量的逻辑组合。第3阶段Xi1inx和A1tera分别推出了与标准门阵列类似的FPGA和类似于PA1结构的扩展性CP1D,提高了逻辑运算的速度,具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,兼容了P1D和通用门阵列的优点,能够实现超大规模的电路,编程方式也很灵活,成为产品原型设计和中小规模(一般小于IOOOO)产品生产的首选。这一阶段,CP1D.FPGA器件在制造工艺和产品性能都获得长足的发展,达到了0.18工艺和系数门数百万门的规模。第4阶段出现了SOPC和SOC技术,是P1D和ASIC技术融合的结果,涵盖了实时化数字信号处理技术、高速数据收发器
6、、复杂计算以及嵌入式系统设计技术的全部内容。XiIinX和AItera也推出了相应SOCFPGA产品,制造工艺达到65,系统门数也超过百万门。并且,这一阶段的逻辑器件内嵌了硬核高速乘法器、GbitS差分串行接口、时钟频率高达500MHZ的POwerPC微处理器、软核MicroB1azePicob1azeNiOS以及NiosII,不仅实现了软件需求和硬件设计的完美结合,M实现了高速蕨活性的完美结合,使其已超越了AS1C器件的性能和规模,也超越了传统意义上FPGA的概念,使P1D的应用范围从单片扩展到系统级。目前,基于P1D片上可编程的概念仍在进一步向前发展。开发工具基于高复杂度P1D器件的开发,
7、在很大程度上要依靠电壬设计自动化(EDA)来完成。P1D的EDA工具以计算机软件为主,将典型的单元电路封装起来形成固定模块并形成标准的硬件开发语言(如HD1语言)供设计人员使用。设计人员考虑如何将可组装的软件库和软件包搭建出满足需求的功能模块甚至完整的系统。P1D开发软件需要自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标甚左的适配编译和编程遣等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HD1、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合。随着开发规模的
8、级数性增长,就必须减短P1D开发软件的编译时间、并提高其编译性能以及提供丰富的知识产权(IP)核资源供设计人员调用。此外,P1D开发界面的友好性以及操作的复杂程度也是评价其性能的重要因素。目前在P1D产业领域中,各个芯片提供商的P1D开发工具已成为影响其成败的核心成分。只有全面做到芯片技术领先、文档完整和P1D开发软件优秀,芯片提供商才能获得客户的认可。一个完美的P1D开发软件应当具备下面5点:准确地将用户设计转换为电路模块能够高效地利用器件资源能够快速地完成编译和综合提供丰富的IP资源用户界面友好、操作简单CP1D工作原理与简介基于乘积项(PrOd1ICt-rm)的P1D结构采用这种结构的P
9、1D芯片有:AItera的MAX7000,MAX3000系列(EEPROM工艺),Xi1inx的XC9500系列(F1aSh工艺)和1attice,CyPreSS的大部分产品(EEPRoM工艺)我们先看一下这种P1D的总体结构(以MAX7000为例,其他型号的结构与此都非常相似):INPUTG1CK1-INPUTZGC1RnOINPUT0E11INPUT0E2(E3-E3-8to16VOpins!E2-E3-OI/脚控制块8Io161ABD8to161nr81o16-ES-8to162V。pins*E3-AOI/脚控制块可编程连线367MaCroCe1IS49to648to168Io167I/
10、O脚控制块I/O脚控制块-E3-E38to16VOpins-E3-E8to16:V0pv-E3-E.Cn图1基于乘积项的P1D内部结构这种P1D可分为三块结构:宏单元(MarOCe11),可编程连线(P1A)和I/O控制块。宏单元是P1D的基本结构,由它来实现基本的逻辑功能。图1中兰色部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。图1左上的INPUT/GC1K1,INPUT/GC1Rn,INPUTOE1,INPUT/0E2是全局时钟,清零和输出使能信号,
11、这几个信号有专用连线与P1D中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。宏单元的具体结构见下图:乘税项逻偌阵列丁16ExpanderPrOdUaTermstoVOBtodi3Signa1sfromPIA图2宏单元结构左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。图右侧是一个可编程D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出
12、到I/O脚。乘积项结构P1D的逻辑实现原理下面我们以一个简单的电路为例,具体说明P1D是辑的输出(AND3的输出)为f,则f=(A+B)*C*(!D)=A*C*!D+B*C*!D(我们以!D表示D的“非”)P1D将以下面的方式来实现组合逻辑后进入可编程连线阵列(PIA),在内部会产生A,A反,B,B反,C,C反,D,D反8个输出。图中每一个叉表示相连(可编程熔丝导通),所以得到:f=f1f2二(A*C*!D)+(B*C*!D).这样组合逻辑就实现了。图3电路中D触发器的实现比较简单,直接利用宏单元中的可编程D触发器来实现。时钟信号C1K由I/O脚输入后进入芯片内部的全局时钟专用通道,直接连接到
13、可编程触发器的时钟端。可编程触发器的输出与I/O脚相连,把结果输出到芯片管脚。这样P1D就完成了图3所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)图3的电路是一个很简单的例子,只需要一个宏单元就可以完成。但对于一个复杂的电路,一个宏单元是不能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为另一个宏单元的输入。这样P1D就可以实现更复杂逻辑。这种基于乘积项的P1D基本都是由EEPROM和FIaSh工艺制造的,一上电就可以工作,无需其他芯片配合。FPGA工作原理与简介如前所述,FPGA是在PA1、GA1、EP1D、C
14、P1D等可编程器件的基础上进一步发展的产物。它是作为AS1C领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用F1ash或者熔丝与反熔丝工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。根据数主电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最
15、多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。查找表(1ook-Up-Tab1e)简称为1UT,1UT本质上就是一个RAM。目前FPGA中多使用4输入的1UT,所以每一个1UT可以看成一个有4位地址线的的RA当用户通过原理图或HD1语言描述了一个逻辑电路以后,P1D/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。下面给出一个4与门电路的例子来说明1UT实现逻辑功能的原理。例:给出一个使用1UT实现4输入与门电路的真值表。表IT4输入与门的真值表实际逻辑电路1UT的实现方式a,b,c,编入逻辑输出RAMife1ihRAM中存储的内容0000000000OOO1000010I1111I1111从中可以看到,1UT具有和逻辑电路相同的功能。实际上,1UT具有更快的执行速度和更大的规模。由