
- Nhận thấy đầu vào J, K điều khiển trạng thái ngõ ra theo đúng như cách mà S R đã làm trừ 1 điểm là khi J = K = 1 thì trạng thái cấm được chuyển thành trạng thái ngược lại ( với J = K = 0 ). Nó còn gọi là chế độ lật của hoạt động.
- Từ dạng sóng có thể thấy rằng ngõ ra FF không bị ảnh hưởng bởi sườn xuống của xung ck các đầu vào J K cũng không có tác động trừ khi xảy ra tác động lên của Ck
- FF JK có thể tạo thành từ FF SR có thêm 2 đầu and có ngõ ra đưa về như hình :
Còn cấu tạo bên trong của FF JK kích bằng cạnh sườn sẽ như sau :
- Một số ví dụ về JK FLIP FLOP dùng verilog.
++ Ví dụ code Verilog cho JK FLIP FLOP tích cực ở sườn dương,có reset.
Mã:
//Async JK Flip Flop
module jk_ff( j, k , clk , reset, q ,qb );
input j,k;
input clk, reset ;
output q,qb;
reg q,qb;
reg [1:0]jk;
always @ ( posedge clk or posedge reset)
begin
jk={j,k};
if (reset)
begin
q = 1'b0;
qb = ~q;
end
else
begin
case (jk)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = ~q;
endcase
qb = ~q;
end
end
endmodule
++ Ví dụ code Verilog cho JK FLIP FLOP tích cực ở sườn dương.
Mã:
//Async JK Flip Flop
module jk_ff( j, k , clk , q ,qb );
input j,k;
input clk ;
output q,qb;
reg q,qb;
reg [1:0]jk;
initial
begin
q=1'b0; qb=1'b1; // q is set to 0 and q1 is set to 1.
end
always @ ( posedge clk)
begin
jk={j,k};
begin
case (jk)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = ~q;
endcase
qb = ~q;
end
end
endmodule
Mã:
//Async JK Flip Flop
module jk_ff( j, k, reset , clk , q ,qb );
input j,k;
input clk, reset ;
output q,qb;
reg q,qb;
reg [1:0]jk;
always @ (negedge clk or posedge reset)
begin
jk={j,k};
if (reset)
begin
q = 1'b0;
qb = ~q;
end
else
begin
case (jk)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = ~q;
endcase
qb = ~q;
end
end
endmodule