module error_checker_xz(bus, all_known, has_unknown, bus_if_known);
input [7:0] bus;
output [7:0] bus_if_known;
output all_known, has_unknown;
// Use !== (case inequality) to check if the bus contains x or z.
// If bus contains x/z, (bus === bus) would be false.
assign has_unknown = ^(bus ^ bus) === 1'bx;
assign all_known = !has_unknown;
assign bus_if_known = (all_known) ? bus : 8'h00;
endmodule