Vivado综合设置之-no_lc
创始人
2024-05-09 02:33:59
0

本文详细讨论了当勾选或者不勾选-no_lc时的差异,也详细介绍了using O5 and O6以及using O6 output only的具体含义。

-no_lc表示NO LUT Combining,即无LUT整合,默认不勾选,即默认有LUT整合。LUT整合可以减少对LUT的使用量,但也可能导致布线拥塞( yōnɡ sè)。

在Reports->Report Utilization中可通过using O5 and O6查看整合的LUT6的使用个数。

通过using O6 output only可查看只使用了O6输出引脚的LUT6的使用个数,也即没有整合的LUT6的使用个数。

目录

结论

测试代码(4位带进位端的加法器)

当-no_lc不勾选(默认情况)

原理图

 资源利用率

Device视图

资源利用率中LUT数量的计算方法

当-no_lc勾选

原理图

 资源利用率

Device视图


结论

1. 当不勾选-no_lc,则有LUT整合,此时资源利用率中的LUT数量常常小于我们在综合后的原理图中用眼睛数出来的LUT数量,这是因为后者需要减去整合后的LUT。

2. 当勾选-no_lc,则无LUT整合,此时资源利用率中的LUT数量等于我们在综合后的原理图中用眼睛数出来的LUT数量。

3. 无论勾选-no_lc与否,综合后和实现后的Schematic总是一样的,不同之处仅体现在Device视图中。

4. 无论勾选-no_lc与否,本文中的2个原理图中均带有IBUF和OBUF,本文发现的一个问题是若在综合设置中将More Options设置为-mode out_of_context(见下图),

 即此时产生的原理图中不带IBUF和OBUF,此时-no_lc的作用似乎是无效的,原因待后续确认。因此本文的More Options未设置。

测试代码(4位带进位端的加法器)

module top(input [3:0] X,input [3:0] Y,output [3:0] sum,output C
);assign {C,sum} = X + Y;
endmodule

当-no_lc不勾选(默认情况)

原理图

上图中不同颜色的MARK仅为了便于描述,①和②用于描述LUT的整合情况。

 资源利用率

 LUT用了4个,其中,

using O5 and O6 <> LUT as logic的数量为2,这个表示整合后的LUT使用个数。

using O6 output only <> LUT as logic的数量为2,这个表示未经过整合的LUT使用个数。

 以下进一步说明。

Device视图

 上图大红框框表示一个SLICEM,上图的颜色MARK与原理图中的颜色一一对应,上图的①可以看出绿色MARK和浅蓝色MARK被整合进一个LUT6中,上图的②可以看出粉色MARK和深蓝色MARK被整合进一个LUT6中,这里的①和②与原理图中的①和②分别对应。

继续放大上图,得到下图:

 可以看出,右上图、右下图均是整合后的LUT,因此同时使用了O5和O6,而左上和左下角均是未整合后的LUT,因此仅使用了O6。

这就是using O5 and O6以及using O6 output only都为2的原因。

资源利用率中LUT数量的计算方法

使用如下通用脚本可计算本例的LUT个数=4,复制下方脚本代码,直接粘贴至Tcl Console运行即可。

#初始化计数0
set count 0
#找到设计中被使用的LUT6
set bel_list [get_bels -regexp {SLICE_X\d+Y\d+/(A|B|C|D|E|F|G|H)6LUT} -filter {IS_USED == 1}]
#找到这些被使用的LUT6中LUT5也被使用的情形,并统计被使用的LUT5个数,从而获得了Combined LUT的个数
set combined_lut [list]
set no_combined_lut [list]
foreach bel $bel_list {set second_bel [string replace $bel end-3 end-3 5]if {[get_property IS_USED [get_bels $second_bel]] == 1} {lappend combined_lut $second_belincr count} else {lappend no_combined_lut $bel}
}
puts $count
#从总共被使用的LUT(total_used_luts)中减去Combined LUT(因为Combined LUT被统计了两次)即为实际被使用的LUT
set total_used_luts [llength [get_bels -filter {NAME =~ SLICE*LUT && IS_USED == 1}]]
set final_logic_lut_count [expr $total_used_luts - $count]
puts $final_logic_lut_count

当-no_lc勾选

原理图

 资源利用率

Device视图

 

 继续放大上图,得到下图:

 因为-no_lc被勾选,所以无LUT整合,所以每个LUT6都只使用了O6,也可以发现当无LUT整合时,资源利用率中的LUT数量=综合后的原理图中眼睛数出来的LUT数量。

上一篇:前端项目-小米商城

下一篇:CSS基础

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...