vivado资源利用率分析

资源利用率报告分析

BRAM

通过report_utilization命令可查看设计的资源利用率报告,在资源利用率报告中,有时BRAM的Utilization为小数,这是因为BRAM的实际利用率是以容量为36Kb的BRAM位计算单位的,而1个容量为36Kb的BRAM是由2个相对独立容量为18Kb的BRAM组成的;因此一个容量为36Kb的BRAM可以配置为4种模式:2个BRAM(18Kb),1个BRAM(18Kb)+1个FIFO(18Kb),1个BRAM(36Kb),1个FIFO(36Kb);

另外资源利用率是通过Tcl命令生成的,以BRAM为例进行说明,BRAM的四种配置方式对应的REF_NAME分别为RAMB36E2、RAMB18E2、FIFO36E2、FIFO18E2,可通过如下命令找到相应的资源用量

set ram36_num [llength [get_cells -hier -fliter "REF_NAME == RAMB36E2"]]
set ram18_num [llength [get_cells -hier -fliter "REF_NAME == RAMB18E2"]]
set fifo36_num [llength [get_cells -hier -fliter "REF_NAME == FIFO36E2"]]
set fifo18_num [llength [get_cells -hier -fliter "REF_NAME == FIFO18E2"]]

整个设计的BRAM个数可以通过如下命令获取

expr $ram36_num + $fifo36_num + ($ram18_num + $fifo18_num) / 2.0

这条tcl命令中出现了2.0,说明出现了小数,这里的2.0不能写成2,两个命令不一样;

LUT和LUTRAM

在通过report_utilization命令查看资源利用率报告时,会出现一个表格,在这个表格中二者会有LUT和LUTRAM,LUTRAM是指将LUT用作分布式RAM/ROM,换句话说SLICEM中的LUT被用作了存储单元;

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

LUT个数

资源利用率报告中的LUTRAM是指设计中消耗的SLICEM中的LUT;

但是用Tcl命令查看的时候发现LUT数目和report_utilization中显示的数据不一致

set total_used_luts [llength [get_bels -fliter {NAME = ~SLICE*LUT && IS_USED == 1}]]

puts $total_used_luts

可能的原因是上述命令并没有去除Combined LUT(合并的LUT),可通过命令去除,因为他把这个combined LUT统计了两次

report_utilization命令功能

report_utilization -name myutil

查看指定模块的资源利用率报告,这是需要用到-cells选项,后边跟的内容就是指定的模块,通过get_cells获取,可以是一个模块也可以是由多个模块构成的列表;

set mycells [get_cells xxx*]
report_utilization -cells $mycells -name xxxx

查看指定pblock的资源利用率报告需要用到-pblock命令,后面跟的就是指定的Pblock(通过get_pblocks获取),可以是一个Pblock,也可以是由多个Pblock构成的列表,可以将生成的资源利用率报告写入文件中

report_utilizaion -pblocks [get_pblocks] -file xxxxxx

查看每个SLR的资源利用率报告,这时需要用到-slr选项进行操作

report_utilization -slr -file xxxxxx

注意:-slr选项不能和-name选项同时使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值