让我们最后来看两种设计的的时序是什么样的。直接上图:
大家如果认真读过第一个小FSM的设计话,这个就能轻松加愉快的看懂了。这里我们假设有一串要识别的字符串A 111011010,并且画出了在10个周期内的Moore和Mealy机的时序。
这里由于很简单就只讲解最一开始的两个周期吧。注意图中的Moore和Mealy的状态数不同!
1.我们的Moore和Mealy机在Cycle1的第一个高电平的时候当Reset被拉高的时候经过一段延迟才把S放入一个已知状态也就是初始状态S0
2.Cycle1结尾 也就是Cycle2的第一个上升沿的后 Reset一直保持高电平,但是此时输入A并不稳定,所以这个Reset必须要等到输入A稳定以后才释放,这个就是我们以后要讲的Hold time
3.当Reset结束我们的机器才算正真开始运作。此时读取到A输入1,寄存器等到下一个上升沿的时候也就是 Cycle2的末尾才会做出判断。根据我们的设计需求,直接把它放入S1状态
4.以此类推。。
5.当Moore机运行到Cycle7的第一个上升沿时,正好找到了我们的1101匹配字符,所以进入S4状态。S4状态的上升沿触发输出,当然输出是在上升沿延迟之后开始相应。
好了,大概就是这样,注意,大家不仅仅要能看懂时序,要会自己画时序,以便以后的分析。虽然我们以后用Verilog等进行分析,但是现在的基础很重要。
文章评论(0条评论)
登录后参与讨论