Mips指令单周期数据路径

时间:2014-05-17 21:58:04

标签: verilog

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个多路复用器。

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

为什么我会收到此错误。你能救我吗?

1 个答案:

答案 0 :(得分:1)

out必须是始终阻止的reg类型。

  • IEEE Std 1364-1995及以上

    output [31:0] out;
    reg [31:0] out;
    
  • IEEE Std 1364-2001及以上(重新开始)

    output reg [31:0] out;
    

其他问题,i03位于always块的敏感列表中。这推断出复杂的锁存逻辑。

  • IEEE Std 1364-1995及以上

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

    always @* // or @(*)