Prev Problem
Next Problem

73. SR Latch

Back To All Submissions
Previous Submission
Next Submission

Solving Approach

How do you plan to solve it?

 

Code

// 1st approach : not synthesizable
// module sr_latch_nor (
//     input  S,
//     input  R,
//     output Q,
//     output Qn
// );
//     // Write your code here
//     assign Q = ~(Qn | R);
//     assign Qn = ~(Q | (S & ~R));
// endmodule

module sr_latch_nor (
    input  S,
    input  R,
    output Q,
    output Qn
);
    reg Q_reg;
    reg Qn_reg;

    always @(*) begin
        if (S && R) begin
            Q_reg  = 1'b0;
            Qn_reg = 1'b1;
        end else if (S && !R) begin
            Q_reg  = 1'b1;
            Qn_reg = 1'b0;
        end else if (!S && R) begin
            Q_reg  = 1'b0;
            Qn_reg = 1'b1;
        end
    end

    assign Q  = Q_reg;
    assign Qn = Qn_reg;
endmodule
Was this helpful?
Upvote
Downvote