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
        // --- Pairwise compare (a, b) ---
        if (a > b) begin
            max_ab = a;
            min_ab = b;
        end else begin
            max_ab = b;
            min_ab = a;
        end

        // --- Pairwise 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 ---
        if (max_ab > max_cd)
            max = max_ab;
        else
            max = max_cd;

        // --- Final min ---
        if (min_ab < min_cd)
            min = min_ab;
        else
            min = min_cd;
    end

endmodule

 

Was this helpful?
Upvote
Downvote