跳转到主要内容
国际橡塑展报名
国际橡塑展报名
国际橡塑展报名

查找表

初识FPGA CLB之LUT实现逻辑函数

judy /

<strong>一、概述</strong>

LUT中文名字叫查找表。以7系列的FPGA为例,每一个Slice里面有四个LUT。FPGA就是通过LUT实现大量的组合逻辑,以及SLICEM里面的LUT还可以构成RAM,Shift Register,以及Multiplexers。这篇文章我们一起来学习LUT如何构成组合逻辑。

<strong>二、LUT实现原理</strong>
LUT,中文名字叫做查找表,其原理其实也就是一个一个查找表,根据输入去找到相应位置的信号,然后做输出。说白了就好像一个小容量的ROM,把输入当作地址信号,对LUT里面预存的内容进行寻址。

FPGA中LUT设计

judy /

在FPGA中,实现逻辑的基本单元是查找表(LUT)而非基本门电路。目前的FPGA中,单一LE或者Cell通常能实现至少4输入查找表的逻辑功能。

4输入查找表可以看成是具有4位地址1位数据的存储器,能够存储16bit数据,这也是LUT能被用于组建分布式RAM的原因。

如果要构成一个6输入1输出MUX,可以通过两片4输入查找表级联,也可直接用一片完整的6输入查找表,两片4输入的查找表的存储容量是32,而一片完整的6输入查找表的存储容量是64;若使用6输入查找表(存储容量为64)实现4输入(存储容量为16)的逻辑功能,则浪费了75%的存储容量。也就是说,采用较少输入的查找表实现较多输入查找表的功能,在面积上有更高的利用率。

但是并非只需要考虑面积利用率,还应考虑到时序和布线问题,按照输入越少面积利用率越高的说法,岂不是2输入查找表更具有优势?但是各个FPGA厂商都不提供2输入查找表,因为如果FPGA都以2输入查找表为基本逻辑单元,那么实际应用中,几乎所有的逻辑都需要查找表级联实现,但是FPGA中的布线资源并不足以支撑这样的设计,同时,这样的设计也将导致时序问题。