在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3066|回复: 3

[求助] 求帮看latch产生的原因

[复制链接]
发表于 2015-5-19 10:30:39 | 显示全部楼层 |阅读模式
100资产




  1. always @ (*)
  2.                 if (rst)
  3. begin
  4.   irda_data = 8'd0;
  5. end
  6.                
  7.                 else if (data_cnt == 4'd8)
  8. begin
  9.   if(get_data[1] & get_data[2])
  10.    begin
  11.      irda_data[7:2] = get_data[8:3];
  12.      irda_data[0] = ~irda_data[0];       
  13.    end
  14.   else
  15.      irda_data = get_data[8:1];
  16.                   end


复制代码


提示说irda_data从0~7都产生了latch,请教下原因,谢谢各位高手

 楼主| 发表于 2015-5-19 13:59:28 | 显示全部楼层
自己解决了,在后面添加一个else补充完整。
发表于 2015-5-20 00:54:52 | 显示全部楼层
latch在组合电路里要避免生成的原因是latch对信号毛刺干扰敏感,容易误锁存错误数据

不光是if(rst) 哪个层次少一个else语句,还有功能设计还有问题,从你的逻辑上来分析,是没有办法避免产生latch的,data_cnt应该是时序的,而在组合逻辑里同步时序信号的变化必然产生latch, 解决办法是改为时序电路,引入时钟,latch就变为寄存器
发表于 2015-5-26 10:07:13 | 显示全部楼层
有if没else都会产生latch
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 15:58 , Processed in 0.024280 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表