1、实验三状态机实现序列检测器设计FPGA课程报告设计题目:状态机实现序列检测器设计学生班级:学生学号:学生姓名:指导教师:时 间:成 绩: 一、实验目的:1. 理解有限状态机的概念;2. 掌握有限状态机的状态图的画法及其含义二、实验原理:本次实验的内容是:应用有限状态机设计思路,检测输入的串行数据是否是”11100101”,本次实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成。1. 并行数据转串行数据模块功能是:可以异步复位,可以在时钟控制下,将并行输入数据din7:0,按照din7,din6,din5,din4,din3,din2,din1,din0的顺序输出至串行检测模块的输
2、入端口din。2. 串行检测模块:输入信号:DIN-1bit的串行输入数据 CLK-同步输入时钟CLR -异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作输出信号: AB-4bits数据,如果系统检测到“11100101”这8bit的输入,AB=4b1010,否则,AB=4b1011.三、实验过程:1.首先建立一个新的工程,添加一个新的Verilog Module文件,然后写入并行数据转串行数据模块的代码,代码如下:然后执行综合,确认无误后,新建一个Test Bench WaveForm文件,进行仿真,仿真图如下:2.再新建一个Verilog Module文件,在其中写入串行检测模
3、块的代码,代码如下: 然后执行综合,确认无误后,新建一个Test Bench WaveForm文件,进行仿真,仿真图如下:3. 再新建一个Verilog Module文件,数码管显示模块的代码,代码如下:然后执行综合,确认无误后,新建一个Test Bench WaveForm文件,进行仿真,仿真图如下:4.编写顶层文件,将上面三个模块例化在一起,代码如下:然后将新的顶层文件经行综合,确认无误后,新建一个Test Bench WaveForm文件,进行仿真,仿真图如下:5.添加消抖模块,然后编写新的顶层文件,将消抖模块与上面的模块例化在一起,代码如下:保存后生成新的顶层文件:6.完成以上操作后,执行综合确认无误,经行锁引脚操作:锁引脚完成后,编辑、修改约束文件:7. 生成下载配置文件,下载到开发板进行经行验证。 四、思考题:说明本设计的代码表达的是什么类型的状态机,它的优点是什么?详述其功能和对序列数检测的逻辑过程答:本实验代码表达的是Mealy型状态机, Mealy有限状态机的输出不单与当前状态有关,而且与输入信号的当前值有关,Mealy有限状态机的输出直接受输入信号的当前值影响,而输入信号可能在一个时钟周期内任意时刻变化,这使得Mealy有限状态机对输入的响应发生在当前时钟周期。 (注:可编辑下载,若有不当之处,请指正,谢谢!)