基于D锁存器的两种D触发器设计分析

电器工程 数字逻辑 拖鞋 时序分析
2022-01-27 10:36:09

我正在尝试创建带有 D 锁存器的 D 触发器。以下是2个可能的。注意它们都是上升沿触发的。

在此处输入图像描述

在此处输入图像描述

我试图分析他们在时钟边缘的行为。

对于 D 触发器 1,

  • 在上升沿,因为时钟需要再经过一个非门才能到达master1锁存器,所以我认为锁存器master1变得不透明,而不是变得透明。也就是说,两个 D 锁存器可以在时钟“上升”一小段时间时是透明的只要 D1 在上升沿附近保持稳定,一旦变为透明,D 就会一直传播到 Q1。slave1slave1

  • 在下降沿,出于同样的原因,master1latch 变得透明的时间会latch 变得不透明的时间晚一点。slave1Q1 将由 举行slave1所以 D1 不会影响 Q1。

对于 D 触发器 2,

  • 在上升沿,由于非门,master2变得不透明比变得透明要早一点。一旦变得透明slave2,这仍然可以让 N2 传播到 Q2 。slave2

  • 但在下降沿,master2变得透明比变得不透明要一点,因为 CLK 信号早于slave2到达所以它可能会变得透明,同时也保持透明。也就是说,两个 D 锁存器可以在时钟“下降”一小段时间时是透明的。因此,Q2 可能被D2污染,这是不可行的,因为无法保持 Q2。master2slave2master2slave2slave2

所以D触发器设计2是不好的。

我的分析正确吗?似乎关键部分是slaveD 锁存器比 D 锁存器更快地响应时钟master。但我还不知道如何量化/指定这个约束。到目前为止,我浏览的大多数时序分析都集中在上升沿上。但我认为下降沿也很重要。

2021 年 1 月 19 日上午 9 点 27 分添加

我正在研究一些关于时序电路时序分析的材料。会回来提供更多信息。

3个回答

使用 D 锁存器构建的 D 触发器工作的时序约束是:

tccq(initiator)>=thold(follower)

tccq(initiator)表示启动器锁存器的时钟到 q 污染延迟。

Hld(Fllwer)time 是跟随锁存器的保持时间。

可以在启动器的输出端插入虚拟逻辑(如串联2个反相器)以满足时序要求。

  • 第一个电路工作的时序约束是: CCq(一世n一世一世一种r)+Cd(一世nverer)>=Hld(Fllwer)

  • 第二个电路工作的时序约束是:

    CCq(一世n一世一世一种r)>=Cd(一世nverer)+Hld(Fllwer)

  1. D 使用具有正使能的锁存器的 触发器 在 Multisim Live 上模拟此电路: D 使用具有正使能的锁存器的触发器具有正使能的 D 触发器

  2. D 使用带负使能锁存器的 触发器 在 Multisim Live 上模拟此电路: D 使用带负使能锁存器的触发器使用负使能的 D 触发器

进一步阅读

麻省理工学院 OCW 免费在线计算结构课程的视频。

(编者注:我尽量不再使用“主”或“从”这两个词,而是使用“第一阶段”和“第二阶段”。)

案例 1 的保持时间要求增加,因为阶段 1 和阶段 2 由于反相器延迟而在“打开”时间上有重叠。需要将此重叠添加到保持时间规范中以确保可靠运行。

那是,

  • 在时钟低电平时,阶段 1 打开,阶段 2 关闭
  • 在时钟上升时,第 2 阶段打开。阶段 1 仍然开放 => D 仍然可以改变 Q 状态(这是重叠时间)
  • 逆变器延迟后,阶段 1 关闭。

案例二是比较典型的设计。第 2 阶段要么在同一时间计时,要么在第 1 阶段之后计时。

  • 在时钟低时,阶段 1 打开,阶段 2 关闭。
  • 在时钟上升时,阶段 1 关闭 => D 无效
  • 逆变器延迟后,第 2 阶段打开

由于反相器延迟,两个锁存器的打开时间没有重叠。这意味着建立/保持由阶段 1 确定。阶段 2 的保持时间不仅由于反相器延迟,而且还由于阶段 1 的传播延迟(下面将详细介绍)。然而,这种配置确实有由于反相器延迟,时钟到输出延迟比情况 1 更长。


有一种不同的方式来考虑锁存器:作为多路复用器的一种特殊情况。锁存器处于以下两种状态之一:

  • 跟随输入(透明)
  • 抓住

这可以通过使用 2 对 1 多路复用器来构建,其中一个输入连接到数据输入,另一个连接到数据输出。下面是一个 D 时钟触发器设计,使用连接为保持/跟随锁存器的多路复用器:

在此处输入图像描述

在这里模拟它: 使用多路复用器的 D 触发器

这个怎么运作:

  • 阶段 1 在时钟低电平期间跟随,并在时钟高电平期间保持。
  • 阶段 2 在时钟高电平期间跟随,并在时钟低电平期间保持

请注意,没有逆变器(稍后会详细介绍)。第 2 阶段和第 1 阶段从保持切换到跟随,反之亦然。从阶段 1 选择到 Q 的传播延迟确保了阶段 2 的保持时间,因此没有重叠。同样,设置时间只需要考虑第 1 阶段。

这种多路复用器逻辑风格在 CMOS 设计中更为典型,因为制作称为传输门的结构既简单又高效。

以下是使用传输门的基于 CMOS 多路复用器的 D-flop 的更详细介绍。请注意,电平灵敏度仅取决于开关的接线方式:这可以通过交换时钟相位或交换多路复用器输入来实现下降沿。

并保持时间?仍然只依赖于阶段 1。请注意,从阶段 1 Q 到阶段 2 D 有两个反相器延迟,而时钟只有 1 个反相器延迟。所以闩锁不可能重叠。

在此处输入图像描述

在这里进行模拟:基于离散 CMOS 多路复用器的 D-flop

此处有关 CMOS 触发器结构的更多信息:http: //ece-research.unm.edu/jimp/vlsi/slides/chap5_2.html

如果时钟网络上的反相器是用一个实际的反相器实现的,即引入了可测量的延迟,那么您的分析是正确的:design1 是稳定的,因为在 slave1 有时间改变之前,slave2 有时间锁存,而 design2 是边缘的,因为它有时钟下降的竞争条件,因为 master2 的变化与 slave2 解锁的时间大致相同。

如果时钟和反相时钟是同时生成的,比如来自触发器的 Q 和 Q_NOT 输出,那么时钟之间就不会有延迟,并且两种设计都应该工作得一样好(尽管您现在依赖于锁存器和锁存器-关闭时间要紧密匹配)。

从闩锁创建人字拖似乎是一个可疑的练习,我希望这只是出于学术兴趣而被问到。在现实生活中,最好用人字拖来实现人字拖。