目前以硬件描述语言(Verilog 或 VHDL)描述的逻辑电路,可以利用逻辑综合和布线工具软件,快速地烧录至 FPGA 上进行测试,这一过程是现代 集成电路 设计验证的技术主流。这些可编程逻辑元件可以被用来实现一些基本的逻辑门数字电路(比如与门、或门、异或门、非门)或者更复杂一些的组合逻辑功能,比如译码器等。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件,例如触发器(Flip-flop)或者其他更加完整的记忆块,从而构成时序逻辑电路。
系统设计师可以根据需要,通过可编辑的连接,把FPGA内部的逻辑块连接起来。这就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者的需要而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比专用集成电路(ASIC)的速度要慢,无法完成更复杂的设计,并且会消耗更多的电能。但是,FPGA具有很多优点,比如可以快速成品,而且其内部逻辑可以被设计者反复修改,从而改正程序中的错误,此外,使用FPGA进行调试的成本较低。厂商也可能会提供便宜、但是编辑能力有限的FPGA产品。因为这些芯片有的可编辑能力较差,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于专用集成电路的芯片上。在一些技术更新比较快的行业,FPGA几乎是电子系统中的必要部件,因为在大批量供货前,必须迅速抢占市场,这时FPGA方便灵活的优势就显得很重要。
为了达到上述目的,另外一种方法是采用CPLD(复杂可编程逻辑器件)而不是FPGA。下面对CPLD进行简要介绍,并与FPGA进行比较。
早在1980年代中期,FPGA已经在可编程逻辑器件设备中扎根。CPLD和FPGA都包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。
CPLD和FPGA的主要区别是他们的系统结构。CPLD的结构具有一定的局限性。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器组成。这样的结果是缺乏编辑灵活性,但是它的优点是,其延迟时间易于预计,逻辑单元对连接单元比率较高。而FPGA具有的连接单元数量很大,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。
CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的存储器。一个由此带来的重要区别是,很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑,而其他部分继续正常运行。
每一块FPGA芯片都是由有限多个带有可编程连接的预定义源组成来实现一种可重构数字电路。
图1.FPGA不同构成
FPGA芯片说明书中,包含了可编程逻辑模块的数量、固定功能逻辑模块(如乘法器)的数目及存储器资源(如嵌入式RAM)的大小。FPGA芯片中还有很多其它的部分,但是以上指标通常是为特定应用选择和比较FPGA时,最重要的参考指标。
在最底层,可配置逻辑模块(如片或逻辑单元)有着两种最基本的部件:触发器和查找表(LUT)。这很重要,因为各种FPGA家族之所以各不相同,就是因为触发器和查找表组合的方式不同。例如,Virtex-II 系列的FPGA ,它的片具有两个查找表和两个触发器,而Virtex-5 FPGA的片具有4个查找表和4个触发器。查找表本身的结构也可能各不相同(4输入或6输入)。关于查找表工作原理的更多信息将在后面的章节中给出。
表1中列出了在NI LabVIEW FPGA硬件目标中使用的FPGA的指标。逻辑门的数量是一种将FPGA芯片与ASIC技术进行比较的传统方法,但是它并不能真实地表述FPGA内部的独立单元的数量。这就是Xilinx公司没有在新型Virtex-5系列中指定逻辑门数量的原因之一。
文章评论(0条评论)
登录后参与讨论