数字电路设计课件第六讲状态机设计
《数字系统设计》教学课件 第五章 状态机

选用2个D触发器。
由状态转换表推导
用二进制计数序列
触发器的驱动方程
依次表示状态。
ASM图的硬件实现
27
ASM图法状态机设计——硬件实现
状态转换表
因为10和11状态与输入X无关,所以X值可作任意值处 理。
表中01未指定状态,采用计数器实现,因此需考虑因 偶然因素出现01状态时,应强迫其次态为00,所以一 旦出现01状态后,经过一个时钟周期就可以自动回到 有用状态循环。
➢Mealy有限状态机框图:
35
从信号输出方式上分
Moore型和Mealy型有限状态机的区别:
➢Moore型有限状态机仅与当前状态有关,而与 输入信号无关;
➢Mealy型有限状态机不但与当前状态有关,而 且还与状态机的输入信号有关。
36
从信号输出方式上分
采用何种有限状态机的判别条件:
➢Moore型有限状态机可能要比相应的Mealy型 有限状态机需要更多的状态。
条件: 非周末
且 下午2点
地点:体育馆 功能:运动
11
时序电路与状态机的关系
描述时序电路的状态机的组成
➢组合逻辑
✓组合逻辑又可分为次态逻辑和输出逻辑两个部分。 其中:次态逻辑的功能是用来确定有限状态机的下 一个状态;输出逻辑是用来确定有限状态机的输出。
➢存储逻辑
✓寄存器逻辑的功能:用来存储有限状态机的内部状 态。
Q SET D Q CLR
Q2n+1
CP
30
ASM图法状态机设计——举例
举例
➢ 要求设计一套交叉路口交通信号灯,该路口有一条交通干线与支 线,支线上装有传感器,当支线有车通过时,传感器输出信号 CAR=1。正常的工作状态时干线亮绿灯,支线亮红灯;当 CAR=1时,干线亮红灯,支线亮绿灯,并开始计时, START_TIEMR=1,当计时结束,即信号TIMED=1时,重新回到 正常工作状态(干线亮绿灯,支线亮红灯)。
如何设计最优化的状态机(有图版)

如何设计最优化的状态机前言:数字电路通常分为组合逻辑电路和时序电路,组合逻辑电路outputs = F(current inputs)时序电路outputs = F(current inputs,past inputs)有限状态机就是时序电路的数学抽象,一个有限状态机系统包括inputs ,outputs, states .状态机分为同步状态机(synchronous)和异步状态机(asynchronous),异步状态机由于输出信号不稳定,所以不详细讨论,对绝大多数设计来说,用的最广泛的是同步状态机。
下面主要讨论了同步状态机的设计。
一.状态机的基础知识1.1. moore状态机和mealy状态机的区别:2.1.1moore状态机输出只依赖于及其的当前状态,与输入信号无关。
这是moore状态机的优点。
下面是moore状态机的模型:moore状态机比较容易用数学的方式来分析,因此被更广泛的用在代数状态机理论中(algebraic FSM theory)。
Mealy状态机输出依赖于机器现在的状态和输入的值,如果输入改变,输出可以在一个时钟周期中将发生了改变。
其模型如下:图的说明:state memory :保存现在的状态(current state s(t) )state transistion function :根据现态和输入x(t),s(t+1)来决定下一个状态。
Output function :根据s(t)和x(t)来决定最后的输出。
Mealy 状态机通常可以有更少的状态变量,因此在工程领域有更为广阔的应用,状态变量越少,则所需的存储单元就越少。
下面用简单的实例来具体说明两者编程的区别,和综合出来的结果的不同:Mealy状态机的简单例子:1.源程序:demo_process:process(clk,reset)beginif(reset = '1')thenstate <= s0;out1 <= (others=>'0');elsif rising_edge(clk) thencase state iswhen s0 => if(in1 = '1')thenstate <= s1;out1 <= "1000";end if;when s1 => if(in1 = '0')thenstate <= s2;out1 <= "1001";end if;when s2 => if(in1 = '1')thenstate <= s3;out1 <= "1100";end if;when s3 => if(in1 = '0')thenstate <= s0;out1 <= "1111";end if;when others =>null;end case;end if;end process;modelsim仿真结果:synplify综合结果:1.模块表示图:在这张综合图上可以明显得看出红线即input所参与决定的是状态的产生和输出。
数字电路状态机设计

数字电路状态机设计数字电路状态机是一种在特定输入条件下,产生特定输出逻辑电路的设计。
它通常用于处理控制信号和顺序逻辑的应用中。
本文将介绍数字电路状态机的基本概念、设计流程以及应用实例。
一、数字电路状态机的概念数字电路状态机是一种使用状态和状态转移来描述电路行为的模型。
它由状态寄存器、组合逻辑和组合逻辑控制电路组成。
状态寄存器用于存储当前状态,组合逻辑决定下一个状态和输出的逻辑条件。
二、数字电路状态机的设计流程1. 确定状态和输入信号:首先确定设计中所需要的状态数量和输入信号的种类和数量。
状态可以是离散的值,如0、1等,也可以是更复杂的状态。
2. 绘制状态转移图:根据状态数量和输入信号的种类和数量,绘制状态转移图。
状态转移图是一种有向图,用于描述状态之间的转移条件和动作。
3. 设计状态表:根据状态转移图,设计状态表。
状态表列出了每个状态的转移条件、动作和输出。
4. 实现状态转移表:将状态表转化为逻辑电路,实现状态转移逻辑和输出逻辑。
5. 验证和测试:对设计进行验证和测试,确保状态机在各种输入条件下都能正确地工作。
三、数字电路状态机的应用实例数字电路状态机广泛应用于各种控制和顺序逻辑的场景,下面是一个以闹钟为例的应用实例。
假设我们需要设计一个简单的闹钟电路,具有以下要求:1. 闹钟有两种状态:开和关。
2. 闹钟有两个输入:按钮A(表示设置时间)和按钮B(表示开关闹钟)。
3. 当闹钟处于关闭状态下,按下按钮B时,闹钟进入开启状态,并发出响铃信号。
4. 当闹钟处于开启状态下,按下按钮B时,闹钟进入关闭状态,停止响铃。
通过状态机设计流程,我们可以得到以下结果:1. 状态:开(S1)和关(S0)。
2. 输入信号:按钮A(I1)和按钮B(I0)。
3. 输出信号:响铃(O)。
根据设计要求,我们绘制状态转移图,如下所示:```S0───┐┌──────┐┌──────┐││ I1=1 ││ I1=0 │S1───┘└──────┘└──────┘ I0=1 I0=1```根据状态转移图,设计状态表如下:```当前状态输入下一个状态输出 S0 0 S0 0S0 1 S1 0S1 0 S0 1S1 1 S1 0```根据状态表,实现状态转移表如下:```当前状态输入下一个状态输出 S0 00 S0 0S0 01 S1 0S1 11 S1 0```最后,根据状态转移表实现逻辑电路并进行验证和测试。
《数字集成电路设计》课件

深入研究加法器和减法器的原理,了解如何进行数字的加法和减法运算。
贝叶斯定理在电路设计中的应 用
介绍贝叶斯定理在电路设计中的应用场景,讲解如何利用先验知识和观测结 果进行后验概率的计算。
层级与模块化设计
层级设计
了解层级设计的原理和方法,掌握如何将复杂的电 路分解为多个模块进行设计和测试。
仿真实例
通过案例分析和实际仿真实例,加深对 电路仿真工具和流程的理解和应用。
计算机辅助设计方法与工具介 绍
介绍计算机辅助设计的基本原理和方法,以及常用的电路设计工具,包括EDA 软件和硬件描述语言。
引言
数字集成电路设计是现代信息技术的关键领域,本课程将深入探讨数字电路 设计的理论和实践,为学生打下坚实的基础。
逻辑门与布尔代数
了解常用逻辑门的工作原理,掌握布尔代数的基本概念和运算规则,为后续的电路设计奠定基础。
时序逻辑电路设计基础
1
触发器和计数器
2
深入研究各种触发器和计数器的原理和
应用,掌握时序逻辑电路的设计技巧。
《数字集成电路设计》PPT课件
数字集成电路设计PPT课件大纲: 1. 引言 2. 逻辑门与布尔代数 3. 时序逻辑电路设计基础 4. 组合逻辑电路设计 5. 贝叶斯定理在电路设计中的应用 6. 层级与模块化设计 7. 电路仿真工具与流程 8. 计算机辅助设计方法与工具介绍 9. 电路优化与验证 10. 技术与制造工艺介绍 11. 功耗优化与电源管理 12. 嵌入式系统设计基础 13. CPU架构设计基础 14. SOC(系统片上集成电路)设计基础 15. 集成电路测试方法与介绍
模块化设计
学习模块化设计的思想和技术,掌握如何将多个模 块进行组合,实现复杂功能的集成电路设计。
数字电路设计中的时序逻辑与状态机设计

数字电路设计中的时序逻辑与状态机设计时序逻辑与状态机设计是数字电路设计中的重要概念。
在数字电路中,时序逻辑指的是电路的输出是根据输入信号的时序关系而变化的,而状态机则是通过状态转换来实现特定功能的电路。
本文将详细介绍时序逻辑与状态机设计的原理、方法和实践经验。
一、时序逻辑设计的基础原理时序逻辑设计是指在数字电路中,通过引入时钟信号来控制电路的行为。
时钟信号可以被理解为一个周期性的信号,它将整个电路的工作分为不同的阶段。
在每个时钟周期内,时序逻辑根据输入信号的状态进行计算,并且在下一个时钟边沿产生输出信号。
时序逻辑设计的基础原理包括以下几个关键要点:1. 时钟信号:时钟信号的频率决定了电路的最大工作速度,而时钟边沿决定了电路的状态更新时机。
2. 触发器:触发器是实现时序逻辑的基本元件,它可以存储和传递信息,并在时钟边沿触发状态更新。
常见的触发器有D触发器、JK触发器和T触发器等。
3. 时序逻辑电路的设计方法:时序逻辑电路的设计方法包括状态转移图、状态转移方程和状态表等。
这些设计方法可以帮助设计师理清输入、输出和状态之间的关系,便于电路功能的实现。
二、状态机设计的基本概念与方法状态机是一种抽象的数学模型,常用于描述具有确定性行为的系统。
在数字电路设计中,状态机通常用于实现序列逻辑电路的控制部分,如计数器、序列检测器等。
状态机设计的基本概念与方法包括以下几个关键要点:1. 状态:状态是指系统在某个时刻的特定条件。
在状态机设计中,状态通常用离散的值来表示,比如二进制编码。
2. 状态转换:状态转换表示系统从一个状态切换到另一个状态的过程。
状态转换可以通过组合逻辑电路来实现,也可以通过时序逻辑电路实现。
3. 输出函数:输出函数定义了每个状态下的输出值。
它可以通过组合逻辑电路来实现,也可以通过状态寄存器的输出来实现。
4. 状态机设计流程:状态机设计的一般流程包括确定系统的输入、输出和状态集合,绘制状态转移图,推导状态转移方程,实现状态转移电路等。
状态机基础及电路设计

状态机电路设计状态机(STATE MACHINE)可以说是一个广义时序电路,触发器,计数器,移位寄存器都算是它的特殊功能的一种.在电子设计自动化应用当中,状态机经常是担任CPU的功能,从某种意义上讲状态机的应用让系统具有了智能化的功能,业界为状态机和CPU的功能一直争论不休,不过事实是更多人倾向于状态机,认为状态机的功能比CPU 强大.下面将带领大家认识一下状态机的基本设计思想.传统的逻辑电路设计在描述状态机的表示上,以状态图(STATE DIAGRAM)方式最为清晰且容易理解.根据输入,输出及状态关系,状态图可以分为:1.输入&状态&输出(输出仅与状态有关)以下面图形为例,若目前状态机处于状态S0时,输入为0则状态机将维持状态S0不变,若输入改为1则下个状态改成状态S1,但不论输入是什么,此时输出均为0.这种输出与状态有关,而与输入无关的状态机类型,称为More状态机.编程实现其功能如下:--***********************状态机*********************重点提示整个状态机的电路描述分成两个PROCESS命令语句完成.第一个PROCESS:负责感测时钟脉冲信号CP在上升沿变化之际,作目前状态(PresentState)切换至下个状态(NextState)的动作.第二个PROCESS:负责感测输入(DIN)值,目前状态(PresentState)值,由CASE-WHEN语句决定输出(OP)和下个状态(NextState)值.--*********************************************************LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;--*********************************************************ENTITY CH6_5_1 ISPORT(CP :IN STD_LOGIC; --CLOCKDIN:IN STD_LOGIC; --I/P SignalOP :OUT STD_LOGIC --O/P Signal);END CH6_5_1;--*********************************************************ARCHITECTURE A OF CH6_5_1 ISTYPE STATE IS (S0,S1,S2,S3); --State Type DeclareSIGNAL PRESENTSTATE :STATE; --Present StateSIGNAL NEXTSTATE :STATE; --Next StateBEGINSWITCHTONEXTSTATE:PROCESS(CP)BEGINIF CP'EVENT AND CP='1' THENPRESENTSTATE<=NEXTSTATE;END IF;END PROCESS SWITCHTONEXTSTATE;CHANGESTATEMODE:PROCESS(DIN,PRESENTSTATE)BEGINCASE PRESENTSTATE ISWHEN S0=> --STATE S0IF DIN='0' THEN --INPUT=0NEXTSTATE<=S0;ELSENEXTSTATE<=S1;END IF;OP<='0'; --OUTPUTWHEN S1=> --STATE S1IF DIN='1' THEN --INPUT=1NEXTSTATE<=S1;ELSENEXTSTATE<=S2;END IF;OP<='0'; --OUTPUTWHEN S2=> --STATE S2IF DIN='1' THEN --INPUT=1NEXTSTATE<=S2;ELSENEXTSTATE<=S3;END IF;OP<='0'; --OUTPUTWHEN S3=> --STATE S3IF DIN='1' THEN --INPUT=1NEXTSTATE<=S0;ELSENEXTSTATE<=S1;END IF;OP<='0'; --OUTPUTWHEN OTHERS=> --Initial StateNEXTSTATE<=S0;OP<='0'; --OUTPUTEND CASE;END PROCESS CHANGESTATEMODE;END A;--*********************************************************程序说明:(1)上述的状态编码方式,使用默认的Binary编码.(2)在第二个PROCESS内的CASE-WHEN语句里,最后一个WHEN OTHERS 作用在电路起始状态,亦即--将状态初始设定为S0.2.输入&状态&输出(输出与状态,输入背景有关)下面图形的动作和上图相似,但是输出是会随输入不同而有所改变,例如目前状态是S3,若输入是0则输出为0且下个状态更换成S1,而输入为1则输出为1且下个状态更换成S0.这种输出与状态及输入皆有关系者,称为Mealy状态机.程序实现功能如下:--***************************************************************************** LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;--***************************************************************************** ENTITY CH6_5_2 IS--CLOCKSTD_LOGIC;:INPORT(CPDIN:INSignal--I/PSTD_LOGIC;:OUTSTD_LOGICOP);END CH6_5_2;--***************************************************************************** ARCHITECTURE A OF CH6_5_2 ISTYPE STATE IS (S0,S1,S2,S3); --State Type Declare--PRESENT:STATE;STATEPRESENTSTATESIGNAL--NEXTSTATE:STATE;NEXTSTATESIGNALBEGINSWITCHTONEXTSTATE:PROCESS(CP) --PRESENTSTATE->NEXTSTATEBEGINIFCP='1'THENCP'EVENTANDPRESENTSTATE<=NEXTSTATE;ENDIF;END PROCESS SWITCHTONEXTSTATE;CHANGESTATEMODE:PROCESS(DIN,PRESENTSTATE)BEGINCASE PRESENTSTATE ISWHEN S0=> --STATE S0--INPUT=0THENIFDIN='0'NEXTSTATE<=S0;OP<='0'; --OUTPUTELSENEXTSTATE<=S1;OP<='1'; --OUTPUTEND IF;WHEN S1=> --STATE S1THEN--INPUT=1IFDIN='1'NEXTSTATE<=S1;OP<='1'; --OUTPUTELSENEXTSTATE<=S2;OP<='0'; --OUTPUTEND IF;WHEN S2=> --STATE S2--INPUT=1THENIFDIN='1'NEXTSTATE<=S2;OP<='0'; --OUTPUTELSENEXTSTATE<=S3;OP<='1'; --OUTPUTEND IF;WHEN S3=> --STATE S3--INPUT=1THENDIN='1'IFNEXTSTATE<=S0;OP<='1'; --OUTPUTELSENEXTSTATE<=S1;OP<='0'; --OUTPUTEND IF;StateWHENOTHERS=> --InitialNEXTSTATE<=S0;OP<='0'; --OUTPUTCASE;ENDEND PROCESS CHANGESTATEMODE;END A;程序说明:程序写法是与CH6_5_!相似,不过在处理输出OP部分,需按照输入的信号情况,作判断输出,这部分可程序的注释部分看出.。
13 14简化版硬件描述语言与数字系统设计状态机的结构与设计PPT课件

Mealy状态转移图
a=0/Z=0
S0 a=1/Z=0
a=0/Z=0
a=1/Z=0
a=1/Z=0 S1
a=0/Z=0
S3
a=0/Z=0
S2
a=1/Z=0
S4
a=0/Z=1
a=1/Z=0
10010序列检测MEALY状态转移图
Mealy状态机的Verilog实现
module Mealyfsm(clk,rst,a,z);
序列检测器
用FSM实现10010串的检测,画出其状态图,并 用verilog语言实现.
Moore状态转移图
a=0
Z=1
Z=0
S0
a=1
a=1
S5
a=0
a=0
a=1 S4 Z=0
a=0 S3 Z=0
a=1 Z=0
S1
a=1
a=0
S2
a=0
Z=0
a=1
10010序列检测MOORE状态转移图
Moore状态机的Verilog实现
有限状态机
隐式状态机FSM • 不需要声明状态寄存器 • 只适合于线性的状态改变 • 大多数综合工具不能处理
显式FSM: • 利于结构化 • 易于处理缺省条件 • 能处理复杂的状态改变 • 所有综合工具都支持
隐式有限状态机
• 可以在过程块中用多个时钟边沿(每个状态一个), 条件语句,循环,和disable语句隐式地描述一个FSM。 通常不可综合。
Moore状态机仿真波形如下
Moore状态机电路原理图
Mealy状态机仿真波形如下 (为什么nextstate出现了0001这个状态,且为什么该值没被赋给
currentstate?)
清华数字电路课件第六章-时序逻辑电路

YF(Q)
仅取决于电路
6.2.时序逻辑电路的分析方法
6.2.1 同步时序逻辑电路的分析方法
时序逻辑电路的分析:就是给定时序电路,找出该的 逻辑功能,即找出在输入和CLK作用下,电路的次态和 输出。由于同步时序逻辑电路是在同一时钟作用下, 故分析比较简单些,只要写出电路的驱动方程、输出 方程和状态方程,根据状态方程得到电路的状态表或 状态转换图,就可以得出电路的逻辑功能。
6.2.时序逻辑电路的分析方法
(4)状态转换表:
Q Q12n n 1 1 D D12Q A1Q1Q2
A=0时
Y [ A Q 1 ( Q 2 ) ( A Q 1 Q 2 ) ] A Q 1 Q 2 A Q 1 Q 2 A=1时
Q2 Q1 Q2* Q1* Y
00 0 1 0 01 1 0 0 10 1 1 0 11 0 0 1
J3 Q1Q2,
K3 Q2
6.2.时序逻辑电路的分析方法
(2) 状态方程:
JK触发器的特性方程
Q *JQ KQ
将驱动方程代入JK触发器的特性方程中,得出电 路的状态方程,即
J1 (Q2Q3), K1 1
J2 Q1,
K2 (Q1Q3)
J3 Q1Q2,
K3 Q2
(3)输出方程:
QQ2*1*Q(1QQ22Q3)Q1QQ31Q2 Q3*Q1Q2Q3 Q2Q3
YQ2Q3
6.2.时序逻辑电路的分析方法
6.2.2时序逻辑电路的状态转换表、状态转换图、状态 机流程图和时序图
从例题可以看出,逻辑电路的三个方程应该说已 经清楚描述一个电路的逻辑功能,但却不能确定电路 具体用途,因此需要在时钟信号作用下将电路所有的 的状态转换全部列出来,则电路的功能一目了然
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
comb_outputs : OUT INTEGER RANGE 0 TO 15 );
END s_machine;
ARCHITECTURE behv OF s_machine IS
TYPE FSM_ST IS (s0, s1, s2, s3);
SIGNAL current_state, next_state: FSM_ST;
END PROCESS; END behv;
2020/7/16
7.1.3 一般有限状态机的设计 4. 辅助进程
图7-2 例7-1状态机的工作时序图
2020/7/16
2020/7/16
VHDL综合器易于优化 易构成性能良好的时序逻辑模块 结构模式简单、层次分明、易读易懂、易排错 利用同步时序和全局时钟线可实现高速FSM 运行模式类似于CPU,易于进行顺序控制 高可靠性,非法状态易控制
clk reset state_inputs
PROCESS REG
FSM: s_machineቤተ መጻሕፍቲ ባይዱ
current_state next_state
PROCESS COM
comb_outputs
2020/7/16
图7-1 一般状态机结构框图工作示意图
7.1.3 一般有限状态机的设计
3. 主控组合进程
控组合进程的任务是根据外部输入的控制信号(包括 来自状态机外部的信号和来自状态机内部其它非主控的 组合或时序进程的信号),或(和)当前状态的状态值 确定下一状态(next_state)的取向,即next_state的 取值内容,以及确定对外输出或对内部其它组合或时序 进程输出控制信号的内容。
2020/7/16
7.1.3 一般有限状态机的设计 4. 辅助进程
【例7-1】
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY s_machine IS
PORT ( clk,reset : IN STD_LOGIC;
state_inputs : IN STD_LOGIC_VECTOR (0 TO 1);
TYPE my_logic IS ( '1' ,'Z' ,'U' ,'0' ) ; SIGNAL s1 : my_logic ; s1 <= 'Z' ;
2020/7/16
7.1 一般有限状态机的设计 6.1.1 用户自定义数据类型定义语句
子类型SUBTYPE的语句格式如下:
SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;
EDA技术实用教程
第六讲 有限状态机设计
6.1 一般有限状态机的设计
6.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) ;
2020/7/16
6.1 一般有限状态机的设计
6.1.1 用户自定义数据类型定义语句
TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ; 布尔数据类型的定义语句是:
TYPE BOOLEAN IS (FALSE,TRUE) ;
2020/7/16
7.2 Moore型有限状态机的设计
7.2.1 三进程有限状态机
表7-1 AD574逻辑控制真值表(X表示任意)
2020/7/16
6.1 一般有限状态机的设计
6.1.3 一般有限状态机的设计
1. 说明部分 2. 主控时序进程
ARCHITECTURE ...IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state:
FSM_ST; ...
BEGIN
REG: PROCESS (reset,clk)
BEGIN
IF reset = '1' THEN current_state <= s0;
ELSIF clk='1' AND clk'EVENT THEN
current_state <= next_state;
END IF;
END PROCESS;
CO20M2:0/7P/1R6OCESS(current_state, state_Inputs)
接下页
接上页
BEGIN CASE current_state IS WHEN s0 => comb_outputs<= 5; IF state_inputs = "00" THEN next_state<=s0; ELSE next_state<=s1; END IF; WHEN s1 => comb_outputs<= 8; IF state_inputs = "00" THEN next_state<=s1; ELSE next_state<=s2; END IF; WHEN s2 => comb_outputs<= 12; IF state_inputs = "11" THEN next_state <= s0; ELSE next_state <= s3; END IF; WHEN s3 => comb_outputs <= 14; IF state_inputs = "11" THEN next_state <= s3; ELSE next_state <= s0; END IF; END case;
SUBTYPE digits IS INTEGER RANGE 0 to 9 ;
2020/7/16
7.1 一般有限状态机的设计
7.1.2 为什么要使用状态机
有限状态机克服了纯硬件数字系统顺序方式控制不灵活 的缺点。 状态机的结构模式相对简单。 状态机容易构成性能良好的同步时序逻辑模块。 状态机的VHDL表述丰富多样。 在高速运算和控制方面,状态机更有其巨大的优势。 就可靠性而言,状态机的优势也是十分明显的。