Verilog 用于乘法的DSP48E2实例化
我试图实例化zynq ultrascale的DSP48E2进行乘法运算,但它始终返回p输出零,即使正确给出了控制信号。(如下面的实例化代码所示) 在该模块中,连接ACOUT和BCOUT以验证其功能,并且这两个模块正常工作,如以下仿真波形所示。谁能告诉我P输出出了什么问题。(需要返回A和B的乘法输出)Verilog 用于乘法的DSP48E2实例化,verilog,fpga,zynq-ultrascale+,Verilog,Fpga,Zynq Ultrascale+,我试图实例化zynq ultrascale的DSP48E2进行乘法运算,但它始终返回p输出零,即使正确给出了控制信号。(如下面的实例化代码所示) 在该模块中,连接ACOUT和BCOUT以验证其功能,并且这两个模块正常工作,如以下仿真波形所示。谁能告诉我P输出出了什么问题。(需要返回A和B的乘法输出) 可以对此进行推断和DSP48宏使用。为了利用DSP48E2的完全灵活性,我想进行实例化。因此,这个问题只是关于实例化。通过激活CECTRL时钟使能信号至OPMODEREG和CARRYINSEL,可
可以对此进行推断和DSP48宏使用。为了利用DSP48E2的完全灵活性,我想进行实例化。因此,这个问题只是关于实例化。通过激活CECTRL时钟使能信号至OPMODEREG和CARRYINSEL,可以通过X和Y多路复用器获得乘法输出的部分乘积,并可以将其与C输入相加(来自端口或CREG)如以下模拟波形所示。(此处结构寄存器未用于将C输入与乘法输出的部分乘积相加)
module top(CLK, A, B, C, ACOUT, BCOUT, P);
input wire CLK;
input wire signed [29:0] A;
input wire signed [17:0] B;
input wire signed [47:0] C;
output wire signed [29:0] ACOUT;
output wire signed [17:0] BCOUT;
output wire signed [47:0] P;
DSP48E2#(
.AMULTSEL("A"),
.A_INPUT("DIRECT"),
.BMULTSEL("B"),
.USE_MULT("MULTIPLY")
)
DSP48E2_inst (
.ACOUT(ACOUT),
.BCOUT(BCOUT),
.P(P),
.ALUMODE(4'd0),
.CARRYINSEL(3'd0),
.CLK(CLK),
.INMODE(5'd0),
.OPMODE(9'd5),
.A(A),
.B(B),
.C(C),
.CARRYIN(1'd0),
.CEA2(1),
.CEALUMODE(1),
.CEB2(1),
.CEC(1),
.CEINMODE(1),
.CEM(1),
.CEP(1),
.RSTA(0),
.RSTALUMODE(0),
.RSTB(0),
.RSTC(0),
.RSTCTRL(0),
.RSTM(0),
.RSTP(0)
);
endmodule