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