原创 第3讲 状态机2--两段式状态机

2016-2-5 14:49 3334 17 17 分类: FPGA/CPLD

两段式状态机

实验目的:用两段式状态机描述法设计如图1所示的状态图转换图。

状态图1.PNG

1 状态转换图

由图1可知,状态的跳转和输出信号的控制不仅与复位信号Reset有关,还与输入信号A有关,同时,输出有K1K2两个信号,如果采用一段式状态机描述它则会杂乱无章,甚至会出现漏写语句的情况,故为了描述的状态机条理清晰、缜密,我们决定采用两段式状态机描述该状态转换图,第一段用一个always语句块描述状态的跳转,第二段用一个或多个always语句块描述输出信号与输入信号或当前状态的关系。需注意:(1always的个数不是状态机的段数;(2always的个数由输出信号的个数决定,一个always块中尽量只对一个输出变量进行赋值(或控制)。代码截图如下:

20160202154457431002.jpg

20160202154506200003.jpg

20160202154515603004.jpg

Testbench代码截图如下:

20160202154523389005.jpg

20160202154530245006.jpg

20160202154536486007.jpg

QUARTUS综合得到的状态转换图如图2所示:

20160205144838919.jpg

2 QUARTUS综合得到的状态转换图

Modelsim仿真结果如图3所示:

20160205144907997.jpg

3 Modelsim仿真结果截图

由图3可知,A从第210 ns开始变为高电平,然后依次产生101001100110的序列(以一个时钟周期为基本单位),在A的作用下,状态机的状态依次经由IDLESTARTCLEARSTOP跳转,最后由回到IDLE状态。在第290 ns以前,状态每隔一个时钟周期跳转一次;而在第290 ns以后,因为A的电平状态变化减慢,故状态每隔两个时钟周期才跳转一次,K1K2的高电平保持时间也随之增长。

综上所述,采用两段式状态机描述上述状态转换图调理清晰、思维缜密,验证了状态转换的正确性。

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条