1
实 验 9 状 态 机 及 键 盘 输 入
2
目 录
预习部分
3
11 基础知识与相关定义.................................................3
1.2 预习任务 ......................................................
3
2
实验目的 5
3 实验原理 5
4 实验设备环境 6
实验步骤和过程
6
5.1 设计思路 ......................................................... 6
5.2
设计代码 ......................................................... 7
5.3 测试代码 .........................................................10
5.3.1 仿真结果 ...................................................10
5.4 硬件实现 ......................................................... 11
5.4.1
引脚分配 ...................................................11
5.4.2
开发板实现截图 ............................................. 12
6 拓展部分
15
7 实验中遇到的问题及解决方案
16
8 实验得到的启示 16
总绸
16
3
1 预习部分
1.1 基础知识与相关定义
首先我们给出有限状态机的定义:
有限状态机 FSM(Finite State Machine) 简称状态机,是一个在有限个状
态间进行转换和动作的计算模型。有限状态机含有一个起始状态、 一个输入列
表 ( 列表中包含了所有可能的输入信号序列)、 一个状态转移函数和一个输出
端,状态机在工作时由状态转移函数根据当前状态和输入信号确定下一个状态
和输出。状态机一般都从起始状态开始,根据输入信号由状态转移函数决定状
态机的下一个状态。
有限状态机是数字电路系统中一种十分重要的电路模块, 是一种输出取 决
于过去输入和当前输入的时序逻辑电路,他是组合逻辑电路和时序逻辑电路的
种组合。其中组合逻辑分为两个部分, 一个是用于产生有限状态机下一个状
态的次态逻辑,另一个是用于产生输出信号的输出逻辑, 次态逻辑的功能是确
定有限状态机的下一个状态;输出逻辑的功能是确定有限状态机的输出。除了
输入和输出外,状态机还有一组具有“记忆”功能的寄存器,这些寄存器的功能
是记忆有限状态机的内部状态,常被称作状态寄存器。
1.2 预习任务
我们要先理解原理,才能开始实验,先看时序图:
4
图8-2:FSM 的时序图
我们可以很容易的理解状态机的设计思路和大概设计过程,首先是理解状态机的工作原
理,然后是画出状态机的时序图(当然也可以根据需要对等价的状态进行化简),然后是对每
一个状态进行编码(编码其实也是有讲究的,正如PDF 所述在FPGA 上多采用独热码编码方式,
因为FPGA的触发器资源十分的丰富),最后就是写代码了。
W=0
B/0
W=0|
C/0
w=ol
D/0
W=0|
0| E/1
Reset
A/0
1
0
以
1
\W=1
F/0
1
G/0
1
H/0
1
I/1
\0
Q
5
请设计一个区别两种特定时序的有限状态机 FSM:
该有限状态机有一个输
入w 和一个输出 z 。当 w 是4个连续的0或4个连续的1时,输出z=1, 否则
z=0, 时序允许重叠。即:若 w 是连续的5个1时,则在第4个和第5个时钟
之后,z 均为1。图8-1是这个有限状态机的时序图。
图8-1:FSM 的时序图
通过预习了解到状态机的设计思路,我需要对PDF上的状态机进行仿真:
任务来了.
建立一个 Verilog
文件,用SW0 作为FSM 低电平有效同步复位端,用
SW1作为输入w, 用KEYO作为手动的时钟输入,用LEDRO 作为输出 z, 用
LEDR4-LEDR7
显示4个触发器的状态,完成该状态机的具体设计。
预习过程中注意到本次实验有很多细节不好处理:
在实际物理键盘测试时,健议先将收到的每个键码用2个七段显示显示出
来。 开发板上的6个七段显示可以显示三位键码,可以每次将前面收到的键码
左移,这样可以看到前三个键码。需要认直反复测试,确保没有丢键码,重复
键码的情况。例如按下并放开“A” 键一次,七段显示上应该显示“1CF01C”。
2 实验目的
1. 本实验的目的是学习状态机的工作原理.
2. 了解状态机的编码方式,并利用PS/2键盘输入实现简单状态机的设计,并且理解状态机的时
序工作原理.
3 .能在代码出现bug的时候应用时序原理定位并修复bug.
3 实验原理
有限状态机 FSM(FiniteStateMachine) 简称状态机,是一个在有限个状态间进行转换和