可不可以在状态机中嵌入计数器?
时间:10-02
整理:3721RD
点击:
如题,就是在某个状态开始的时候开始计数,然后由计数结果控制状态跳转?比如说由idle跳到A的时候,A状态的计数器开始计数,count<=count+1;计数到一定值跳转,计数器再清零。我总感觉不行,因为状态内部没有时钟,没法实现计数,有没有高手做过的说说,或者给个例子看看。
可以啊,经常这样设计啊,状态机至少得包含两部分,组合逻辑和cur_st <= nxt_st,这个是时钟上升沿完成的
在三段式状态机中,计数器是在外面语句里以时钟上升沿开始计的,并不是纯组合逻辑里完成,
在一段式中,时钟包含在里面。
计数器本身就是状态机啊
能给个例子就最好了
对的,状态机有时序逻辑部分的
推荐大家一本书 一看就明白了
FSM-bas ed Digital Design using Verilo g HDL
讲的很详细
可以啊。
状态内部没有时钟?
请问三段式那种写法,不会出现多驱动问题吗?
计数器在外面计数,状态机在同一个沿上清零或者置数,就相当于两个模块里都在同一时刻给计数器赋值了。
求高手解答啊
把状态写入你的“计数器”里?
肯定可以的
计数器变化确实有两个来源,你用个if else语句就可以了啊,if(state change)
cnt <= 0;
else if(cnt <= cnt_max)
cnt <= cnt +1
类似这样的句子即可。
没有时钟的话你的代码是怎么工作的
谢谢各位,想明白了~
