1

在 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

4

1 回答 1

0

去谷歌上查找 Vivado ug953 series 7。选择与您的 Vivado 版本相匹配的版本。在该文档中,搜索 DSP48E1。您将找到一个 Verilog 实例模板。它看起来与您所做的有点不同,但这是我使用的方法。在这种情况下,您将看到一个 OPMODE 端口。然后您可以分配 .OPMODE(7'b011001)。您还将为其他端口分配适当的值,但这应该可以帮助您。

于 2021-08-04T06:07:02.097 回答