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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6227|回复: 4

讨论:FSM中one-hot状态编码的问题!

[复制链接]
发表于 2006-9-12 23:29:40 | 显示全部楼层 |阅读模式

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

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

x
我看资料上FSM的状态编码使用one-hot编码时,在写下一状态产生逻辑时,通常用的是这样一个语句:case(1'b1).我有些不明白case(1'b1)是什么意思呢?是遇到一个1位的1就执行case 语句吗?如果是那样的话,那么这里的case(1'b1)能不能换成case(cur_state)?
  还有一个问题就是假如这时cur_state是4'b0,而N或D是1'b1,那么case语句是不是就会去执行default语句?如果这样的话,会不会有潜在的危险?
部分代码:
always @(cur_state or N or D)
begin
    next_state = 4'b0 ;
    case(1'b1)
        cur_state[Idle]:
            if(N)            
                next_state[State5] = 1'b1 ;
            else if(D)
                next_state[State10] = 1'b1 ;
            else
                next_state[Idle] = 1'b1 ;
        cur_state[State5]:
            if(N)
                next_state[State10] = 1'b1 ;
            else if(D)
                next_state[State15] = 1'b1 ;
            else
                next_state[State5] = 1'b1 ;
        cur_state[State10]:
            if(N || D)
                next_state[State15] = 1'b1 ;
            else
                next_state[State10] = 1'b1 ;
        cur_state[State15]:
            next_state[Idle] = 1'b1 ;
        default:
            next_state[Idle] = 1'b1 ;
      endcase
   end
发表于 2006-9-13 14:09:08 | 显示全部楼层
case(1)是指下面语句按顺序检查,如果那条是真就执行,如果下面还有真也就不执行了。就相当于ifelse。
发表于 2006-9-13 17:01:39 | 显示全部楼层
case(1)
bb:
意思是if(bb==1)
头像被屏蔽
发表于 2006-12-5 17:25:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2007-11-7 19:16:06 | 显示全部楼层
thanks for share
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-5 16:34 , Processed in 0.033292 second(s), 9 queries , Gzip On, Redis On.

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