data/full_repos/permissive/211316121/lab4/sources_1/new/ALU.v
data/verilator_xmls/b4fdad48-9319-41bb-abbf-45eac283b9ed.xml
module ALU(
    input [7:0] a,
    input [7:0] b,
    input c0,
    input s0,
    input s1,
    input m,
    output reg [7:0] s,
    output reg c8    
    );
    reg [8:0] tmp;
    always@(*)
    begin
        c8=0;
        tmp=9'b0;
        case({m,s1,s0})
            'b000:s=~a;
            'b001:s=a&b;
            'b010:s=a|b;
            'b011:s=a^b;
            'b100:
                begin
                    tmp={1'b0,a}+{1'b0,b}+{7'b0,c0};
                    s=tmp[7:0];
                    c8=tmp[8];
                end
            'b101:
                begin
                    tmp={1'b0,a}-{1'b0,b}-{7'b0,c0};
                    s=tmp[7:0];
                    c8=tmp[8];
                end
            default:s=a;
        endcase
    end
endmodule
module ALU(
    input [7:0] a,
    input [7:0] b,
    input c0,
    input s0,
    input s1,
    input m,
    output reg [7:0] s,
    output reg c8    
    );

    reg [8:0] tmp;
    always@(*)
    begin
        c8=0;
        tmp=9'b0;
        case({m,s1,s0})
            'b000:s=~a;
            'b001:s=a&b;
            'b010:s=a|b;
            'b011:s=a^b;
            'b100:
                begin
                    tmp={1'b0,a}+{1'b0,b}+{7'b0,c0};
                    s=tmp[7:0];
                    c8=tmp[8];
                end
            'b101:
                begin
                    tmp={1'b0,a}-{1'b0,b}-{7'b0,c0};
                    s=tmp[7:0];
                    c8=tmp[8];
                end
            default:s=a;
        endcase
    end
endmodule