FPGA实验3报告_第1页
FPGA实验3报告_第2页
FPGA实验3报告_第3页
FPGA实验3报告_第4页
FPGA实验3报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西南科技大学实验报告课程名称: 基于FPGA的现代数字系统设计 实验名称:用状态机实现序列检测器的设计 姓 名: 学 号: 班 级: 通信1301 指导教师: 刘桂华 西南科技大学信息工程学院制2用状态机实现序列检测器的设计一、 实验目的用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。二、 实验原理:1、 实验总体原理说明序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出A,否则输出b。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的

2、检测中所收到的每一位码都与预置数的对应码相同。本实验中对序列111000进行检测2、 实验模块组成本实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成顶层模块并转串模块串行检测模块数码管显示模块并行6bits数据串行数据4bits数据7bits数据ClkReset由于需要用按键K2作为时钟输入,为保证实验效果,调用实验二中应用的消抖模块,对时钟clk输入信号进行消抖。3、 模块具体功能(1) 并行数据转串行数据模块(xulie.v):功能描述:采取异步复位,在时钟控制下,将并行输入数据din65:0,按照din5,din4,din3,din2,din1,din0的顺序输出至串行检

3、测模块的输入端口din。输入端口:clk-系统时钟,由按键K2通过消抖模块后提供din6-6bits输入数据,需在时钟控制下,串行输出reset-系统复位信号,当reset=1b1时,系统输出复位,否则系统正常工作输出端口:din-1bit输出信号(2) 串行检测模块(schk.v)功能描述:检测序列111000,若检测到,则AB输出1010,否则输出1011。输入信号:DIN-1bit的串行输入数据CLK-同步输入时钟CLR -异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作输出信号:AB-4bits数据,如果系统检测到6b100101的串行输入,AB=4b1010,否则,AB=

4、4b1011(3) 数码管显示模块显示V和B的状态。输入端口:AB-4 bits数据输出端口:Led7-7 bits数据,用于控制数码管显示三个状态真值表如下:输入(4bits)输出(7bits)显示内容4b10107b 0001000a4b10117b0000011b4b00007b10000000三、 实验步骤1、 构建一个工程名为XULIEQI的工程2、 设计输入及综合与仿真(1) 并行数据转串行数据模块(xulie.v)代码编写:module xulie(clk,din6,reset,din);input clk;input 5:0 din6;input reset;output di

5、n;parameters0 = 3'b000,s1 = 3'b001,s2 = 3'b010,s3 = 3'b011,s4 = 3'b100,s5 = 3'b101,s6 = 3'b110;reg 2:0 cur_state,next_state;reg din;always (posedge clk or posedge reset )if (reset)cur_state <= s0;elsecur_state <= next_state;always (cur_state or din6 or din)begincase

6、 (cur_state)s0 : begindin <= din65;next_state <= s1;ends1 : begindin <= din64;next_state <= s2;ends2 : begindin <= din63;next_state <= s3;ends3 : begindin <= din62;next_state <= s4;ends4 : begindin <= din61;next_state <= s5;ends5 : begindin <= din60;next_state <=

7、s6;enddefault : begindin <= 1'b0;next_state <= s0; endendcaseendendmodule对该模块进行综合,通过后进行波形仿真:仿真波形输入设计:得到的波形仿真图如下图(2) 串行检测模块设计代码编写:module schk(clk,din,reset,AB);input din,clk,reset;output 3:0 AB;parameters0 = 3'b000,s1 = 3'b001,s2 = 3'b010,s3 = 3'b011,s4 = 3'b100,s5 = 3&#

8、39;b101,s6 = 3'b110;reg 2:0 cur_state,next_state;reg 3:0 AB;always (posedge clk or posedge reset)if(reset)cur_state <= s0;elsecur_state <= next_state;always (cur_state or din)beginAB<=4'b1011;case (cur_state)s0 : next_state<=din?s1:s0;s1 : next_state<=din?s2:s0;s2 : next_state

9、<=din?s3:s0;s3 : next_state<=din?s3:s4;s4 : next_state<=din?s1:s5;s5 : next_state<=din?s1:s6;s6 : beginAB<=4'b1010;if(din) begin next_state<=s0;endelse next_state<=s1; endendcaseendendmoduleendendmodule对其进行综合,然后进行功能仿真,结果如下:(3) 数码管显示模块代码编写:module decled7s(AB,led7s);input 3:0

10、AB;output 6:0 led7s;reg 6:0 led7s;always (AB)begincase (AB)4'b1010 : led7s 6:0 = 7'b0001000;4'b1011 : led7s 6:0 = 7'b0000011;default : led7s 6:0 = 7'b0;endcaseendendmodule对其进行综合,然后进行功能仿真,结果如下:(4) 将以上三个模块综合在一起,得到三个模块的顶层,代码如下:module xi(clk,reset,din6,led7s);input clk,reset;input 5:

11、0 din6;output 6:0 led7s;wire 3:0 AB;wire din;xulie u1 (clk,din6,reset,din);schk u2 (clk,din,reset,AB);decled7s u3 (AB,led7s);endmodule对其进行综合后,进行功能仿真,波形如下:(5) 加入消抖模块后,对顶层模块进行设计如下:再对其进行综合,成功后进行下一步操作。3、 引脚约束:4、 下载到FPGA实验板,进行功能验证。四、 实验结果及分析1、 并转串模块波形分析:din端都在clk脉冲信号的激励下,从din5开水输出,一个高电平reset信号后,输出回到初始状态,

12、然后又从din5开始输出,din5:0=111000,din的输出一次为111000,显然符合功能要求。2、 序列检测模块波形分析:当din输出依次为111000时,在第六个时钟信号来时,输出AB由1011变化为了1010,第七个时钟来时,又回到了1011;3、 数码管译码模块波形分析:当输入AB为1010时,输出Led76:0= 7'b0001000;当输入为1011时,输出为Led76:0= 7'b0000011;显然与真值表对应。4、 这三个模块组成的模块波形分析:当din6:0一直置为111000时,复位后,在第六个时钟脉冲到来后,Led输出由7'b000001

13、1变为7'b 0001000,显然是正确的。5、 综合报告:五、 实验思考题解答(实验指导书要求的思考题)1、 说明本设计的代码表达的是什么类型的状态机,它的优点是什么?详述其功能和对序列数检测的逻辑过程本实验的的设计源代码表达的是穆尔类型的状态机。优点:输出信号仅与他的当前状态有关。Reset=0时,每来一个时钟信号,对当前状态做一次检测,若检测到序列恰为111000,则输出AB为1011(b),否则为1010(A)。比如第一时钟信号时,检测到序列来了一个1,转化的第1个转态,第一个转态的输出为1011,故AB输出1011,以此类推。当出现一个高电平复位信号reset,则返回到初始状态,即没有检测到任何111000序列的状态,输出1011。六、 体会1、 通过实验,我对数字电路状态机有了进一步的加深与理解,对于在FPGA的状态机的编写与应用有了初步的认识。2、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论