实验三:状态机实现序列检测器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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有限状态机对输入的响应发生在当前时钟周期。