现场可编程逻辑器件FPGA的基本结构
发布时间:2008/12/8 0:00:00 访问次数:624
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)
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)