Verilog Codes

D-Latch

always @ (enable, D)
  if (enable) Q <= D;

D flip-flop without reset

always @ (posedge Clk)
  Q <= D;

D flip-flop with asynchronous reset

always @ ( posedge Clk, negedge rst)
  if (!rst) Q <= 1'b0; 
  else Q <= D;

T flip-flop from D flip-flop and gates

assign DT = Q ^ T ; // Continuous assignment
DFF (Q, DT, Clk, rst); // Instantiate the D flip-flop

JK flip-flop from D flip-flop and gates

assign JK = (J & ~Q) | (~K & Q);
DFF JK1 (Q, JK, Clk, rst); // Instantiate D flip-flop

Functional description of JK flip-flop

assign Q_b = ~ Q ;
always @ ( posedge Clk)
case ({J,K})
2'b00: Q <= Q;
2'b01: Q <= 1'b0;
2'b10: Q <= 1'b1;
2'b11: Q <= !Q;
endcase

Last updated