由于FPGA 需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC 那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构,查表(Look Up Tabler,LUT)可以很好地满足这一要求。目前,主流FPGA 都采用了基于SRAM 工艺的查找表结构,也有一些军品和宇航级FPGA 采用Flash/熔丝/反熔丝工艺的查找表结构。
由布尔代数理论可知,对于一个N 输入的逻辑运算,最多产生2N 个不同的组合。所以,如果预先将相应的结果保存在一个存储单元中,就相当于实现了与非门电路的功能。
FPGA 的原理的实质,就是通过配置文件对查找表进行配置,从而在相同的电路情况下实现了不同的逻辑功能。
1. 4 输入查找表结构
LUT 本质就是一个RAM,自FPGA 诞生以来,它大多使用4 输入的LUT 结构,所以每个LUT 可以看成一个包含四位地址线的RAM。当设计者通过原理图或HDL 描述了一个逻辑电路后,FPGA 厂商提供的集成开发工具就会自动计算逻辑电路的所有可能结果,并把真值表事先写人到RAM 中。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出内容即可。
下面用一个4 输入逻辑与门电路的例子来说明LUT 实现组合逻辑的原理。LUT 描述四输入逻辑与关系见表1.1。
表1.1 4 输入与门的真值表
(www.xing528.com)
从表1 可以看到,LUT 具有和逻到电路相同的功能,但是LUT 具有更快的执行速度和更大的规模。与传统化简真值表构造组合逻辑的方法相比,LUT 具有明显的优势,主要表现在:
(1)LUT 实现组合逻辑的功能由输入决定,而不是由复杂度决定。
(2)LUT 实现组合逻辑有固定的传输延迟。
2. 6 输入查找表结构
在65 nm 工艺条件下,与其他电路(特别是互连电路)相比,LUT 的常规结构大大缩小。一个具有4 倍比特位的6 输入LUT 结构仅仅将所占用的CLB 面积增加了 15%,但是平均而言,每个LUT 上可集成的逻辑数量却提高了 40%。当采用更高的逻辑密度时,通常可以降低级联LUT 的数目,并且改进关键路径延迟性能。
新一代的FPGA 提供了真正的6 输入LUT,可以将它用作逻辑或者分布式存储器,这时,LUT 是一个64 位的分布式RAM(甚至双端口或者四端口)或者一个32 位可编程移位寄存器,每个LUT 具有两个输出,从而实现了五个变量的两个逻辑函数,存储32×2 RAM 比特,或者作为16×2 比特的移位寄存器进行工作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。