计算机基本架构-时序逻辑电路回顾
D锁存器(D-Latch)
D锁存器(D-Latch)是逻辑设计中最基本的存储元件。它具有数据输入D
、时钟输入clock
和数据输出Q
,如下图所示,它包含一个三态反相器作为输入级,后面连接着两个背靠背的反相器,构成了一个环形连接,用于存储数据。
连接到三态反相器使能输入端的时钟信号可以设置为高电平使能或低电平使能。在下图中,输入端的时钟信号为低电平使能。在时钟的低电平期间,输入D
可以传递到输出端Q
。在时钟的高电平期间,输入的变化被屏蔽,不会传输到输出端。此时数据稳定存储在背靠背的反相器环路中。锁存器的输出级缓冲器用于驱动多个逻辑门输入。
D锁存器的操作过程下图所示。在时钟的低电平期间,三态反相器被使能。新数据通过三态反相器传输,覆盖了背靠背反相器阶段的旧数据,并到达输出。当时钟切换到高电平时,输入输出数据传输停止,因为三态缓冲器被禁用并阻止任何新数据传输。因此,如果需要在锁存器中保留某些数据,需要在时钟上升沿之前的某个时间存储。这个时间间隔称为建立时间 t S {t}_{S} tS,大致等于通过三态反相器和存储元件中反相器的延迟之和。在时钟的高电平阶段,存储在锁存器中的数据不再改变,如下图所示。
D触发器(D-Flip-Flop)
D触发器是逻辑设计中另一个重要元件,可以用于保存数据。和D锁存器类似,D触发器也有一个输入端D
,一个时钟输入端clock
,一个数据输出端Q
。如下图所示。图中展示了一个D触发器的经典电路示意图,其中包含串联的两个锁存器。第一个锁存器具有低电平有效的时钟输入,成为主锁存器(master)。第二个锁存器具有高电平有效的时钟输入,称为从锁存器(slave)。主锁存器在时钟低电平的阶段接收新数据,并在时钟的高电平阶段将这些数据传输给从锁存器。
下图显示了触发器的时序特性,建立时间 t S {t}_{S} tS是指有效数据在时钟上升沿之前到达并稳定在主锁存器中的时间间隔。保持时间 t H {t}_{H} tH是指时钟上升沿之后,有效数据需要保持稳定且不变的时间间隔。存储在主锁存器中的数据会在时钟上升沿之后通过从锁存器传播,并在一段时间后成为触发器的输出,这个时间成为时钟到Q的延迟( t C L K Q {t}_{CLKQ} tCLKQ)。
下面这张图显示了D触发器在时钟的两个不同阶段的操作。在时钟的低电平阶段,新的数据进入主锁存器并被存储。数据不能传播到主锁存器之外,因为在时钟的低电平阶段,副锁存器中的三态反相器起到开路作用。此时触发器输出的仅显示存储在从锁存器中的旧数据。当时钟信号变为高电平时,存储在主锁存器中的新数据通过从锁存器传输并到达输出端。可以使用触发器的门延迟来近似估算 t s {t}_{s} ts和 t C L K Q {t}_{CLKQ} tCLKQ的值。
时序违规
我们需注意数据路径和时钟网络中的意外延迟可能导致的时序违规。本节将检查由触发器控制的流水线中的建立时间和保持时间违规情况。