0
点赞
收藏
分享

微信扫一扫

Vivado综合设置之-resource_sharing


-resource_sharing用于对算数运算(加法、减法和乘法)实现资源共享,以节约LUT资源,有3个值:auto、off和on,默认是auto。

默认情况下,将resource_sharing设置为auto即可。

本文验证-resource_sharing设置为on和off时对加减法、乘法运算的LUT资源占用的影响。

测试代码(加法)

DW=1、2、4、6时,resource_sharing无论是设置为on或者off,Schematic相同,资源占用率也相同,看不到对比,以下为DW设置为8时的代码。

module top #(
parameter DW = 8
)(
input [DW-1:0] opa,
input [DW-1:0] opb,
input [DW-1:0] opc,
input op,
output [DW:0] res
);
assign res = (op == 1'b1)? opa+opb:opa-opc;
endmodule

-resource_sharing设置为off时,原理图

Vivado综合设置之-resource_sharing_资源共享

-resource_sharing设置为off时,资源利用率

Vivado综合设置之-resource_sharing_资源共享_02

-resource_sharing设置为on时,原理图

Vivado综合设置之-resource_sharing_resource_shar_03

-resource_sharing设置为on时,资源利用率

Vivado综合设置之-resource_sharing_资源共享_04

 测试代码(乘法)

module top #(
parameter DW = 8
)(
input [DW-1:0] opa,
input [DW-1:0] opb,
input [DW-1:0] opc,
input op,
output [DW:0] res
);
assign res = (op == 1'b1)? opa*opb:opa*opc;
endmodule

-resource_sharing设置为off时,原理图

Vivado综合设置之-resource_sharing_resource_shar_05

Schematic看不到细节,重点关注资源利用率即可。 

-resource_sharing设置为off时,资源利用率

Vivado综合设置之-resource_sharing_resource_shar_06

-resource_sharing设置为on时,原理图

Vivado综合设置之-resource_sharing_原理图_07

 

-resource_sharing设置为on时,资源利用率

Vivado综合设置之-resource_sharing_原理图_08

Vivado综合设置之-resource_sharing_原理图_09

 

举报

相关推荐

0 条评论