0
我正在做我的作业,关于制作一个ALU,我得到一个错误。我搜索它,但没有得到原因。为什么会发生? 错误消息是S2不是一个常量。 case ({S2,S1,S0})
Verilog错误:XXX不是一个常数
```
module ALU(
input S0,
input S1,
input S2,
input IN1,
input IN2,
input IN3,
output OUT1,
output OUT2
);
case ({S2,S1,S0})//{S2,S1,S0}
3'b000:
begin
assign OUT1=IN1&IN2;//and a1(OUT1,IN1,IN2);
assign OUT2 = 1'b0;
end
3'b001:
begin
assign OUT1=IN1|IN2;//or o1(OUT1,IN1,IN2);
assign OUT2=1'b0;
end
3'b010:
begin
assign OUT1=!IN1;
assign OUT2=1'b0;
end
3'b011:
begin
assign OUT1=!IN2;
assign OUT2=1'b0;
end
3'b100:
begin
assign OUT1=IN1^IN2;
assign OUT2=1'b0;
end
3'b101:FullAdder1 fa(.IN1(IN1),.IN2(IN2),.IN3(IN3),.OUT1(OUT1),.OUT2(OUT2));
3'b110:FullSubtracter1 fs(.IN1(IN1),.IN2(IN2),.IN3(IN3),.OUT1(OUT1),.OUT2(OUT2));
3'b111:
begin
assign OUT1=1'b0;
assign OUT2=1'b0;
end
default:
begin
assign OUT1=1'b0;
assign OUT2=1'b0;
end
endcase
endmodule
```
我无法重现您的错误,也许是因为您没有提供可运行的代码。但是,你不应该在像这样的情况下实例化模块。 – toolic
也许你应该在档案中加入''timescale 1ns/1ps' – Weiby