简单理解锁存器和触发器的主要区别

一、锁存器

        锁存器(latch)在电平信号的作用下改变状态,是一种对脉冲电平(即0或者1)敏感的存储单元电路。锁存器的数据存储动作取决于输入使能信号的电平值,仅当锁存器处于使能状态时,输出数据才会随着数据输入发生变化,否则处于锁存状态。

二、触发器

        触发器Flip-Flop,简写为 FF)是一种对脉冲边沿(即上升沿或者下降沿)敏感的存储电路。随着输入的变化,输出会产生对应的变化。它通常是由至少两个相同的门电路构成的具有反馈性质的组合逻辑电路。应用中为了使触发过程容易控制,而做成由时钟触发控制的时序逻辑电路。

三、寄存器

        通常只能存储一位数据的电路叫做存储单元,将用于存储一组数据的存储电路叫做寄存器(Register),寄存器的的存储电路通常是由触发器构成的,因为一个触发器能存储一位二进制数,所以n个触发器就可以构成n位寄存器,可以将寄存器理解成多个触发器构成的暂存

单元。

四、触发器和锁存器的异同

相同点:

        锁存器和触发器都是具有存储功能的逻辑电路,是构成时序电路的基本逻辑单元,每个锁存器或触发器都能存储一位二值信息。

不同点:

1、 锁存器是一种对脉冲电平(即0或者1)敏感的电路,而触发器是一种对脉冲边沿(即上升沿或者下降沿)敏感的电路。

2、锁存器对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生,这对于下一级电路是极其危险的。而触发器则不易产生毛刺。  

 小知识: 

        锁存器将静态时序分析变得极为复杂,一般设计规则是在大多数设计中尽量避免产生锁存器,其隐蔽性很强,出现问题时难以排查,所以能用到触发器的地方一般不用锁存器。

        另一方面要注意,对于Verilog编程时,尽量避免锁存器。当使用case语句和if…else语句时,一定要注意把可能出现的情况都列出来。如case语句需要使用default关键字把剩余的情况包含起来,而使用if语句最好加上else部分,不然容易产生锁存器。(可以参考  4、Verilog Language-Procedures(更新中~)_Black-S的博客-CSDN博客   关于If statement latches的内容)

3、如果使用门电路来搭建锁存器和触发器,则锁存器消耗的门资源比触发器要少,这是锁存器比触发器优越的地方。因为锁存器的特点有时候锁存器是不能被代替的。

4、若数据信号有效滞后于控制信号有效,则选择锁存器;若数据信号提前于控制信号到达并且要求同步操作,则采用触发器。尽管如此,在FPGA的电路设计中,应尽可能避免使用锁存器(第2条)。

参考链接:锁存器和触发器的区别_上进的蠢猪的博客-CSDN博客_锁存器和触发器的区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值