Exercitii

    1. module lpar_att(

    2. input [5:0]i,

    3. output reg [7:0]pi);

    4. wire p, im;

    5. assign im = ^i;

    6. assign p = ~im;

    7. always @(*)

    8. begin

    9. if (~(i[5]^i[4]) || ~(i[4]^i[3]) || ~(i[3]^i[2]) || ~(i[2]^i[1]) || ~(i[1]^i[0])) //verifica daca exista 2 biti alaturati identici

    10. if (i[5]+i[4]+i[3]+i[2]+i[1]+i[0] == 4)

    11. pi <= {im, i, p};

    12. else

    13. pi <= {i, p, im};

    14. else

    15. if (i[5]+i[4]+i[3]+i[2]+i[1]+i[0] == 4)

    16. pi <= {im, p, i};

    17. else

    18. pi <= {p, i, im};

    19. end

    20. endmodule

        1. module boolean_function(

        2. input [3:0]i,

        3. output [1:0]o);

        4. assign o[1] = ~i[3]&~i[2]&~i[1]&~i[0]|~i[3]&~i[2]&i[1]&i[0]|~i[3]&i[2]&~i[1]&~i[0]|~i[3]&i[2]&i[1]&i[0]|i[3]&~i[2]&~i[1]&~i[0];

        5. assign o[0] = ~i[3]&~i[2]&~i[1]&~i[0]|~i[3]&~i[2]&i[1]&~i[0]|~i[3]&i[2]&~i[1]&~i[0]|~i[3]&i[2]&i[1]&~i[0]|i[3]&~i[2]&~i[1]&~i[0];

        6. endmodule

            1. module minimization(

            2. input [3:0]i,

            3. output [1:0]o);

            4. assign o[1] = i[1]&i[0]|~i[1]&~i[0];

            5. assign o[0] = ~i[0];

            6. endmodule