关于有限状态机FSM同步复位的问题
2014-05-18 15:55
399 查看
FSM通常情况下使用异步信号进行复位,如FSM1中的rst_n信号。当rst_n信号为低时,FSM进入空闲状态IDLE。
在某些特殊情况下有可能需要跟随某个外部信号强制切换到空闲状态,也即同步复位。下面给出了两种同步复位的写法,请各位指教。
如果有什么更好的实现方法,还望不吝赐教。
在某些特殊情况下有可能需要跟随某个外部信号强制切换到空闲状态,也即同步复位。下面给出了两种同步复位的写法,请各位指教。
如果有什么更好的实现方法,还望不吝赐教。
//FSM1 localparam IDLE = 0, S1 = 1, S2 = 2; always@(posedge clk, negedge rst_n) begin if(!rst_n) cs <= IDLE; else if(reset) cs <= IDLE; else cs <= ns; end always@* begin ns = IDLE; case(cs) IDLE: if(a) ns = S1 else ns = IDLE; S1: if(b) ns = S2 else ns = S1; S2: ns = IDLE; default: ns = IDLE; endcase end //FSM2 localparam IDLE = 0, S1 = 1, S2 = 2; always@(posedge clk, negedge rst_n) begin if(!rst_n) cs <= IDLE; else cs <= ns; end always@* begin ns = IDLE; case(cs) IDLE: if(reset) ns = IDLE; else if(a) ns = S1 else ns = IDLE; S1: if(reset) ns = IDLE; if(b) ns = S2 else ns = S1; S2:if(reset) ns = IDLE; ns = IDLE; default: ns = IDLE; endcase end
相关文章推荐
- 异步复位同步释放---关于复位的问题
- 异步复位同步释放---关于复位的问题
- 关于异步I/O请求被同步处理的问题。。
- 关于同一个网站下Session却不能同步的问题
- 关于两个svn服务器子目录同步问题
- 关于CPU与GPU的同步问题
- 关于mootools的Ajax、XHR类在FireFox下的同步访问的问题
- 关于dsp定时器同步需要注意的问题
- 关于客户端与数据库服务器端的时间同步问题
- 关于线程和进程的同步问题
- 关于gridview插入数据后,不能同步刷新的问题
- 关于c#中两个DataGrid绑定到主表和子表的数据同步问题
- 关于虚拟机时钟同步的问题
- 关于客户端与数据库服务器端的时间同步问题
- 关于wince6.0休眠唤醒同步不上的问题
- 关于应用UCenter同步修改密码问题?
- 问个关于SQL 2005同步的问题
- 关于局域网内的数据库同步备份问题
- 关于线程和进程的同步问题
- 关于DWR的同步和异步问题!