Prev Problem
Next Problem

71. Arithmetic Logic Unit

Back To All Submissions
Previous Submission
Next Submission

Solving Approach

How do you plan to solve it?

 

Code

/*Write your code here*/
module alu4(
    input [3:0] a, 
    input [3:0] b, 
    input [2:0] op, 
    output reg [3:0] y, 
    output reg cf
);

always @(*) begin
    cf=0;
    case(op)
    3'b000 : begin
        y=a+b;
        cf= (a+b) >= 5'b10000;
    end
    3'b001 : begin
        y=a-b;
        if(a<b) begin
            cf=1;
        end
    end
    3'b010 : y=a&b;
    3'b011 : y=a|b;
    3'b100 : y=a^b;
    default: y=4'b0000;
    endcase
end
endmodule 
    

 

Was this helpful?
Upvote
Downvote