我必须在8个函数的ralu中创建一个alu,但当我尝试模拟“ralu”的行为模型时,我得到的是X(输出)和Z(输入)。我究竟做错了什么? (当我只模拟alu时效果很好)
module alu(
input [3:0] op1,
input [3:0] op2,
input [2:0] func,
output reg[3:0] out
);
always@(*)
case(func)
3'b000: out=op1&op2; // functia AND
3'b001: out=op1|op2; // OR
3'b010: out=~(op1&op2);// NAND
3'b011: out=~(op1|op2); //NOR
3'b100: out=op1^op2; // XOR
3'b101: out=op1~^op2; //XNOR
3'b110: out=op1+op2;
3'b111: out=op1-op2;
endcase
endmodule
module ralu(
input [3:0] in,
input [2:0] func,
input clk,
input load,
output [3:0] out
);
reg [3:0] op1;
reg [3:0] op2;
always@(posedge clk)
if(load) op2<=in;
else op1<=in;
endmodule
答案 0 :(得分:0)
您在alu
中遗漏了ralu
的声明,即:
alu myALU(
.op1(op1),
.op2(op2),
.func(func),
.out(out)
);