
[英]how to fix this verilog part-select error: Illegal operand for constant expression
[英]I couldn't fix Illegal refence error in Verilog
加法运行良好,但我需要使用 fulladder 进行减法。 对于这个操作,我需要使用 b 的 2 的补码。 在生成块之前,我需要取“b”的补码。 在生成块中,我使用“op”信号给出“+1”以获取 2 的补码。 但我无法得到 1 的赞美。 我收到一个错误,即“addsub4bit.v(15): (vlog-2110) Illegal reference to net "b"。”
我怎样才能解决这个问题?
//4bit Ripple Carry Adder - OGY
`include "fulladder.v"
module addsub4bit (a, b, op, cout, sum, v);
parameter size = 4;
input [size-1:0] a, b;
input op;
output cout, v;
output [size-1:0]sum;
wire [size-1:0] c;
genvar i;
always@(op)
begin: comp
if(op==1)
b = ~b;
end
generate
for (i = 0; i < size; i = i + 1) begin: addsub
if (i == 0)
fulladder UUT1(a[i], b[i], op, c[i], sum[i]);
else
fulladder UUT2( a[i], b[i], c[i-1], c[i], sum[i] );
end
endgenerate
xor (cout, op, c[size-1] );
xor (v, c[size-1] ,c[size-2] );
endmodule
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.