[ad_1]
out needs to be a reg type to be assigned in an always block.
IEEE Std 1364-1995 and above
output [31:0] out; reg [31:0] out;IEEE Std 1364-2001 and above (recommenced)
output reg [31:0] out;
Other problem, i0 through 3 are in in the sensitivity list of your always block. This infers complex latching logic.
IEEE Std 1364-1995 and above
always @(s0 or i0 or i1 or i2 or i3)IEEE Std 1364-2001 and above (recommenced)
always @* // or @(*)
[ad_2]
solved Mips instruction single cycle datapath