4 位 ALU 上的红色输出 运行 测试台
red output running testbench on 4bit ALU
所以我试图在 verilog 中创建一个 4 位 ALU,它可以执行乘法、加法、bcd 加法和连接。到目前为止,这是我的代码:
module alu4bit(A,B,S,Y);
input [3:0] A, B;
input [1:0] S;
output [7:0] Y;
reg [7:0] Y;
wire [7:0] A0, A1, A2, A3;
multiplier4bit mod3(A,B,A3);
always @ (A,B,S)
begin
case (S)
// 2'b00:
// 2'b01:
// 2'b10:
2'b11: Y = A3;
endcase
end
endmodule
当尝试 运行 测试台设置 S=3 为我的乘法器和 A=5,B=5 时,我得到输出 XXXXX 的红线。我认为这与我如何设置子模块的输出有关。 A0-3应该是电线吗?希望我有一条错误消息可以通过,但我有点卡在这一点上。
如果您希望您的多路复用器对A3
信号敏感,您需要将其添加到敏感列表中:
always @ (A,B,S,A3)
考虑将其简化为:
always @*
请参阅 IEEE 标准 1800-2012,“9.4.2.2 隐式 event_expression 列表”部分。
所以我试图在 verilog 中创建一个 4 位 ALU,它可以执行乘法、加法、bcd 加法和连接。到目前为止,这是我的代码:
module alu4bit(A,B,S,Y);
input [3:0] A, B;
input [1:0] S;
output [7:0] Y;
reg [7:0] Y;
wire [7:0] A0, A1, A2, A3;
multiplier4bit mod3(A,B,A3);
always @ (A,B,S)
begin
case (S)
// 2'b00:
// 2'b01:
// 2'b10:
2'b11: Y = A3;
endcase
end
endmodule
当尝试 运行 测试台设置 S=3 为我的乘法器和 A=5,B=5 时,我得到输出 XXXXX 的红线。我认为这与我如何设置子模块的输出有关。 A0-3应该是电线吗?希望我有一条错误消息可以通过,但我有点卡在这一点上。
如果您希望您的多路复用器对A3
信号敏感,您需要将其添加到敏感列表中:
always @ (A,B,S,A3)
考虑将其简化为:
always @*
请参阅 IEEE 标准 1800-2012,“9.4.2.2 隐式 event_expression 列表”部分。