Friday, February 6, 2015

Flip Flops

SR flip flop
module rsff(q,q0,clock,reset,s,r);
  input s,r,clock,reset;
  output q=0,q0;
  reg q;
  always@(posedge clock)
  begin
    if(reset)
      q=0;
    else if(r==0&&s==0)
      q=q;
    else if(r==1&&s==1)
      q="x";
    else
      q=s;
    end
    assign q0=~q;
  endmodule

JK flip flop

module jkff(q,q0,clock,reset,j,k);
  input clock,reset,j,k;
  output q=0,q0;
  reg q;
  always@(posedge clock)
  begin
    if(reset)
      q=0;
  else if(j==0&&k==0)
      q=q;
    else if(j==1&&k==1)
      q=~q;
    else
      q=j;
    end
    assign q0=~q;
  endmodule

D-Flip flop

module dff(clock,reset,data,q,qbar);
  input clock,reset,data;
  output q,qbar;
  reg q;
  always @ (posedge clock)
  begin
    if(reset)
      q=0;
    else
      q=data;
    end
    assign qbar=~q;
  endmodule

T flip flop
module tff(q,q0,clock,t,reset);
  input clock,reset,t;
  output q=0,q0;
  reg q;
  always@(posedge clock)
  begin
    if(reset)
      q=0;
    else if(t)
      q=~q;
    end
    assign q0=~q;
  endmodule

No comments:

Post a Comment