Advertisement
CHU2

JK flip flop 2 bit Counter

May 1st, 2024 (edited)
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 0.82 KB | Source Code | 0 0
  1. module JKflipflop(input [1:0] J, K, clock, output reg [1:0] Q, Q2, output Qb, Qb2);
  2.     always @(posedge clock[0]) begin
  3.         case ({J[0],K[0]})
  4.             2'b00: Q <= Q;
  5.             2'b01: Q <= 1'b0;
  6.             2'b10: Q <= 1'b1;
  7.             2'b11: Q <= !Q;
  8.         endcase
  9.     end
  10.     assign Qb = !Q;
  11.  
  12.     always @(posedge clock[1]) begin
  13.         case ({J[1],K[1]})
  14.             2'b00: Q2 <= Q2;
  15.             2'b01: Q2 <= 1'b0;
  16.             2'b10: Q2 <= 1'b1;
  17.             2'b11: Q2 <= !Q2;
  18.         endcase
  19.     end
  20.     assign Qb2 = !Q2;
  21. endmodule
  22.  
  23.  
  24. module JKflipflopTB;
  25.     reg [1:0] J, K, clock;
  26.     integer h = 0;
  27.  
  28.     JKflipflop TB(.J(J), .K(K), .clock(clock), .Q(Q), .Q2(Q2), .Qb(Qb), .Qb2(Qb2));
  29.  
  30.     always #10 clock[0] = !clock[0];
  31.     always #20 clock[1] = !clock[1];
  32.  
  33.     initial begin
  34.         clock <= 0;
  35.    
  36.         repeat (4) begin
  37.             {J[0], K[0]} <= h;
  38.             {J[1], K[1]} <= h;
  39.             h = h + 1;
  40.             #10;
  41.         end
  42.     end
  43. endmodule
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement