verilog两个程序几乎一样,为什么其中一个有问题?
verilog两个程序几乎一样,为什么其中一个有问题?程序一:
module test(in1,in2,in3,in4,in5,in6,in7,in8,switch,outdata);
input in1,in2,in3,in4,in5,in6,in7,in8;
input switch;
output outdata;
reg 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 sel;
input data;
output q;
reg q;
always @ (sel or data)
case(sel)
3'b000 : q<=data;
3'b001 : q<=data;
3'b010 : q<=data;
3'b011 : q<=data;
3'b100 : q<=data;
3'b101 : q<=data;
3'b110 : q<=data;
3'b111 : q<=data;
default : q<=1‘bx;
endcase
endmodule
为什么程序一有警告:
Warning (10273): Verilog HDL warning at test.v(19): sign extended using "x" or "z"
去掉default后就好了。而程序二一点问题也没有?
请高手指教,谢谢 而且就是把它们的赋值方式改成一样的,还是有同样的问题! 我只懂VHDl 你用什么软件编译的,我用Quartus5.0编译了程序一一下,没有告警 难道是它的问题? default: outdata=4'bx;<br>
你试试改成 default: outdata=4'bxxxx;<br>
应该不用这样啊,默认会扩展的啊 没问题啊,modelsim可以通过,也能综合<br>
你用的是什么编译器呢? 这是一个常见、必然且正常的警告,以下是 Altera给出的说明<br>
<br>
CAUSE: In a Verilog Design File (.v), you used an expression, possibly a constant literal, that was extended. However, the most-significant bit (the sign bit if this expression was a signed expression) of the expression was "x" or "z". As a result, the number was extended with "x" or "z" bits, which may or may not be what you intended to occur. <br>
ACTION: If you intended this behavior to occur, then no action is required. Otherwise, modify the expression or constant so that the most-significant bit is not "x" or "z". 学习中‘啊 7楼的说明很好!! 拜托,我英语差,能不能用汉语!<br>
我用的是QuartusII5.1