锁存器、触发器和寄存器区别对比-基础小知识(十)

本文详细介绍了锁存器和触发器的基本概念、工作原理及应用场合。锁存器是一种电平触发的存储单元,而触发器则是由时钟信号控制的。在数据信号滞后于控制信号时选择锁存器,反之则采用触发器。锁存器的使用需谨慎,因其可能带来毛刺敏感、静态时序分析复杂等问题。文章还讨论了锁存器产生的条件及其危害,并提醒在FPGA设计中避免不必要的锁存器使用。
摘要由CSDN通过智能技术生成

基本概念

锁存器(latch):、在电平信号的作用下改变状态,是一种电平触发的存储单元。锁存器的数据存储动作取决于输入使能信号的电平值,仅当锁存器处于使能状态时,输出数据才会随着数据输入发生变化,否则处于锁存状态。

输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态才被保存到输出,直到下一个锁存信号到来时才改变。

以D锁存器为例
在这里插入图片描述
当CP = 1 时,输出端的状态随输入端的状态而改变。Q n+1 = D ,存入新的数据;当CP = 0 时,无论 D 如何变化,输出端的状态保持不变。Q n+1 = Q n,存入的数据不变。

触发器(FF):当收到输入时钟脉冲时,便会根据规则改变状态,然后保持这种状态直到收到下一个触发脉冲信号到来,边沿敏感。

以边沿触发D触发器为例
在这里插入图片描述
边沿触发器而言,只有当时钟从0跳变到1时,才会引起输出的改变。边沿触发的D型触发器,它由两级R-S触发器按如下方式连接而成,时钟信号在第一级中进行了取反操作。

  1. 非工作状态下,其数据和时钟输入均为0,且Q的输出也为0
  2. 使数据端输入1,则改变了第一级触发器的状态,因为时钟输入取反变为1。但是第二级触发器状态保持不变,因为时钟输入仍然为0。
  3. 把时钟输入变为1,这就引起了第二级触发器输出的改变,使Q输出变为1。
  4. 只有在时钟输入从0变为1的瞬间,Q的输出才发生改变。

寄存器(register):存储电路通常是由触发器构成的,因为一个触发器能存储一位二进制数,所以N个触发器就可以构成N位寄存器,可以将寄存器理解成多个触发器构成的暂存单元。

锁存器与触发器区别

  • 触发器(寄存器)由同步时钟信号控制的,需要时钟信号;而锁存器是由电平使能信号控制的,不需要时钟信号。在FPGA的可用资源中,触发器资源非常常见,但是锁存器则很少,需要由一个逻辑门和触发器来构成,浪费较多资源。
  • latch是电平触发的,锁存器的输出对输入透明的,输入是什么,输出就是什么,这就是锁存器不稳定的原因;而触发器是由两个锁存器构成的一个主从触发器,输出对输入是不透明的,必须在时钟的上升/下降沿才会将输入体现到输出,所以能够消除输入的毛刺信号。

锁存器与触发器不同应用场合

  • 若数据信号有效性滞后于控制信号有效,则选择锁存器;若数据信号提前于控制信号到达并且要求同步操作,则采用触发器(寄存器)。

锁存器产生条件

组合逻辑中case结构缺乏default

组合逻辑中if-else结构描述不全

组合逻辑always()中敏感列表不全

组合逻辑是否会生成锁存器,其根本原因是该组合逻辑存在保持功能!

锁存器危害

  • 对毛刺敏感,不能异步复位,所以上电以后可能处于不确定的状态;
  • Latch会使静态时序分析变得非常复杂;
  • DFT处理复杂
  • FPGA基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。CPU设计有些充分利用锁存器特性,在实际应用中,有些设计不可避免的要使用Latch,特别是总线应用上,例如,地址锁存器,数据锁存器,复位信号锁存器等。

参考文档

【1】触发器(寄存器)与锁存器的异同
【2】寄存器,触发器,锁存器之间的区别与联系
【3】边沿触发-D型触发器
【4】RS锁存器和D锁存器的电路结构及工作原理
【5】实例解析Verilog综合出锁存器的问题
【6】latch和寄存器有什么区别 锁存器的危害分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paul安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值