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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2471|回复: 5

[求助] 关于组合逻辑产生latch的一段代码,请大家帮忙分析

[复制链接]
发表于 2012-6-2 10:17:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
写一个状态机次态转移的组合逻辑,其中有含有nextstate = nextstate;的代码,请大家帮忙看下,是否会产生latch?如果是的话,需要怎么改进?谢谢
always @ (state,nextstate,state_tran_1,state_tran_2) begin

case (state)

3'b000 : nextstate = 3'b001;

3'b001 : if (state_tran_1 == 1'b1) begin

         nextstate = 3'b010;

       end

       else begin

      
nextstate = nextstate;

       end

  3'b010 : if (state_tran_2 == 1'b1) begin

  
         nextstate = 3'b011;

  
       end

  
       else begin

  
      
nextstate = nextstate;

  
       end

  3'b011 : if (state_tran_1 == 1'b1) begin

  
         nextstate = 3'b100;

  
       end

  
       else begin

  
      
nextstate = nextstate;

  
       end

  3'b100 : if (state_tran_2 == 1'b1) begin

  
         nextstate = 3'b001;

  
       end

  
       else begin

  
      
nextstate = nextstate;

  
       end

  default: nextstate = 3'b000;

endcase
end
发表于 2012-6-2 11:20:14 | 显示全部楼层
有个插入代码的功能,怎么不用上啊,怎么不用上啊……
发表于 2012-6-2 12:12:56 | 显示全部楼层
本帖最后由 Timme 于 2012-6-2 12:14 编辑

将所有nextstate = nextstate;替换成nextstate = state;即可

ps: 将状态机分开两段写没什么特别的好处,都是十几年前的老规定了(当时是方便古老的综合器识别),大可以写在一段里,新手不容易写错。
发表于 2012-6-2 19:40:00 | 显示全部楼层
楼上正解,顶一个!
发表于 2012-6-3 08:05:15 | 显示全部楼层
3楼正解
 楼主| 发表于 2012-6-3 15:13:42 | 显示全部楼层
回复 3# Timme


   谢谢~!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-18 21:25 , Processed in 0.020217 second(s), 11 queries , Gzip On, Redis On.

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