Vivado綜合屬性系列之五 USE_DSP
一、前言
????????對于邏輯運算,加、減、乘、除等可以使用邏輯資源LUT實現(xiàn),也可以使用專用的運算資源DSP來實現(xiàn)。在一些計算量較大時,使用DSP可以節(jié)省許多邏輯資源,占用的面積更小。
二、USE_DSP
????? ? 屬性USE_DSP可以指定邏輯運算實現(xiàn)方式,屬性可以直接加入到代碼或約束文件XDC中。
格式樣例:(* USE_DSP=value*) moduel dsp_test(in,out);?
可設置的值為:logic,simd,yes,no
logic:使用DSP的異或結構實現(xiàn),此時屬性只能放置到模塊級別
simd:通過綜合工具將SIMD(單命令多數(shù)據(jù))放入DSP中
yes/no:設置為yes時,綜合工具將邏輯單元放入DSP中,屬性可以設置到信號或模塊上,信號的優(yōu)先級高于模塊。
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 結果
結果如下圖,根據(jù)網(wǎng)表圖和RTL圖可知,使用DSP來實現(xiàn)乘法運算

將USE_DSP設為no,此時使用LUT來實現(xiàn)

2.3 參考資料
用戶手冊:《ug901-vivado-synthesis.pdf》
書籍:《Vivado入門與FPGA設計示例》