
第
第
7
7
章
章
有
有
限
限
状
状
态
态
机
机
设
设
计
计

7.1 一般有限状态机的设计
7.1.1 用户自定义数据类型定义语句
TYPE 语句用法如下:
TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ;
或
TYPE 数据类型名 IS 数据类型定义 ;
以下列出了两种不同的定义方式:
TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ;
TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ;

7.1.1 用户自定义数据类型定义语句
TYPE m_state IS( st0,st1,st2,st3,st4,st5 ) ;
SIGNAL present_state,next_state : m_state ;
布尔数据类型的定义语句是:
TYPE BOOLEAN IS (FALSE,TRUE) ;
TYPE my_logic IS ( '1' ,'Z' ,'U' ,'0' ) ;
SIGNAL s1 : my_logic ;
s1 <= 'Z' ;
子类型SUBTYPE的语句格式如下:
SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;
SUBTYPE digits IS INTEGER RANGE 0 to 9 ;

7.1.2 为什么要使用状态机
� 有限状态机克服了纯硬件数字系统顺序方式控制不灵活
的缺点。
� 状态机的结构模式相对简单。
� 状态机容易构成性能良好的同步时序逻辑模块。
� 状态机的VHDL表述丰富多样。
� 在高速运算和控制方面,状态机更有其巨大的优势。
� 就可靠性而言,状态机的优势也是十分明显的。

7.1.3 一般有限状态机的设计
1. 说明部分
2. 主控时序进程
图7-1 一般状态机结构框图工作示意图
ARCHITECTURE ...IS
TYPE FSM_ST IS (s0,s1,s2,s3);
SIGNAL current_state, next_state:
FSM_ST;
...
评论0