HDLBits always casez语句
// synthesis verilog_input_version verilog_2001
module top_module (
input [7:0] in,
output reg [2:0] pos );
always@(*)
begin
casez(in[7:0])
8'bzzzzzzz1: pos = 3'b000;
8'bzzzzzz10: pos = 3'b001;//确实后面应该为0
8'bzzzzz100: pos = 3'b010;
8'bzzzz1000: pos = 3'b011;
8'bzzz10000: pos = 3'b100;
8'bzz100000: pos = 3'b101;
8'bz1000000: pos = 3'b110;
8'b10000000: pos = 3'b111;
default: pos = 3'b000;
endcase
end
endmodule
我之前把1后面写成了z,然后运行的时候报错了,出现了overlaps词,确实有这样的风险,1后面应该跟0,这样才符合,题中给的例子写的有这样的问题。