Prev Problem
Next Problem

44. Bus Error Checker

Back To All Submissions
Previous Submission
Next Submission

Solving Approach

How do you plan to solve it?

 

 

Code

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

 

Was this helpful?
Upvote
Downvote