第七章有限状态机的设计案例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计的有如下优点:
设计方案相对固定,程序层次分明,结 构清晰,特别是可以定义为符号化枚 举类型的状态,使综合器对状态机具 有很大的优化功能。
容易构成性能良好的同步时序模块,容 易消除电路中的毛刺现象。
由纯硬件组成,工作方式是根据控制信 号按照预先设定的状态进行顺序运行
二、状态机的分类
按照不同的分类方法有不同类型的状态机






;
'1' <0; ' '1' <; ;
自定义数据类 型state,枚举 类型
在时钟驱动下,负 责状态转换,但是 不负责下一状态的 具体状态取值
一、什么是状态机?(续2)
()
主 控 组 合 进 程
; ;
s0 =>q<="0000"<1; s1 =>q<="0001"<2; s2 =>q<="0011"<3; s3 =>q<="0111"<4; s4 =>q<="0110"<5; s5 =>q<="0100"<0; ;
第7章 有限状态机的设计
主要内容
状态机的概述 概念、优点、分类 (摩尔)型状态机 (米利)型状态机 状态编码 非法状态
一、什么是状态机?
先看一个例子—设计一个六进制约翰逊计数器
什么叫做约翰逊计数器?
➢一般的二进制计数器或
十进 制 计 数 器 , 由 于 在 每
clk
次计数时常有不止一位触
在箭头转移处
S2 1/ 1111
其他/ 1100
四、型状态机(续1)
d2
()
在时 钟信 号控 制下, 决定 下一 状态
;
(0123); ;
'1' <0; ' '1'
0 => '1' <1 ; 1 => '0' <2 ; 2 => '1' <3 ; 3 => '0' <0 ; ; ;
四、型状态机(续2)
三、型状态机(续9)
总结单进程状态机的特点 输出端得到的信号值要比多进程晚一个时钟周期 能够减少输出信号波形的毛刺现象
四、型状态机
例2:实现下图所示状态机设计
其他/ 0000
S0
0/ 0000 S3
其他/ 1111
1/ 1001
其他/ 1001
S1
输出由当前状态和输入信 0/ 1100 号决定,所以输出信号写
()
根据 状态 和输 入信 号控 制输 出
; ;
0=> '1' q<="1001"; q<="0000" ;
按状态机的信号输出方式分
型状态机
输出由当前状态所决定
inputs
Next State Next state
State
logic
Registers
Output Logic
outputs
型状态机
Current state
输出由当前状态和输入共同决定
inputs
Next State Next state
State
S3 1111
S2
1
1100
状态转移图
三、(d;2 型状态机(续1) (3 0)); ; p0()
时钟上 升沿到 来时, 完成状 态转移
'1' <0; ' '1' <; ; ; p1()
决定
0 =>q<="0000";
每一 状态 下的
1 =>q<="1001"; 2 =>q<="1100";
输出
3 =>q<="1111";
纯组合电路,决定 每一状态下的输出 和下一状态的具体 取值
一、什么是状态机?(续3)
就理论而言,任何一个时序模型的电路系统都可以归结为 一个状态机。
把该电路系统分为有限个状态。在任意时刻,只能处于有 限状态中的一个,在接受到一个输入事件时,状态机产生 一个输出,同时伴随着状态的转移。
有限状态机(, )是一种基本的、简单的、重要的形式 化技术。是数字逻辑的另一种表示方法与一种设计思想。
发器翻转,以至于发生竞
S5 4
争冒险现象,造成误译动
作.
clk S4
➢为了消除这种干扰,采
6
用每次仅有一位触发器反
转的计数器,称为约翰逊
clk
计数器
S0 0
clk
S1 1
clk
S2 3
S3
clk
7
一、什么是状态机?(续1)
; 1164;
(: ; q : (3 0));
;
(s012345); ,;
()
二、状态机的分类(续3)
按时钟分 同步输出状态机 由时钟信号控制 异步输出状态机 没有经过时钟而直接输出 一般情况下,速度快于同步状态机,仅仅档状
态机的性能要求高时,才选择
三、型状态机
例1:实现下图所示状态机设计
S0
1
0000
0
S1 1001
0
输出仅和状态有关,因此状 态机的输出信号就写在表示 状态的圆圈之中。
波形仿真结果
异步复位
d1
2=>q<="1100";
三、型状态机(续6) (0123);
:;
'1' <3; <2;
;
p0()
3=>q<="1111";
'1' <0; ' '1'
'0' <0; <3; ;
;
0=>q<="0000";
;
'1' <1;
;
<0;
;
;
1=>q<="1001";
'0' <2;
;
;
三、型状态机(续2)
p2()

0=> '1' <1;

<0;

;

1=> '0' <2;

<1;

;

2=> '1' <3;

<2;体ຫໍສະໝຸດ ;取3=> '0' <0;

<3;
;
;
;
;
三段式、 型状态机
返回
三、型状态机(续3)
由软件自动生成状态转移图 —
三、型状态机(续4)
三、型状态机(续5)
logic
Registers
Output Logic
outputs
Current state
二、状态机的分类(续1)
按结构分 单进程状态机(一段式)
多进程状态机(两段式、三段式)
主控时序进程
主控组合进程
决定下一状态的具体取值 每一个状态的输出
二、状态机的分类(续2)
按状态的表达方式上分 符号化状态机 以文字符号代表每一个状态,在实际电路中是
<1;
;
2=>q<="1100";
'1' <3;
<2;
;
返回 返回1
三、型状态机(续7)
q<=“0000” state<=st1;
单进程状态机
示例
next_state<=st1
current_state<=st1 多进程状态机 q<=“1001”
示例
三、型状态机(续8)
单进程状态机 毛刺
多进程状态机
以二进制组合来表示,由综合器根据优化情况来 确定编码 确定状态编码的状态机 在定义状态时,就人为的将状态的编码确定下 来,可以采用的编码形式有:
s0 : (1 0):=“00”;
s1状: (态1 0位):直=“接01输”;出型编码、顺序码、格雷码、一 位s2热: (码1 等0):=“10”;
例:
相关文档
最新文档