现场可编程逻辑器件FPGA的基本结构
扫描二维码
随时随地手机看文章
1.查找表的结构奸原理
采用查找表(Look-Up-Table)结构的PLD芯片称为FPGA,查找表简称为LUT,LUT本质上就是一个RAM。 目前FPGA中多使用4输人的LUT,所以每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述一个逻辑电路后,FPCA开发软件会自动计算逻辑电 路的所有可能的结果,并把结果事先写人RAM,这样,每输人一个信号进行逻辑运算就等于输人一个地址 进行查表,找出地址对应的内容,然后输出即可。表1所示为一个4输人与门的例子。
表1 LUT实现4输入与门的例子
2.基于查找表的FPGA结构
下面以Xilinx的Spartan-3芯片为例介绍FPGA的内部结构,如图1所示。
图1 Spartan-3 FPGA芯片内部结构
Spartan-3主要包括可配置逻辑模块(CLB)、I/0模块、块RAM、乘法器模块和数字时钟管理模块(DCM )。在Spartan-3中,CLB是主要的逻辑资源,每个CLB包含4个Slice,并分为2组,如图2所示。左侧一组 支持逻辑和存储功能,称为SLICEM,右侧一组只支持逻辑功能,称为SLICEL。SLICEL减少了CLB的大小并 降低了器件的成本。SLICEM和SLICEL具有如下相同组件来提供逻辑、运算和ROM功能:
·2个4输人查找表,F和G;
·2个存储单元;
图2 CLB内部结构
·2个多功能乘法器,F5MUX和FGMUX(或FTMUX,FSMUX);
·运算逻辑。
因此,Slice可以看成Spartan-3实现逻辑的最基本结构。Slice结构如图3所示。
图3 Slice结构
3,查找表结构的FPGA逻辑实现原理
以图4所示电路为例,具体说明FPGA是如何利用以上结构实现逻辑的。A,B,C,D由FPCA芯片的引脚输 人后进人可编程连线,然后作为地址线连到LUT,LUT中已经事先写人了所有可能的逻辑结果,通过地址查 找到相应的数据后输出,这样组合逻辑就实现了。该电路中D触发器是直接利用LUT后面D触发器来实现的 。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出 与I/0脚相连,把结果输出到芯片引脚。这样FPGA就完成了图4所示电路的功能。这个电路是一个很简单的 例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的电路,就需要通过进位逻辑将 多个单元相连,这样FPGA就可以实现复杂的逻辑。
由于LUT主要适合SRAM工艺生产,所以目前大部分FPCA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电 后信息就会丢失,所以需要外加一片专用配置芯片,在上电时,由这个专用配置芯片把数据加载到FPGA中 ,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或 Flashェ艺,对这种FPGA,就不需要外加专用的配置芯片。
图4 FPGA器件的命名规则
4.CPLD与FPGA的选择
根据CPLD的结构和原理可知,CPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20~30 多个组合逻辑输入。而FPGA的一个LUT只能处理4输人的组合逻辑,因此,CPLD适合用于设计译码等复杂组 合逻辑。但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量菲常多,往往都是成千上万, CPLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大 大低于CPLD。所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个 很好的选择。CPLD拥有上电即可工作的特性,而大部分FPGA需要一个加载过程,所以,如果系统要可编程 逻辑器件上电就工作,那么就应该选择CPLD。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
来源:ks990次