版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*大学实验报告课程名称: 基于FPGA的现代数字系统设计 实验名称: 用状态机实现序列检测器的设计 姓 名: * 学 号: * 班 级: 电子* 指导教师: * *信息工程学院2一、实验原理1、 实验内容: 应用有限状态机设计思路,检测输入的串行数据是否是”01111000”。 拟用SW3-SW0,J4接口的E8,F8,C7,D7作为系统输入(系统由此需要设计一个8bits并行数据转串行的模块) 一个7段数码显示译码器作为检测结果的输出显示,如果串行序列为”11100101”,显示a,否则显示b(系统需要设计一个7段数码显示译码器模块) 为了显示可控,清晰,拟用V16,D18实现时钟,复位信号
2、的输入。本实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成 2、要求:系统主要包括3个模块:1)并行数据转串行数据模块(xulie.v)2)串行检测模块(schk.v)3)数码管显示模块(decled7s .v) 于需要用按键V16作为时钟输入,按键D18作为系统复位输入,所以需调用实验二中应用的消抖模块,对两个按键输入信号进行消抖。 并行数据转串行数据模块(xulie.v),串行检测模块(schk.v)均采用有限状态机的描述方式。 并行数据转串行数据模块(xulie.v)功能描述: 可以异步复位,可以在时钟控制下,将并行输入数据din7:0,按照din7,din6,din5,
3、din4,din3,din2,din1,din0的顺序输出至串行检测模块的输入端口din。 根据设计要求,先画出并行数据转串行数据模块的状态转移图,并写出HDL代码。 比较实验指导书提供并行数据转串行数据模块的参考代码,总结有限状态机的HDL设计方法。 串行检测模块(schk.v)输入信号:DIN-1bit的串行输入数据 CLK-同步输入时钟 CLR -异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作输出信号:AB-4bits数据,如果系统检测到“01111000”这8bit的输入,AB=4b1010,否则,AB=4b1011. 串行检测模块(schk.v) 画出串行检测模块(sc
4、hk.v)的状态转移图,并自行设计HDL源代码。 用Verilog HDL设计数码管驱动电路、系统顶层电路。3、数码管显示驱动模块(led.v)输入:AB3:0 -待显示的数值输出:Q6:0 -驱动数码管的七位数值表2-1 共阳极数码管驱动模块输入与输出关系表输入(4bits)输出(7bits)显示内容4b1010 7b 1110111 a 4b1011 7b1111100 b 4b0000 7b1000000 0 4、消抖 (1)按键抖动的产生原因:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断
5、开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。图2-3 按键抖动波形图(2)本次实验提供的消抖模块简介图2-4 消抖模块框图电平检查模块:检测输入的按键是否被按下或者释放,并分别将H2L_Sig,L2H_Sig拉高,并随后拉低,给出按键的操作信息。延时模块:对输入的信号变化时刻进行计时并观察信号的变换情况,对输出端口进行恰当地赋值。二、实验步骤1、建立工程:file-New Project。 2、建立新Verilog HDL模块编辑窗口,按并行数据转串行数据模块(xulie.v),串行检测模块(schk.v),数码管显示模块(decled7s .v)
6、的目标要求进行设计,模块在综合后,采用画波形的方式编辑测试激励波形,对相关模块进行功能仿真,实现模块的验证、修正。 3、L组合为一个模块,完成综合、功能仿真,分析波形,修正设计。 4、拷贝消抖模块代码:debounce_module.v,delay_module.v,detect_module.v,组合完成消抖模块。5、将消抖模块组合入系统综合,不仿真。6、硬件测试平台设计。7、顶层模块完成后,双击Implement Design,进行布局布线,双击Generate Programming File生成下载文件,双击Configure Target Device,按照提示完成下载。8、下载后,
7、改变拨动开关和按键,观察结果。9、使用chipscope片内逻辑分析仪对设计进行硬件调试,验证设计是否正确。掌握该调试方法和调试步骤。三、实验结果及分析1、数码管驱动模块(led.v)module decled7s(AB,Q);input 3:0AB;output 6:0Q;reg 6:0 Q=7b1000000;always(AB)beginif(AB = 4b1010) Q = 7b1110111; /输出Aelse Q = 7b1111100;/输出Bendendmodule1.1 数码管驱动综合1.2 数码管驱动仿真2、并行数据转串行数据模块(xulie.v)module xulie(
8、DIN8,CLK,CLR,DIN);input CLK,CLR;input 7:0DIN8;output DIN;reg 2:0 cur_state,next_state;reg DIN;parameter s0 = 3b000,s1 = 3b001,s2 = 3b010,s3 = 3b011,s4 = 3b100,s5 = 3b101,s6 = 3b110,s7 = 3b111;always (posedge CLK or posedge CLR)beginif(CLR) cur_state = s0;else cur_state = next_state;endalways (cur_st
9、ate or DIN8 or DIN )begin case (cur_state) s0 : begin DIN = DIN87; next_state = s1; end s1 : begin DIN = DIN86; next_state = s2; end s2 : begin DIN = DIN85; next_state = s3; end s3 : begin DIN = DIN84; next_state = s4; end s4 : begin DIN = DIN83; next_state = s5; end s5 : begin DIN = DIN82; next_sta
10、te = s6; end s6 : begin DIN = DIN81; next_state = s7; end s7 : begin DIN = DIN80; next_state = s0; end default : beginDIN = 1b0;next_state = s0; endendcase endendmodule2.1并行数据转串行数据综合2.2并行数据转串行数据仿真3、串行检测模块(schk.v)module schk(DIN,CLK,CLR,AB);input DIN,CLK,CLR;output3:0 AB;reg 3:0 cur_state,next_state;
11、reg 3:0 AB=4b0000;parameter idle = 4b0000,s1 = 4b0001,s2 = 4b0010,s3 = 4b0011,s4 = 4b0100,s5 = 4b0101,s6 = 4b0110,s7 = 4b0111,s8 = 4b1000;always (posedge CLK or posedge CLR)beginif(CLR) cur_state = idle;else cur_state = next_state;endalways (cur_state or DIN)begincase(cur_state)idle: begin AB = 4b10
12、11;if(DIN=1b0) next_state = s1;else next_state = s1;end s1: beginAB = 4b1011;if(DIN=1b1) next_state = s2;else next_state = s1; ends2: beginAB = 4b1011;if(DIN=1b1) next_state = s3;else next_state = s1; ends3: beginAB = 4b1011;if(DIN=1b1) next_state = s3;else next_state = s1; ends4: beginAB = 4b1011;i
13、f(DIN=1b1) next_state = s5;else next_state = s1; ends5: beginAB = 4b1011;if(DIN=1b0) next_state = s6;else next_state = idle; ends6: beginAB = 4b1011;if(DIN=1b0) next_state = s7;else next_state = s2; ends7: beginif(DIN=1b0)beginAB = 4b1010;next_state = s8;endelse begin next_state = s2; AB = 4b1011; e
14、nd ends8: beginAB = 4b1011;if(DIN=1b1) next_state = s2;else next_state = s1; enddefault : next_state = idle;endcaseendendmodule3.1 串行检测模块综合仿真4、xulieqi组合模块module xulieqi(DIN8,CLK,CLR,Q);input CLK,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.1 xulieqi组合模块综合仿真5、加入消抖模块module StaMachine(CLK_50,CLK,CLR,DIN8,Q);input CLK_50,CLK,CLR;input 7:0DIN8;output 6:0Q;wire CLK_OUT;debounce_module u1(CLK_50,CLR,CLK,CLK_OUT);xulieqi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安徽省选调生招录考试参考题库及答案解析
- 2026湖南长沙市开福区教育局北辰第一幼儿园招聘笔试模拟试题及答案解析
- 2026福建漳龙集团有限公司招聘1人考试参考题库及答案解析
- 2026云南昆明市寻甸回族彝族自治县档案馆城镇公益性岗位招聘2人考试参考题库及答案解析
- 2026陕西西安市高陵区残疾人专职委员选聘3人考试备考题库及答案解析
- 2026四川德阳市广汉市广电文化传媒有限责任公司招聘6人考试备考试题及答案解析
- 河南洛阳格力2026届大学生校园招聘考试备考试题及答案解析
- 2026年温州外国语高级中学(温州中学国际部)招聘教师备考题库及答案详解一套
- 2026年柳州市航鹰中学招聘道德与法治教师备考题库及参考答案详解
- 2026年绍兴市妇幼保健院公开招聘编外工作人员备考题库有答案详解
- 2026浙江宁波市江北区城市建设投资发展有限公司及下属子公司招聘7人笔试模拟试题及答案解析
- 2026年雅安职业技术学院单招综合素质考试备考题库带答案解析
- 2026年三亚交投产业发展有限公司招聘备考题库及参考答案详解
- 2025下半年江南大学管理岗、其他专技岗招聘31人笔试考试参考题库及答案解析
- 2025年上半年山西孝柳铁路有限责任公司校招笔试题带答案
- qdslrdashboard应用软件使用说明
- 2023年全国高考体育单招文化考试数学试卷真题及答案
- GB/T 28733-2012固体生物质燃料全水分测定方法
- GB/T 18591-2001焊接预热温度、道间温度及预热维持温度的测量指南
- GB/T 14404-2011剪板机精度
- 《中小学教育惩戒规则(试行)》全文
评论
0/150
提交评论