在 DSP48E1 中,XY 和 Z 多路复用器使用 OPMODE 信号进行控制(7 位输入 [6:4] 位是 Z 多路复用器的选择器,[3:2] 位用于 Y 多路复用器,[1:0] 位用于 X 多路复用器)。我已经为乘法器(用于 Vivado 工具 Virtex 7-DSP48E1)编写了 verilog 代码,在综合后使用了一些 OPMODE 组合。例如此代码 OPMODE 等于 011 01 01 。
(* use_dsp="yes" *)
module top (out, a, b, c);
parameter a_width = 2;
parameter b_width = 2;
output [a_width+b_width:0] out;
input signed [a_width-1:0] a;
input signed [b_width-1:0] b;
input signed [a_width+b_width-1:0] c;
assign out = (a*b)+c;
endmodule
我需要编写这样的代码,使用 OPMODE[6:4] = 100 OPMODE[3:2] = 10 OPMODE[1:0] = 00 。[见表 2_9 这里描述了这个模式] OPMODE 描述 TABLES