module error_checker_xz (
input [7:0] bus ,
output all_known,has_unknown,
output [7:0] bus_if_known
);
assign all_known = (^bus ===1'bx) ? 0 : 1 ;
assign has_unknown = (^bus ===1'bx) ? 1 : 0 ;
assign bus_if_known = (all_known) ? bus : 8'h00 ;
endmodule
/*
module error_checker_xz (
input [7:0] bus,
output all_known,
output has_unknown,
output [7:0] bus_if_known
);
// Detect X or Z using reduction XOR
wire bus_has_xz;
assign bus_has_xz = (^bus === 1'bX);
assign has_unknown = bus_has_xz;
assign all_known = ~bus_has_xz;
// Pass bus only if fully known
assign bus_if_known = bus_has_xz ? 8'h00 : bus;
endmodule