注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
liluchang1993的个人空间 https://home.eeworld.com.cn/space-uid-520495.html [收藏] [复制] [分享] [RSS]
日志

关于verilog状态机更新的问题

已有 224 次阅读2013-12-17 19:01

本人刚入门FPGA不久,请教verilog大神一个关于状态机的问题
一种verilog常用状态机的写法是always @(posedge clk, negedge reset)
begin
        if(!reset )begin
                current_state <=state_idle;
        end else begin
                current_state <= next_state;
        end       
end

always @(*)
begin
    next_state =current_state  ;
     case(current_state   )
          state1:
              case(in)
                   in1: //do something
                   in2: //do something
          state2:
              case(in)
                   in1: //do something
                   in2:  //do something
     endcase
end
这里我有一个问题是第一段代码中,current_state 和next_state都是idle而且输出in也没有更新的情况下,第一段中的 current_state <= next_state;会引起第二段的执行吗?
比如输入in是一个空/满的标志,根据这个标志来决定内部做一些事情,但是可能存在外设先工作,FPGA刚工作in已经为满标志了,如果我提的问题结果是没有执行,岂不是FPGA还是一直处于等待之中???
非常感谢

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章