时序逻辑电路与组合逻辑电路不同。在时序逻辑电路中,状态可以被记忆,电路整体受一个时钟信号 clk
的控制,此外往往还有一个异步的重置信号 rst
。
锁存器和触发器是时序逻辑电路中的两类基本元件,在它们的基础上,寄存器和计数器等元件得以产生。
锁存器没有时钟信号。它被用来「锁」住一个值,受一个或多个控制信号的控制。
RS 锁存器有两个输入端——R 对应 Reset,用来置 0;S 对应 Set,用来置 1。
对于使用或非门实现的 RS 锁存器(高有效),假设 $Q_{n+1}$ 是其输出的「次态」,也就是下一轮输出电平的状态;$Q_n$ 是现态, 即现在输出的状态,那么 $Q_{n}$ 和 $Q_{n+1}$ 与 R 和 S 之间的关系如下表:
对于与非门实现的 RS 锁存器(低有效),只需要翻转上表左边两栏中的 0 和 1 就可以了。RS 锁存器在 R 和 S 都无效的时候不会改变输出,在 R 和 S 单独有效的时候置 0 或者置 1,不允许两者都有效。它的状态方程是:
$$ Q_{n+1}=S+R'Q_n $$
门控 D 锁存器有两个输入端——「门」端 G 和输入端 D。门控 D 锁存器的功能表如下:
如其名所言,门控 D 锁存器在「门」打开(也就是 G 有效)时,输出端将直接拷贝输入端 D;否则,会保持原先的值。因此,它的状态方程是:
$$ Q_{n+1}=GD+G'Q_{n} $$
触发器与锁存器最大的不同是,触发器有一个时钟信号接入,并在这个时钟信号的控制之下动作。一般触发器的触发方式是边沿触发的,这意味着它只关心时钟信号的变化而不是时钟信号的高低。
D 触发器只有一个输入端,是应用最广的一种触发器。它的输出次态与现态无关;换言之,它的输出仅与输入信号有关。在触发的那一瞬间,它的输出端会直接拷贝输入端,并且保持这个值直到下一次被触发。