十分钟辨清锁存器与Rs触发器

rs触发器与锁存器,在新手看来非常不容易区分,会经常陷入混淆的情况。本篇文章将对于rs触发器与锁存器的区别进行讲解,帮助各位新手快速区分两者的不同。

Rs触发器与锁存器在数据锁存的方式上有所区别,rs触发器是在时钟的沿进行数据的锁存的,而锁存器是用电平使能来锁存数据的。所以rs触发器的Q输出端在每一个时钟沿都会被更新,而锁存器只能在使能电平有效器件才会被更新。

需要注意的是,在一些教科书当中,rs触发器实际是锁存器。在FPGA设计中建议如果不是必须那么应该尽量使用rs触发器而不是锁存器。钟控D触发器其实就是D锁存器,边沿D触发器才是真正的D触发器,钟控D触发器在使能情况下输出随输入变化,边沿rs触发器只有在边沿跳变的情况下输出才变化。两个D锁存器可以构成一个D触发器,归根到底还是dff是边沿触发的,而latch是电平触发的。锁存器的输出对输入透明的,输入是什么,输出就是什么,这就是锁存器不稳定的原因,而rs触发器是由两个锁存器构成的一个主从rs触发器,输出对输入是不透明的,必须在时钟的上升/下降沿才会将输入体现到输出,所以能够消除输入的毛刺信号。

rs触发器与锁存器的比较:

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单元,在xilinxv2p的手册将该单元成为register/latch单元,附件是xilinx半个slice的结构图。

一般的设计规则是:在绝大多数设计中避免产生latch。它会让您设计的时序无效,并且它的隐蔽性很强,非老手不能查出。latch最大的危害在于不能过滤毛刺。这对于下一级电路是极其危险的。所以,只要能用Drs触发器的地方,就不用latch。

有些地方没有时钟,也只能用latch了。比如现在用一个clk接到latch的使能端(假设是高电平使能),这样需要的setup时间,就是数据在时钟的下降沿之前需要的时间,但是如果是一个DFF,那么setup时间就是在时钟的上升沿需要的时间。这就说明如果数据晚于控制信号的情况下,只能用latch,这种情况就是,前面所提到的latchtimingborrow。基本上相当于借了一个高电平时间。也就是说,latch借的时间也是有限的。

对latch进行STA的分析其实也是可以,但是要对工具相当熟悉才行。不过很容易出错。当前PrimeTime,是支持进行latch分析的。现在一些综合工具内置的STA分析功能也支持,比如RTLcompiler,DesignCompiler.除了ASIC里可以节省资源以外。latch在同步设计里出现的可能还是挺小的,现在处理过程中大都放在ff里打一下。

本篇文章主要对rs触发器与锁存器之间的区分进行了颇为细致的讲解。相信在看过本篇文章之后,此前对两种区别有所困惑的朋友一定能够举得豁然开朗,希望大家在阅读过本篇文章之后,能够吸收其中的知识。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值