📜  主从 JK 触发器(1)

📅  最后修改于: 2023-12-03 15:06:18.145000             🧑  作者: Mango

主从 JK 触发器

JK 触发器是由两个反馈线路组成的电路,可以被用作触发器,计数器,以及某些类型的逻辑门。当 J(标记为 J)和 K(标记为 K)两个输入都为 0(低电平)时,JK 触发器会保持上一个状态。当 J 为 1(高电平),K 为 0(低电平)时,JK 触发器会置为 1(高电平),反之同理。

JK 触发器的追溯时间相比于 D 触发器和 T 触发器都有所改善。D 触发器的追溯时间比 JK 触发器长,因为 D 触发器要完成解码和反相过程。T 触发器的追溯时间比 JK 触发器更长,因为 T 触发器需要半个时钟周期才能完成反相操作。

JK 触发器难以设计,但是它比 T 触发器更灵活。JK 触发器可以被用作 T 触发器,只需要将 J 和 K 接在一起即可。

JK 触发器标志

image

JK 触发器时序图

image

JK 触发器真值表

| J | K | Q | Q' | | - | - | - | -- | | 0 | 0 | Q(t) | Not Q(t) | | 0 | 1 | 0 | 1 | | 1 | 0 | 1 | 0 | | 1 | 1 | Not Q(t) | Q(t) |

我们可以看到,当 J 和 K 都为 1 时,触发器的状态会倒转。这使得 JK 触发器成为时序电路的一个有用工具。

JK 触发器电路图

image

输入 J 和 K 被连接到各自的反馈线路。这个电路使用了两个异或门和两个与门。

JK 触发器实现代码
module jk_flip_flop(
    input wire clk,  // 时钟信号
    input wire j,    // J 输入
    input wire k,    // K 输入
    output wire q,   // Q 输出
    output wire q_n  // Q' 输出
);

reg q1;

always @(posedge clk) begin
    if (j & ~k)
        q1 <= 1'b1;
    else if (~j & k)
        q1 <= 1'b0;
end

assign q = q1;
assign q_n = ~q1;

endmodule

以上是一个使用 Verilog 语言实现的 JK 触发器,该代码可以被实现在 FPGA、ASIC 和其他数字电路中。

总结

JK 触发器是一种可用于触发器,计数器和逻辑门的有用工具。JK 触发器比 T 触发器更灵活,其追溯时间比 D 触发器稍短。实现 JK 触发器的电路比较复杂,但有很多编程语言可以用于实现 JK 触发器,例如 Verilog,VHDL 等。