| verilog两个程序几乎一样,为什么其中一个有问题? 程序一:
 module    test(in1,in2,in3,in4,in5,in6,in7,in8,switch,outdata);
 input[3:0]    in1,in2,in3,in4,in5,in6,in7,in8;
 input[2:0]    switch;
 output[3:0]    outdata;
 reg[3:0]    outdata;
 
 always@(in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or switch)
 begin
 case(switch)
 3'b000:    outdata=in1;
 3'b001:    outdata=in2;
 3'b010:    outdata=in3;
 3'b011:    outdata=in4;
 3'b100:    outdata=in5;
 3'b101:    outdata=in6;
 3'b110:    outdata=in7;
 3'b111:    outdata=in8;
 default:   outdata=4'bx;
 endcase
 end
 
 endmodule
 程序二:
 module        mux_8(data,sel,q);
 input[2:0]           sel;
 input[7:0]           data;
 output        q;
 reg        q;
 
 always @ (sel or data)
 case(sel)
 3'b000    :    q<=data[0];
 3'b001    :    q<=data[1];
 3'b010    :    q<=data[2];
 3'b011    :    q<=data[3];
 3'b100    :    q<=data[4];
 3'b101    :    q<=data[5];
 3'b110    :    q<=data[6];
 3'b111    :    q<=data[7];
 default    :    q<=1‘bx;
 endcase
 
 endmodule
 为什么程序一有警告:
 Warning (10273): Verilog HDL warning at test.v(19): sign extended using "x" or "z"
 去掉default后就好了。而程序二一点问题也没有?
 请高手指教,谢谢
 |