FPGA资源利用率报告中的LUT和LUTRAM有什么区别

本文详细解析了FPGA设计中的LUT和LUTRAM的概念及其区别,通过实例验证了LUT作为逻辑函数发生器和存储单元的角色,以及LUTRAM特指用于分布式RAM/ROM或移位寄存器的SLICEM中的LUT。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过Report Utilization查看资源利用率报告时,会生成如下图所示的一个表格。在这个表格中Resource对应的列会有LUT和LUTRAM,那么两者到底有什么区别呢?是包含关系吗?不过,可以断定的是LUTRAM是指将LUT用做分布式RAM/ROM,换句话说是指SLICEM中的LUT被用做了存储单元,那么这里的存储单元是否包含移位寄存器(SRL)呢?

为了验证我们看如下一个设计。这个设计包含三个模块:5-bit计数器(会消耗1个LUT),32x1(深度为32,宽度为1)的分布式RAM(会消耗1个SLICEM中的LUT),深度为32的移位寄存器(会消耗1个SLICEM中的LUT)。

对每个模块采用OOC综合方式,可以验证上述对每个模块LUT利用率推断的正确性,如下图所示。

打开布线后的DCP,执行report_utilization命令,结果如下图所示。可以看到该设计共消耗了3个LUT,2个LUTRAM。

事实上,从Available对应列可以看到LUT对应的数据为41000,而该数据指的是FPGA中所有LUT的个数。

结论:

-资源利用率中的LUT是指设计中消耗的所有LUT,包括用做逻辑函数发生器的LUT(SLICEL中的LUT),也包括用做存储单元的LUT(SLICEM中的LUT)

-资源利用率报告中的LUTRAM是指设计中消耗的SLICEM中的LUT(用做分布式RAM/ROM或移位寄存器)

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中的布线资源并不足以支撑这样的设计,同时,这样的设计也将导致时序问题。   因此,使用多少输入作为基本的查找表是一个重要的问题,目前在一般的FPGA中,为了平衡查找表扩展面积使用率,4输入查找表受到广泛应用;在复杂的FPGA中,可能采用混合查找表,比如同时使用3输入4输入。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值