FPGA用状态机实现序列检测器地设计_第1页
FPGA用状态机实现序列检测器地设计_第2页
FPGA用状态机实现序列检测器地设计_第3页
FPGA用状态机实现序列检测器地设计_第4页
FPGA用状态机实现序列检测器地设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

实用文案******大学实验报告课程名称: 基于FPGA的现代数字系统设计实验名称: 用状态机实现序列检测器的设计姓 名: ******标准文档实用文案学 号: **********班 级: 电子******指导教师: ************* 信息工程学院标准文档实用文案一、实验原理1、实验内容:应用有限状态机设计思路,检测输入的串行数据是否是” 01111000 ”。拟用SW3---SW0 ,J4接口的E8,F8,C7,D7 作为系统输入(系统由此需要设计一个 8bits并行数据转串行的模块)一个7段数码显示译码器作为检测结果的输出显示,如果串行序列为” 11100101 ”,显示a,否则显示 b(系统需要设计一个 7段数码显示译码器模块)为了显示可控,清晰,拟用 V16,D18 实现时钟,复位信号的输入。本实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成2、要求:系统主要包括 3个模块:1)并行数据转串行数据模块( xulie.v)2)串行检测模块( schk.v)3)数码管显示模块( decled7s.v )于需要用按键 V16作为时钟输入,按键 D18作为系统复位输入,所以需调用实验二中应用的消抖模块,对两个按键输入信号进行消抖。? 并行数据转串行数据模块( xulie.v),串行检测模块( schk.v)均采用有限状态机的描述方式。? 并行数据转串行数据模块( xulie.v)功能描述:标准文档实用文案可以异步复位,可以在时钟控制下, 将并行输入数据 din[7:0] ,按照din[7],din[6],din[5],din[4],din[3],din[2],din[1],din[0]的顺序输出至串行检测模块的输入端口 din。? 根据设计要求,先画出并行数据转串行数据模块的状态转移图,并写出 HDL代码。? 比较实验指导书提供并行数据转串行数据模块的参考代码,总结有限状态机的 HDL设计方法。串行检测模块(schk.v)输入信号:DIN-----1bit的串行输入数据CLK----- 同步输入时钟CLR------ 异步清零信号,当 CLR=1,系统输出置 0,否则,系统正常工作输出信号:AB--------4bits 数据,如果系统检测到“ 01111000 ”这8bit 的输入,AB=4’b1010,否则,AB=4’b1011.串行检测模块(schk.v)? 画出串行检测模块( schk.v)的状态转移图,并自行设计 HDL源代码。用VerilogHDL设计数码管驱动电路、系统顶层电路。3、数码管显示驱动模块( led.v)输入:AB[3:0] ------- 待显示的数值输出:Q[6:0]---------- 驱动数码管的七位数值表2-1 共阳极数码管驱动模块输入与输出关系表输入(4bits) 输出(7bits) 显示内容4’b1010 7’b1110111 a4’b1011 7’b1111100 b标准文档实用文案4’b0000 7’b1000000 0、消抖1)按键抖动的产生原因:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。图2-3 按键抖动波形图(2)本次实验提供的消抖模块简介图2-4 消抖模块框图电平检查模块: 检测输入的按键是否被按下或者释放, 并分别将 H2L_Sig,L2H_Sig 拉高,并随后拉标准文档实用文案低,给出按键的操作信息。延时模块:对输入的信号变化时刻进行计时并观察信号的变换情况,对输出端口进行恰当地赋值。二、实验步骤1、建立工程:file->NewProject 。2、建立新 Verilog HDL 模块编辑窗口,按并行数据转串行数据模块( xulie.v),串行检测模块schk.v),数码管显示模块(decled7s.v)的目标要求进行设计,模块在综合后,采用画波形的方式编辑测试激励波形,对相关模块进行功能仿真,实现模块的验证、修正。标准文档实用文案3、L组合为一个模块,完成综合、功能仿真,分析波形,修正设计。4、拷贝消抖模块代码: debounce_module.v ,delay_module.v ,detect_module.v ,组合完成消抖模块。5、将消抖模块组合入系统综合,不仿真。6、硬件测试平台设计。7、顶层模块完成后,双击ImplementDesign,进行布局布线,双击GenerateProgrammingFile生成下载文件,双击ConfigureTargetDevice,按照提示完成下载。、下载后,改变拨动开关和按键,观察结果。、使用chipscope片内逻辑分析仪对设计进行硬件调试,验证设计是否正确。掌握该调试方法和调试步骤。三、实验结果及分析1、数码管驱动模块 (led.v)moduledecled7s(AB,Q);input[3:0]AB;output[6:0]Q;reg[6:0]Q=7'b1000000;always@(AB)beginif(AB==4'b1010)Q<=7'b1110111;// 输出AelseQ<=7'b1111100;// 输出B标准文档实用文案endendmodule1.1 数码管驱动综合1.2 数码管驱动仿真标准文档实用文案2、并行数据转串行数据模块( xulie.v )modulexulie(DIN8,CLK,CLR,DIN);inputCLK,CLR;input[7:0]DIN8;outputDIN;reg[2:0]cur_state,next_state;regDIN;parameters0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always@(posedgeCLKorposedgeCLR)beginif(CLR) cur_state<=s0;else cur_state<=next_state;标准文档实用文案endalways@(cur_stateorDIN8orDIN)begincase(cur_state)s0:beginDIN<=DIN8[7];next_state<=s1;ends1:beginDIN<=DIN8[6];next_state<=s2;ends2:beginDIN<=DIN8[5];next_state<=s3;ends3:beginDIN<=DIN8[4];next_state<=s4;ends4:beginDIN<=DIN8[3];next_state<=s5;标准文档实用文案ends5:beginDIN<=DIN8[2];next_state<=s6;ends6:beginDIN<=DIN8[1];next_state<=s7;ends7:beginDIN<=DIN8[0];next_state<=s0;enddefault:beginDIN<=1'b0;next_state<=s0;endendcaseendendmodule2.1并行数据转串行数据综合标准文档实用文案2.2并行数据转串行数据仿真标准文档实用文案3、串行检测模块( schk.v)moduleschk(DIN,CLK,CLR,AB);inputDIN,CLK,CLR;output[3:0]AB;reg[3:0]cur_state,next_state;reg[3:0]AB=4'b0000;parameteridle=4'b0000,s1=4'b0001,s2=4'b0010,s3=4'b0011,s4=4'b0100,标准文档实用文案s5=4'b0101,s6=4'b0110,s7=4'b0111,s8=4'b1000;always@(posedgeCLKorposedgeCLR)beginif(CLR)cur_state<=idle;elsecur_state<=next_state;endalways@(cur_stateorDIN)begincase(cur_state)idle: beginAB<=4'b1011;if(DIN==1'b0)next_state<=s1;elsenext_state<=s1;ends1:beginAB<=4'b1011;if(DIN==1'b1)next_state<=s2;elsenext_state<=s1;end标准文档实用文案s2:beginAB<=4'b1011;if(DIN==1'b1)next_state<=s3;elsenext_state<=s1;ends3:beginAB<=4'b1011;if(DIN==1'b1)next_state<=s3;elsenext_state<=s1;ends4:beginAB<=4'b1011;if(DIN==1'b1)next_state<=s5;elsenext_state<=s1;ends5:beginAB<=4'b1011;if(DIN==1'b0)next_state<=s6;elsenext_state<=idle;ends6:beginAB<=4'b1011;if(DIN==1'b0)next_state<=s7;标准文档实用文案elsenext_state<=s2;ends7:beginif(DIN==1'b0)beginAB<=4'b1010;next_state<=s8;endelsebeginnext_state<=s2;AB<=4'b1011;endends8:beginAB<=4'b1011;if(DIN==1'b1)next_state<=s2;elsenext_state<=s1;enddefault:next_state<=idle;endcaseendendmodule标准文档实用文案3.1串行检测模块综合仿真4、xulieqi 组合模块modulexulieqi(DIN8,CLK,CLR,Q);inputCLK,CLR;input[7:0]DIN8;output[6:0]Q;wire[3:0]AB;标准文档实用文案xulie u1(.DIN8(DIN8),.CLK(CLK),.CLR(CLR),.DIN(DIN));schk u2(.CLR(CLR),.DIN(DIN),.AB(AB));decled7s u3(.AB(AB),.Q(Q));endmodule4.1xulieqi 组合模块综合仿真、加入消抖模块moduleStaMachine(CLK_50,CLK,CLR,DIN8,Q);标准文档实用文案inputCLK_50,CLK,CLR;input[7:0]DIN8;output[6:0]Q;wireCLK_OUT;debounce_moduleu1(CLK_50,CLR,CLK,CLK_OUT)

温馨提示

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

评论

0/150

提交评论