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时,原理图

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

-resource_sharing设置为on时,原理图

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

测试代码(乘法)

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时,原理图

 

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

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

 

-resource_sharing设置为on时,原理图

 

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

 

 

posted @ 2023-01-06 23:36  黑马Amos  阅读(174)  评论(0)    收藏  举报