包含加法器的verilog代码

包含加法器的verilog代码,verilog,fpga,system-verilog,Verilog,Fpga,System Verilog,我编写的verilog代码只包含加法器。在这个g中,h是10位,r5(主输出)是11位。当我把r5作为11位时,我没有得到正确的输出,但当我把r5作为10位时,我得到了正确的输出。但是(r5=g+h),所以它的位应该比g,h的位多一位。 我将输入作为clk=1 s189 = 10'd200; s375 = 10'd75; s050 = 10'd300; s218 = 10'd54; 输出应该是r5=-16,但它给出的输出是(011111110000)而不是(11

我编写的verilog代码只包含加法器。在这个g中,h是10位,r5(主输出)是11位。当我把r5作为11位时,我没有得到正确的输出,但当我把r5作为10位时,我得到了正确的输出。但是(r5=g+h),所以它的位应该比g,h的位多一位。 我将输入作为clk=1

    s189 = 10'd200;
    s375 = 10'd75;
    s050 = 10'd300;
    s218 = 10'd54;
输出应该是r5=-16,但它给出的输出是(011111110000)而不是(111110000)

模块输出(时钟、s189、s375、s050、s218、r5、g、h);
输入时钟;
输入[9:0]s189、s375、s050、s218;
输出寄存器[10:0]r5;
输出调节器[9:0]g,h;
reg[3:0]countr=4'b0000;
始终@(posedge clk)
开始
如果(countr==4'b1000)
开始

g您正在执行无符号算术,如上所述,MSB为0而不是预期的1(负)。您需要声明用作符号的输入、输出和变量,以便进行自动符号扩展

module out(
  input clk, 
  input signed [9:0] s189,
  input signed [9:0] s375,
  input signed [9:0] s050,
  input signed [9:0] s218,
  output reg signed [10:0] r5,
  output reg signed [9:0] g,
  output reg signed [9:0] h
);

您正在执行无符号算术,如上所述,MSB为0,而不是预期的1(负)。您需要声明用作符号的输入、输出和变量,以便进行自动符号扩展

module out(
  input clk, 
  input signed [9:0] s189,
  input signed [9:0] s375,
  input signed [9:0] s050,
  input signed [9:0] s218,
  output reg signed [10:0] r5,
  output reg signed [9:0] g,
  output reg signed [9:0] h
);

您正在执行无符号算术,如上所述,MSB为0,而不是预期的1(负)。您需要声明用作符号的输入、输出和变量,以便进行自动符号扩展

module out(
  input clk, 
  input signed [9:0] s189,
  input signed [9:0] s375,
  input signed [9:0] s050,
  input signed [9:0] s218,
  output reg signed [10:0] r5,
  output reg signed [9:0] g,
  output reg signed [9:0] h
);

您正在执行无符号算术,如上所述,MSB为0,而不是预期的1(负)。您需要声明用作符号的输入、输出和变量,以便进行自动符号扩展

module out(
  input clk, 
  input signed [9:0] s189,
  input signed [9:0] s375,
  input signed [9:0] s050,
  input signed [9:0] s218,
  output reg signed [10:0] r5,
  output reg signed [9:0] g,
  output reg signed [9:0] h
);

@用户3212932没问题,请小心
g
h
,因为10位+或-10位可能会产生11位结果,并且这些结果可能会溢出<如果要避免溢出/下溢的情况,code>g
h
应该是11位和
r5
12位。@user3212932没问题,请小心
g
h
,因为10位+或-10位可能会产生11位的结果,并且这些结果可能会溢出<如果要避免溢出/下溢的情况,code>g和
h
应该是11位和
r5
12位。@user3212932没问题,请小心
g
h
,因为10位+或-10位可能会产生11位的结果,并且这些结果可能会溢出<如果要避免溢出/下溢的情况,code>g和
h
应该是11位和
r5
12位。@user3212932没问题,请小心
g
h
,因为10位+或-10位可能会产生11位的结果,并且这些结果可能会溢出<如果要避免溢出/下溢情况,code>g和
h
实际上应该是11位和
r5
12位。