Prev Problem
Next Problem

68. 4-bit Comparator

Back To All Submissions
Previous Submission
Next Submission

Solving Approach

How do you plan to solve it?

 

Code

module maxmin4(
    input  wire [3:0] a,
    input  wire [3:0] b,
    input  wire [3:0] c,
    input  wire [3:0] d,
    output reg  [3:0] max,
    output reg  [3:0] min
);

    reg [3:0] max_ab, min_ab;
    reg [3:0] max_cd, min_cd;

    always @(*) begin

        // Compare a & b
        if (a > b) begin
            max_ab = a;
            min_ab = b;
        end else begin
            max_ab = b;
            min_ab = a;
        end

        // Compare c & d
        if (c > d) begin
            max_cd = c;
            min_cd = d;
        end else begin
            max_cd = d;
            min_cd = c;
        end

        // Final max
        max = (max_ab > max_cd) ? max_ab : max_cd;

        // Final min
        min = (min_ab < min_cd) ? min_ab : min_cd;
    end

endmodule

 

Was this helpful?
Upvote
Downvote