Latch的四种写法及为何要避免其产生,以及Latch与DFF的区别?

Latch的四种写法及为何要避免其产生,以及Latch与DFF的区别?

参考来源:

https://blog.csdn.net/llxxyy507/article/details/82811992https://blog.csdn.net/tianyake_1/article/details/79031582https://blog.csdn.net/perfect_lun/article/details/51818886https://zhuanlan.zhihu.com/p/34408492?from_voters_page=truehttps://www.cnblogs.com/chengqi521/p/6721250.htmlhttps://m.newsmth.net/article/METech/44491

Latch的四种写法及为何要避免其产生,以及Latch与DFF的区别?

1. Latch写法法一:if_else不完整,缺else分支;法二:case语句不完整;==注意:if_esle_,case语句完整仍会产生Latch的原因==法三:组合逻辑中自己自己赋值;法四:always块的敏感列表未列全;

2. 为何要避免Latch的产生3. Latch与DFF的区别

1. Latch写法

法一:if_else不完整,缺else分支;

法二:case语句不完整;

注意:if_esle_,case语句完整仍会产生Latch的原因

代码1:

代码2: 原因:

未在所有的情况下给每个信号变量赋值; 解决办法: 在所有的情况下给每个信号变量都赋值,或者在case或者if前给每个变量赋初值;

法三:组合逻辑中自己自己赋值;

法四:always块的敏感列表未列全;

2. 为何要避免Latch的产生

之所以在硬件设计中避免latch的出现,主要原因是latch会产生毛刺(glitch),这种毛刺对下一级电路是很危险的。并且其隐蔽性很强,不易查出。因此,在设计中,应尽量避免latch的使用。

==latch 就是因为电平触发,所以很容易产生glitch,如果后面接了边沿触发的东西,可能会出问题。==如果确认这些glitch没有负作用,当然可以用latch,毕竟要小接近一半的面积和Flip flop相比。

总结:

对毛刺敏感,可能会将毛刺锁存住,以致影响下一级电路。无法做静态时序分析;FPGA上:浪费资源,latch比DFF大(ASIC上:Latch是DFF面积的一半)。

3. Latch与DFF的区别

锁存器与触发器最大的区别在于,锁存器是电平触发,而触发器是边沿触发。锁存器在不锁存数据时,输出随输入变化;但一旦数据锁存时,输入对输出不产生任何影响。 register在同一时钟边沿触发下工作,符合同步电路的设计思想,而latch则属于异步电路设计,往往导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。

相关推荐

智利矿难33英雄为国家队助威 至今也没人为矿难负责
365体育投注备用网站

智利矿难33英雄为国家队助威 至今也没人为矿难负责

📅 08-08 👁️ 7923
夏普液晶电视质量如何,值得购买吗?
365体育投注备用网站

夏普液晶电视质量如何,值得购买吗?

📅 08-11 👁️ 5135
抖音视频评论越多越好吗?视频评论率怎么提高?2025-03-17 08:59:523250浏览
單板滑雪世界盃
365体育投注备用网站

單板滑雪世界盃

📅 07-04 👁️ 2237
生命缘第15季
365体育投注备用网站

生命缘第15季

📅 07-17 👁️ 8511
狗的平均寿命对照表图(各种狗的平均寿命是多少)