📜  JK触发器和SR触发器(1)

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

JK触发器和SR触发器

介绍

JK触发器和SR触发器是数字电路设计中常用的触发器类型,用于存储一个比特位的状态并在需要时改变。

JK触发器

JK触发器是一种可以对状态进行置位和复位的触发器,它由两个输入J和K、一个时钟输入以及一个输出组成。它的状态取决于J、K和时钟信号的状态,当时钟信号为下降沿或上升沿触发时,JK触发器会将其输出状态更新为相应的状态。

在JK触发器中,当J和K都为1时,它的输出状态会翻转,当J和K都为0时,它的输出状态不变,当J为1而K为0时,它的输出状态为1,当K为1而J为0时,它的输出状态为0。

SR触发器

SR触发器是一种可以对状态进行置位和复位的触发器,它由两个输入S和R、一个时钟输入以及一个输出组成。与JK触发器不同的是,SR触发器的状态不会在输入信号发生变化时翻转,它的状态只会在时钟信号的上升沿或下降沿更新为与输入信号相应的状态。

在SR触发器中,当S为1时,输出状态为1,当R为1时,输出状态为0,当S和R都为1时,输出状态无法确定,这种状态称为禁止状态。

应用

JK触发器和SR触发器广泛应用于数字电路的设计和实现中,例如用于存储一个比特位的状态、寄存器和计数器等,它们也可以被组合成更复杂的数字元件,例如存储器和程序控制器等。

代码示例
JK触发器

以下是一个JK触发器的Verilog描述:

module JK_trigger (
    input J, K, CLK,
    output Q, Qn
);

reg Q, Qn;

always @(posedge CLK) begin
    if (J && K) begin
        Q <= ~Q;
        Qn <= Q;
    end else if (J) begin
        Q <= 1;
        Qn <= 0;
    end else if (K) begin
        Q <= 0;
        Qn <= 1;
    end
end

endmodule
SR触发器

以下是一个SR触发器的Verilog描述:

module SR_trigger (
    input S, R, CLK,
    output Q, Qn
);

reg Q, Qn;

always @(posedge CLK) begin
    if (S && R) begin
        Q <= Q;
        Qn <= Qn;
    end else if (S) begin
        Q <= 1;
        Qn <= 0;
    end else if (R) begin
        Q <= 0;
        Qn <= 1;
    end
end

endmodule

以上是两种常见的触发器类型,程序员可以根据具体的应用选择合适的触发器来设计和实现数字电路。