FPGA LE(转)

http://zhangzhenyuan163.blog.163.com/blog/static/85819389201331774854351/

1.3.1  可编程逻辑单元(LE)

图1.12所示是一个典型的LE的结构图。LE包括3个主要部分:查找表(LUT)、进位逻辑和输出寄存器逻辑。

 
图1.12  典型的LE的结构图

其中,FPGA用查找表(LUT)替代了CPLD中的乘积项阵列,它是FPGA中组合逻辑输出乘积和的关键。大部分器件使用4输入LUT,而有些器件提供输入数量更大的LUT,以建立更复杂的功能。LUT由一系列级联复用器构成,如图1.13所示。

 
图1.13  查找表(LUT)结构示意图

复用器输入可以被设置为高或者低逻辑电平。逻辑之所以被称为查找表,是因为通过"查找"正确的编程级来选择输出,并根据LUT输入信号通过复用器将输出送到正确的地方。

LUT本质上就是一个RAM。对于4输入的LUT,每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

注意:相对于CPLD宏单元,产生LUT输出可能需要更多的逻辑级。但是,它能够灵活地建立函数和LE链,从而提高了性能,有助于减少资源的浪费。

LE的同步部分来自可编程寄存器,非常灵活,通常由全局器件时钟来驱动它,而任何时钟域都可以驱动任何LE。寄存器的异步控制信号,如清位、复位或者预设等,都可以由其他逻辑产生,也可以来自I/O引脚。

寄存器输出通过LE后驱动至器件布线通道,还可以反馈回LUT。可以把寄存器旁路,产生严格的组合逻辑功能,也可以完全旁路LUT,只使用寄存器用于存储或者同步。这种灵活的LE输出级使其非常适合所有类型的逻辑操作。

FPGA LE含有专门的进位逻辑和LAB中的寄存器链布线,为这些信号提供最短链接。进位比特可以来自LAB中的其他LE,也可以来自器件中的其他LAB。产生的进位比特可以输出到其他LE,或者器件互连中。

LAB中的LUT和进位逻辑可以被完全旁路,链接LAB中的所有LE寄存器,把它们变成移位寄存器,这适合DSP工作。和CPLD相比,进位逻辑和寄存器链布线的通用性进一步提高了性能,增强了对资源的管理。

注意:由于LUT和寄存器都能够输出至器件中的任一位置,不论是位于相同的LAB中,还是通过器件的布线通道。因此,FPGA LE可以配置完成寄存器封装功能。采用寄存器封装,一个LE可以输出两路不同的函数,一路来自LUT和进位链逻辑,另一路来自输出寄存器。只使用模块的组合逻辑部分,完全不相关的寄存器函数可以封装到一个LE中。因此,这有助于节省器件资源。

目前为止,所讨论的FPGA LE的确要比CPLD宏单元在设计上更加灵活,但还是需要LE级联和反馈才能产生具有较多输入的函数。为解决这个问题,一些高级FPGA使用自适应逻辑模块(ALM)。ALM和LE相似,但有一些重要优势。

首先,ALM包括两个输出寄存器,为逻辑链和寄存器封装提供更多的选项,在一个逻辑模块中生成多个函数。ALM还具有内置硬件加法器模块。ALM中的加法器是专用资源,完成标准算术操作,不需要在LUT或者在DSP中生成这些数学函数。这提高了数学性能,简化了LUT逻辑。

ALM中的LUT和LE的主要不同点是ALM中的LUT是自适应LUT,即ALUT。ALUT与LUT相似,但可以对它进行划分,配置为大小不同的LUT,以适应两种类型不同的函数,包括最简单到非常复杂的函数。所有8个输入都可以用于完成复杂算术函数,而ALUT可以按照不同的方式来进行划分,实现简单函数。

例如,两个LUT,一个是3输入,一个是5输入。还可以划分ALUT以支持更复杂的7输入函数,其额外的输入用于寄存器封装。分成两个4输入LUT,使ALUT后向兼容标准LE中的4输入LUT技术。最后,如果两个函数之间可以共享输入,还能够进行其他方式的划分。基于ALM的FPGA使用较少的资源和智能资源管理技术,大大提高了逻辑工作的性能。

posted @ 2013-11-20 10:22  habyjing  阅读(5383)  评论(0编辑  收藏  举报