锁存器、触发器和寄存器详细介绍
扫描二维码
随时随地手机看文章
在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器.由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把n个触发器的时钟端口连接起来就能构成一个存储n位二进制码的寄存器。锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,尽当锁存器处于使能状态时,输出才会随着数据输入发生变化。
触发器
触发器是边沿敏感的存储单元,数据存储的动作有某一信号的上升或者下降沿进行同步的。在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器.由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把n个触发器的时钟端口连接起来就能构成一个存储n位二进制码的寄存器。寄存器用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。 触发器是在时钟的沿进行数据的锁存的,而锁存器是用电平使能来锁存数据的。所以触发器的Q输出端在每一个时钟沿都会被更新,而锁存器只能在使能电平有效器件才会被更新。有一些教科书里的触发器实际是锁存器。在FPGA设计中建议如果不是必须那么应该尽量使用触发器而不是锁存器。
钟控D触发器其实就是D锁存器,边沿D触发器才是真正的D触发器,钟控D触发器在使能情况下输出随输入变化,边沿触发器只有在边沿跳变的情况下输出才变化。两个D锁存器可以构成一个D触发器,归根到底还是dff是边沿触发的,而latch是电平触发的。锁存器的输出对输入透明的,输入是什么,输出就是什么,这就是锁存器不稳定的原因,而触发器是由两个锁存器构成的一个主从触发器,输出对输入是不透明的,必须在时钟的上升/下降沿才会将输入体现到输出,所以能够消除输入的毛刺信号。
触发器与锁存器的比较:
1、latch由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能信号无效时latch保持输出状态。DFF由时钟沿触发,同步控制。
2、latch对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生;DFF则不易产生毛刺。
3、如果使用门电路来搭建latch和DFF,则latch消耗的门资源比DFF要少,这是latch比DFF优越的地方。所以,在ASIC中使用 latch的集成度比DFF高,但在FPGA中正好相反,因为FPGA中没有标准的latch单元,但有DFF单元,一个LATCH需要多个LE才能实现。latch是电平触发,相当于有一个使能端,且在激活之后(在使能电平的时候)相当于导线了,随输出而变化。在非使能状态下是保持原来的信号,这就可以看出和flip-flop的差别,其实很多时候latch是不能代替ff的。
4、latch将静态时序分析变得极为复杂。
5、目前latch只在极高端电的路中使用,如intel 的P4等CPU。FPGA中有latch单元,寄存器单元就可以配置成latch单元,在xilinx v2p的手册将该单元成为register/latch单元,附件是xilinx半个slice的结构图。
一般的设计规则是:在绝大多数设计中避免产生latch。它会让您设计的时序完蛋,并且它的隐蔽性很强,非老手不能查出。latch最大的危害在于不能过滤毛刺。这对于下一级电路是极其危险的。所以,只要能用D触发器的地方,就不用latch。
有些地方没有时钟,也只能用latch了。比如现在用一个clk接到latch的使能端(假设是高电平使能),这样需要的setup时间,就是数据在时钟的下降沿之前需要的时间,但是如果是一个DFF,那么setup时间就是在时钟的上升沿需要的时间。这就说明如果数据晚于控制信号的情况下,只能用latch,这种情况就是,前面所提到的latch timing borrow。基本上相当于借了一个高电平时间。也就是说,latch借的时间也是有限的。
对latch进行STA的分析其实也是可以,但是要对工具相当熟悉才行.不过很容易出错.当前PrimeTime,是支持进行latch分析的.现在一些综合工具内置的STA分析功能也支持,比如RTL compiler, Design Compiler.除了ASIC里可以节省资源以外。latch在同步设计里出现的可能还是挺小的,现在处理过程中大都放在ff里打一下。
1、锁存器(Latch)
①作用:锁存器是一种具有两个稳定状态(0或1)的存储元件,它能够根据输入信号保持其输出状态不变,直到另一个输入信号到来改变其状态。
②原理:锁存器通常由两个交叉耦合的晶体管或逻辑门组成,形成一个正反馈环。当输入信号满足特定条件时,正反馈环被激活,使输出状态锁定。
③特点:锁存器具有速度快、功耗低的特点,但通常需要外部信号来重置其状态。
2、寄存器(Register)
①作用:寄存器是一种能够存储多个二进制位的数字电路,通常用于暂存数据或作为CPU与内存之间的数据缓冲。
②原理:寄存器由多个锁存器组成,每个锁存器负责存储一位二进制数。通过控制不同的输入信号,可以实现对寄存器中各个位的读写操作。
③特点:寄存器具有存储容量大、可并行操作的特点,能够实现数据的快速读写。
3、触发器(Flip-Flop)
①作用:触发器是一种具有两个稳定状态的电子开关,能够根据输入信号改变其输出状态,并在输入信号消失后保持输出状态不变。
②原理:触发器通常由两个互补的输出端和一组控制输入端组成。当控制输入端满足特定条件时,触发器的输出状态会发生翻转。
③特点:触发器具有稳定性好、抗干扰能力强的特点,常用于时序逻辑电路和计数器中。
4、三宝在数字电路中的作用
锁存器、寄存器和触发器作为数字电路中的基本元素,它们共同实现了数据的存储、传输和处理。在复杂的数字系统中,它们相互配合,使电路更加稳定、可靠和高效。
例如,在时序逻辑电路中,触发器可以用来存储每个时钟周期的状态信息,从而实现复杂的逻辑功能。而在数据传输过程中,寄存器则起到了缓冲和暂存数据的作用,确保数据能够在不同模块之间可靠地传输。