什么是LUT原理,看完这篇文章你就知道了
查找表(Look-Up-Table)简称为LUT,其本质就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就相当于输入一个地址进行查表,找出地址对应的内容,然后将其输出即可。
我们知道,一个n输入的逻辑运算,不管是与或非运算还是异或运算,最多只可能存在2 n 种结果,如表1-1的4输入与门共有16种输出结果。这样就将实际逻辑电路转换成了LUT结构。
表1-1 4输入与门的真值表
A,B,C,D由FPGA芯片的引脚输入后进入可编程连线,然后作为地址线连到LUT。LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据,然后将其输出,这样就实现了组合逻辑。该电路中 D 触发器是直接利用 LUT 后面的 D触发器来实现的。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出端与 I/O 脚相连,把结果输出到芯片引脚,这样PLD就完成了图1-7所示电路的功能(以上步骤都是由软件自动完成的,不需要人为干预)。
图1-7 4输入与门的逻辑实现
这个电路是一个很简单的例子,只需要一个LUT加一个触发器就可以完成。对于一个LUT无法完成的电路,需要通过进位逻辑将多个单元相连,这样就可以用FPGA实现复杂的逻辑。
由于LUT主要适于SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后就会信息丢失,因此一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,这不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,这种FPGA就不需要外加专用的配置芯片。
由于需要反复烧写,FPGA实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺或基于FLASH工艺的查找表结构,通过每次烧写改变查找表内容的方法实现对FPGA的重复配置。