欢迎光临散文网 会员登陆 & 注册

Vivado综合属性系列之五 USE_DSP

2023-05-17 21:24 作者:行中悟_悟中行  | 我要投稿


一、前言

        对于逻辑运算,加、减、乘、除等可以使用逻辑资源LUT实现,也可以使用专用的运算资源DSP来实现。在一些计算量较大时,使用DSP可以节省许多逻辑资源,占用的面积更小。

二、USE_DSP

        属性USE_DSP可以指定逻辑运算实现方式,属性可以直接加入到代码或约束文件XDC中。

格式样例:(* USE_DSP=value*) moduel dsp_test(in,out); 

可设置的值为:logic,simd,yes,no

logic:使用DSP的异或结构实现,此时属性只能放置到模块级别

simd:通过综合工具将SIMD(单命令多数据)放入DSP中

yes/no:设置为yes时,综合工具将逻辑单元放入DSP中,属性可以设置到信号或模块上,信号的优先级高于模块。

2.1 工程代码

(* USE_DSP="yes" *)module USE_DSP(num1,num2,multi );

input [3:0] num1,num2;

output reg [7:0] multi;

reg [7:0] temp0;

reg [7:0] temp1;

integer i;

always@(*)

begin

    temp0=8'b0;

    temp1={4'b0,num1};

    for(i=0;i<=3;i=i+1)

        begin

        if(num2[i]==1)

            temp0=temp0+temp1;

            temp1={temp1[6:0],1'b0};

         end

     multi=temp0;

   end

endmodule

2.2 结果

结果如下图,根据网表图和RTL图可知,使用DSP来实现乘法运算

将USE_DSP设为no,此时使用LUT来实现

2.3 参考资料

用户手册:《ug901-vivado-synthesis.pdf》

书籍:《Vivado入门与FPGA设计示例》

Vivado综合属性系列之五 USE_DSP的评论 (共 条)

分享到微博请遵守国家法律