实验三:状态机实现序列检测器设计

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

《FPGA》课程报告

设计题目:状态机实现序列检测器设计学生班级:

学生学号:

学生姓名:

指导教师:

时间:

成绩:

一、实验目的:

1.理解有限状态机的概念;

2. 掌握有限状态机的状态图的画法及其含义

二、实验原理:

本次实验的内容是:应用有限状态机设计思路,检测输入的串行数据是否是”11100101”,本次实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成。

1.并行数据转串行数据模块功能是:可以异步复位,可以在时钟控制下,将并行输入数据din[7:0],按照din[7],din[6],din[5],din[4],din[3],din[2],din[1],din[0]的顺序输出至串行检测模块的输入端口din。

2.串行检测模块:

输入信号:DIN-----1bit的串行输入数据

CLK-----同步输入时钟

CLR ------异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作

输出信号:AB--------4bits数据,如果系统检测到“11100101”这8bit 的输入,AB=4’b1010,否则,AB=4’b1011.

三、实验过程:

1.首先建立一个新的工程,添加一个新的Verilog Module文件,然后写入并行数据转串行数据模块的代码,代码如下:

进行仿真,仿真图如下:

2.再新建一个Verilog Module文件,在其中写入串行检测模块的代码,代码如下:

进行仿真,仿真图如下:

3. 再新建一个Verilog Module文件,数码管显示模块的代码,代码如下:

然后执行综合,确认无误后,新建一个Test Bench WaveForm文件,进行仿真,仿真图如下:

4.编写顶层文件,将上面三个模块例化在一起,代码如下:

然后将新的顶层文件经行综合,确认无误后,新建一个Test Bench WaveForm文件,进行仿真,仿真图如下:

5.添加消抖模块,然后编写新的顶层文件,将消抖模块与上面的模块例化在一起,代码如下:

保存后生成新的顶层文件:

6.完成以上操作后,执行综合确认无误,经行锁引脚操作:

锁引脚完成后,编辑、修改约束文件:

7. 生成下载配置文件,下载到开发板进行经行验证。

四、思考题:

说明本设计的代码表达的是什么类型的状态机,它的优点是什么?详述其功能和对序列数检测的逻辑过程

答:本实验代码表达的是Mealy型状态机,Mealy有限状态机的输出不单与当前状态有关,而且与输入信号的当前值有关,Mealy有限状态机的输出直接受输入信号的当前值影响,而输入信号可能在一个时钟周期内任意时刻变化,这使得Mealy有限状态机对输入的响应发生在当前时钟周期。

相关文档
最新文档