锁存器Latch

锁存器是电平触发的控制器件,这与边沿触发的触发器有着本质的区别。

功能

一个锁存器可以存储1bit信息,通常4位\8位锁存器一起使用。当锁存器为锁定时,输出信号随着输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据锁存,输入信号不起作用

地位

锁存器与触发器是同一级别的器件,都是基本的存储单元,但锁存器是电平触发,而触发器是边沿触发,都可以存储数据。意思是锁存器是组合逻辑的,触发器在时序电路中使用。

什么情况下会生成锁存器?

组合逻辑中,如存在某个信号在某条件下需要保持原值,就会生成锁存器。即组合逻辑回环会产生Latch。

锁存器的代码                          锁存器的模型                    组合逻辑描述2:加法

                  

 但这是不可以的,组合逻辑中是不可能有回路的,要求组合逻辑都是正向的,而不能有feedback。严格来讲,这段代码时可以被编译和实现出电路的,但是编译器会给出警告,因为这段代码的结果是没有实际意义的,根本不知道结果是多少。

此时会产生问题,生成的加法电路在一定时间内执行多少次呢?这样会导致未知结果的产生。

如果此时尝试综合,综合工具会将latch优化掉,会造成前仿真、后仿真结果的不一致。

描述方式3:异步复位时初始值为变量

 改为  

这段代码表面上是按照触发器的方式写代码,实际上,在异步复位阶段,data的输出依然由外界输入rst_var事实控制,并有可能保持,因此综合后产生latch。按如下修改后,可消除latch。

锁存器的危害

1:对时序的影响:非latch的的组合逻辑适用时序模型分析,对latch时序很难分析,因为电平触发,latch的输出高低时间不定,与clk不同步。

2:对毛刺敏感,不能异步复位,上电后处于不定态

3:FPGA芯片中都是LUT与寄存器,若生成latch反而需要更多的资源

如何避免latch

1:在组合逻辑中插入触发器

2:避免组合逻辑中某信号保持的场景

就是消除组合逻辑回环,确实需要回环的地方交给reg完成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清风吹斜阳#

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

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

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

打赏作者

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

抵扣说明:

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

余额充值