数字电路中的触发器与锁存器(1)

第一部分首先讲述锁存器

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将静态时序分析变得极为复杂。(可以理解为不能分析)

一般的设计规则是:在绝大多数设计中避免产生latch。出现锁存器会产生设计者意想不到的后果,并且它的隐蔽性很强,非老手不能查出。latch最大的危害在于不能过滤毛刺。这对于下一级电路是极其危险的。所以,只要能用D触发器的地方,就不用latch。

 

避免 Latch 的产生
1 章节导读
本章主要讲解 Latch 是什么,以及它的产生、危害、如何避免等相关知识,目的是为了让大家在设计相关的电路时能够更加规范,从而避免出现不可预测的问题。
2 Latch 是什么
Latch 其实就是锁存器,是一种在异步电路系统中,对输入信号电平敏感的单元,用来存储信息。锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。因此,锁存器也被称为透明锁存器,指的是不锁存时输出对于输入是透明的。
3 Latch 的危害
之所以在这里讲关于 Latch 的问题是因为只有组合逻辑才会产生这种问题,产生 Latch是我们在同步电路中尽量避免的,但并不表示 Latch 没有用的或者说是错误的, Latch 在异步电路中是非常有用的,只是我们设计的是同步电路,要尽量避免。在同步电路中 Latch 会产生不好的效果,如对毛刺敏感;不能异步复位,上电后处于不定态;还会让静态时序分析变得十分复杂;在 FPGA 的资源中,大部分器件没有锁存器这个东西,所以需要用使用寄存器来组成锁存器所以会占用更多逻辑资源;在 ASIC 设计中,锁存器也会带来额外的延时和 DFT,并不利于提高系统的工作频率,所以要避免产生。在这里我们把会产生组合逻辑的几种情况列举出来,希望大家以后能够避免出现类似的问题。
4 几种产生 Latch 的情况
关于 Latch 的介绍如果能够理解原理最好,如对原理理解不透彻可以先记住规范的写法,避免产生不可控的因素,从而综合出更好的电路。

 

以下不规范的 3 种产生 Latch 的写
法一定要尽量避免。
1. 组合逻辑中 if 语句没有 else
2. 组合逻辑中 case 的条件不能够完全列举时且不写 default
3. 组合逻辑中输出变量赋值给自己

由于else添加  综合出来的RTL视图 有锁存器的电路 

 

不含锁存器  综合出来的RTL视图  

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值