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(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

 

Was this helpful?
Upvote
Downvote