2014-05-17 86 views
-5
module mult4_to_1_32(out,i0,i1,i2,i3,s0); 
output [31:0] out; 
input [31:0]i0,i1,i2,i3; 
input [1:0]s0; 
always @(s0) 
begin 
    case(s0) 
    2'b00: out=i0;  
    2'b01: out=i1; 
    2'b10: out=i2; 
    2'b11: out=i3; 
    default: out=i0;  
    endcase 
end 
endmodule 

我想在modelsim中构建4对1多路复用器。Mips指令单周期数据通路

我得到这个错误:“编译错误:非法引用网络”out“。”

为什么我得到这个错误。你可以帮我吗?

+3

摆脱'assign'关键字和将'case'放在'always @ *'块中。 – toolic

回答

1

out需要是要在always块中分配的reg类型。

  • IEEE标准1364-1995和上述

    output [31:0] out; 
    reg [31:0] out; 
    
  • IEEE标准1364-2001和上述(重新开始)

    output reg [31:0] out; 
    

其他问题,i0通过3是在在您的always区块的敏感度列表中。这推断出复杂的锁存逻辑。

  • IEEE标准1364-1995及以上

    always @(s0 or i0 or i1 or i2 or i3) 
    
  • IEEE标准1364-2001及以上(重新开始)

    always @* // or @(*)