文档详情

状态机实验报告.doc

发布:2023-10-29约2.01万字共27页下载文档
文本预览下载声明
状态机实验 一、实验目的与实验要求(可以有多个目标及要求,对应多个实验内容) 1、实验目的 本实验的目的是学习Moore型和Mealy型状态机的设计、状态机的编写以及在数字系统设计中的应用。 2、实验要求 在实验报告中提交状态图或者算法流程状态图,系统级模块图、设计代码、仿真程序、仿真结果截图、实测验证结果照片。 提交实验报告和每个实验的完整工程文件。 二、实验设备(环境)及要求 (1) Xilinx Ego1 实验平台。 (2) OS:Win7 64 位 (3) Software:Vivado15.4 开发工具 三、实验内容与步骤 1、实验1 (1)实验内容: 验证1101序列(Mealy):按照“5 实验步骤——验证1101序列(Mealy型)”完成状态机的设计与仿真验证; 状态机: 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。状态机简写为FSM(Finite State Machine),主要分为两大类: 第一类,若输出只和状态有关而与输入无关,则称为Moore状态机 第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机 状态图: 当需要定义一个状态机时,首先要绘制一张状态图。状态图可用来显示状态、状态间的转换和状态机的输出。图1显示了Moore状态机的状态图(左)和Mealy状态机的状态图(右)。 图1 用于开/关LED的Moore状态机(左)和Mealy状态机(右)的状态图。  如果您要在物理组件中实现这些状态图(工程师在FPGA问世之前就是这么做的),首先就得生成当前状态和后续状态表,然后生成实现状态机所需的逻辑。不过由于我们将使用FPGA来实现设计,因此我们可以直接从状态转换图开始工作。 算法状态图: 虽然有许多状态机是使用图1所示的状态图方法进行设计的,但另外还有一种描述状态机行为的方法,这就是算法状态图法。ASM图(图2)在外观上更加接近软件工程流程图。它由三个基本部分构成: 1. 状态框。它与状态名称有关,并包含Moore状态输出列表。 2. 决策框。如果检验某条件为真,则进行下一状态的判断。 3. 条件输出框。让状态机根据当前状态和输入描述Mealy输出。   图2 用于图1所示的状态机(Moore状态机(左),Mealy状态机(右))的算法状态图。 (2)实验步骤: 新建工程, fsm_mealy即为Mealy型状态机工程文件 Fsm_mealy状态机模块代码: `timescale 1ns / 1psmodule fsm_mealy( `timescale 1ns / 1ps module fsm_mealy( input wire clk, input wire clr, input wire din, output reg dout ); reg [1:0]present_state,next_state; parameter S0=3b00,S1=3b01,S2=3b10,S3=3b11; always @(posedge clk or posedge clr) begin if(clr) present_state=S0; else present_state=next_state; end always @(*) begin case(present_state) S0:if(din) next_state=S1; else next_state=S0; S1:if(din) next_state=S2; else next_state=S0; S2:if(din) next_state=S2; else next_state=S3; S3:if(din) next_state=S1; else next_state=S0; default: next_state=S0;
显示全部
相似文档