module priority_encoder8 (
input [7:0] req,
output reg [2:0] code
);
always @* begin
code = 3'b000; // default when no request
casez (req)
8'b1???????: code = 3'b111; // req[7]
8'b01??????: code = 3'b110; // req[6]
8'b001?????: code = 3'b101; // req[5]
8'b0001????: code = 3'b100; // req[4]
8'b00001???: code = 3'b011; // req[3]
8'b000001??: code = 3'b010; // req[2]
8'b0000001?: code = 3'b001; // req[1]
8'b00000001: code = 3'b000; // req[0]
default: code = 3'b000;
endcase
end
endmodule
casez items — first match wins.casez with ? wildcards is concise for “MSB-first” priority patterns (? and z are equivalent).