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,b,
input  [2:0] op,
output reg [3:0] y,
output reg cf 
);


always @(*) begin


    case(op)

        3'b000: begin
            cf = ((a+b) > 15) ? 1'b1:1'b0; 
            y = (a+b);
        end  

        3'b001: begin
            cf = (a>=b) ? 1'b0:1'b1; 
            y = (a+(~b)+1);
        end  

        3'b010: begin
            cf = 1'b0; 
            y = (a&b);
        end  


        3'b011: begin
            cf = 1'b0; 
            y = (a|b);
        end  

        3'b100: begin
            cf = 1'b0; 
            y = (a^b);
        end  

        default: begin
            cf = 1'b0; 
            y = 4'b0000;            
        end    


    endcase

end



endmodule

 

Was this helpful?
Upvote
Downvote