case恒输出0的一个BUG


module encoder8_3(
input wire clk,
input wire rst_n,
input wire [ 7:0] x,
output reg [ 3:0] y
);

// always @(x) begin
// case (x)
// 8'b0000_0001 : y = 3'b000; // 当 x=16'b00000001, 则 y 输出为 3'b000
// 8'b0000_0010 : y = 3'b001; // 当 x=16'b00000010, 则 y 输出为 3'b001
// 8'b0000_0100 : y = 3'b010; // 当 x=16'b00000100, 则 y 输出为 3'b010
// 8'b0000_1000 : y = 3'b011; // 当 x=16'b00001000, 则 y 输出为 3'b011
// 8'b0001_0000 : y = 3'b100; // 当 x=16'b00010000, 则 y 输出为 3'b100
// 8'b0010_0000 : y = 3'b101; // 当 x=16'b00100000, 则 y 输出为 3'b101
// 8'b0100_0000 : y = 3'b110; // 当 x=16'b01000000, 则 y 输出为 3'b110
// 8'b1000_0000 : y = 3'b111; // 当 x=16'b10000000, 则 y 输出为 3'b111
// default: y = 3'b000;
// endcase
// end

当x的位宽定义为非7的时候,Y恒定输出0,因为x总是满足default的条件。