付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河海大学物联网工程学院Verilog HDL项目设计报告题目拔河游戏机专业电子科学与技术学号 1562910123、1562910125授课班号学生 徐子豪、诗欣 指导教师齐本胜摘要和关键字为了掌握数字系统的设计方法,掌握硬件描述语言VerilogHDL,掌握模块化设计方法,掌握开发软件的使用方法。选择基于FPGA开发板设计的拔河游戏机,使用两个按键进行比赛, 利用按键按下的快慢作为模拟的双方选手拔河过程,led灯的变 化决定绳子的位置,led灯到了一边以后比赛终止,整个过程的 难点在于,需要过滤信号,使按键产生的信号稳定,所以程序中 需要有按键消抖模块,同时需标识符来控制比赛的开始与结束。关
2、键词:ver i log 拔河比赛消抖模块标识符I n order to mas ter the des i gn met hod of d i g ital system, we must master the hardware descr i ption Ianguage 一一 Ver iIog HDL, grasp the modu I ar des i gn met hod and mas ter the way of developing software. ChoiceTug of war game FPGA deve I opment board based on the des
3、 i gn, the use of two button game, us i ng key press speed as bothp I ayers tug of war of Simulation, change I ed I amp decide the position of the rope, LED I ights to the side after the end game, the diff icu Ity lies in the who I e process, need to filter the signal, the stable signal generated by
4、 the keys so, the procedure requi res a key debounce modu I e, a I so need to control the game1s ident ifier and end start.Key words: Ver i log tug shake-off moduIe ident if ier一、系统设计1实验要求设计拔河游戏电路,用按键与LED表示输入与输出。(1) 初始时,16个LED中间的两个点亮,然后游戏双方不停按动按键,点亮的两个LED向按动按键慢的一方移动;(2) 每按动一下按键,LED向对方移动一格;(3) 只要LED移
5、动到头,游戏结束;(4) 工作时钟100Hz即可;(5) 完成全部流程:设计规文档、模块设计、代码输入、功能 仿真、约束与综合、布局布线、时序仿真、下载验证等。2 .方案对比脉冲信号方案:在选定一定的时间周期,检测按键A与按键B的产生的 脉冲个数,进行比较,若A的脉冲数量大于B,则Led向A 方向移动,反之则向B方向移动,若相等则不动。消抖模块方案给所定按键两个状态,一个前状态,一个后状态,当时 钟时钟的脉冲沿来临时,将按键状态赋值给前状态,设置定 时器,当计数计满后,前状态值赋给后状态,按键输出值为 前状态和后状态的取反的并。此方案当一直按住按键时,按键电平信号一直为高,取 反后的变为低,可
6、以避免一直按住而直接比赛结束的特殊情 况。3. 系统框图由分频后的时钟信号模块控制按键信号模块,之后进入比较 模块,若A的脉冲数大于B,则Led向A代表方向移动,反 之则向B代表方向移动,若相等则不动。由Led的位置决定 使能端的开启与关闭,若移动至A或B的顶端,则使能端控 制Led无法再移动。4. 代码设计和说明(1) 对于输入端口输出端口的定义,和等存器,线网型变量的,以及计数常量的定义moduIe project_ba (CIk,Rst_n,KEY1,KEY2,LED);input CIk;i nput Rst_n;i nput KEY1;input KEY2;/定义输入output 1
7、5:0 LED;/定狡输出reg 27:0 Cnt;reg CIk_1OOhz;reg en;reg Key1_n;reg Key1 _n_reg;reg Key2_n;reg Key2_n_reg;reg 3:0 t;reg 15:0 Ied;w i re key1,key2;parameter CNT = 28'd49 999;(2) 分频模块,将Basys3的100M系统时钟分频成为周期为 10ms, 100Hz 频率a I ways (posedge CIk or posedge Rst_n)begini f (Rst_n) beg i nCnt <= 28,d0;Clk
8、_100hz <= 0;end eIse i f (Cnt = CNT) beginCnt 二 28'd0;Clk_100hz <= CIk_1OOhz;endendcasee I seCnt <= Cnt + 1'b1;end(3) 按键消抖模块,给每一个按键两个状态,保证按键产生的信号可以消除抖动稳定。a I ways (posedge CIk or posedge Rst_n)beg i n i f (Rst_n)begin Key1_n <= 0;Key2_n <= 0;endeIse beg i nKey1_n <=Key1_reg
9、;Key2_n <=Key2_n_reg;endenda I ways(*)i f (Cnt =CNT)beg i n=KEY1;=KEY2;ende I se beg i nKey1_n_reg(4) 比较模块,每当时钟的上升沿,便比较A,B的脉冲个 数,即谁按得快,输出就为1,否则就为0a I ways(posedge CIk)begin i f (t = 41dO I I t 二二 4'd14)en 二 1'bO;e I seen二;end(5) 移动模块a I ways (posedge CIk_1OOhz or posedge Rst_ n )beg i ni
10、f (Rst_n)t <= 7;e I sei f (en)case (key1,key2)2*b10 : t t + 1*b1;2*b01 : t <= t - 1'b1;defauIt:t <= t;end(6) 译码模块,将得到的信号t转化为,Led的显示,最后赋值给Led输出端口,并且由数码管显示胜利的一方a I ways (*)beg i ncase (t)4'dO : led = 16*60000 0000 0000 0011;4fd1 : led = 16*60000 0000 0000 0110;4'd2 : led = 16*b000
11、0 ,0000_0000_1100;4'd3 : led = 16*60000 0000 0001 1000;4*d4 : led = 16* bOOOO 0000_0011 _0000;4'd5 : led = 16*60000 0000 0110 0000;4'd6 : led = 16*bOOOO_0000_J 100_0000;4'd7 : led = 161b0000_0001_1000,0000;4'd8 : led = 16* bOOOO 0011_0000_0000;4'd9 : led = 16'bOOOO.0110_0
12、000_0000;4'd10: led = 16'b0000_1100_0000_0000;4'd11: led = 161b0001_1000_0000_0000;4'd12: led = 16*60011_0000_0000_0000;4'd13: led = 16'b0110_0000_0000_0000;4'd14: led = 16*b1100 0000 0000 0000;default : led = 161bOOOO 0000 0000 0000;endcaseendass i gn LED = Ied; endmoduI
13、e二、结果与讨论1、仿真代码modu I e BaTB ();def i ne c I k_per i od 10 /定义时钟周期reg Rst_n;reg KEY1, KEY2; wi re15:0 LED;pro jectba uO (.Clk(Clk), Rst_n (Rst_n),.KEY1 (KEY1),.KEY2 (KEY2),.LED (LED);initialClk = Clk;1;KEY2 = 0;begin Clk = 0; er a I ways # ('c I k per i od /2.i n i t i a I beg i nKEY1 = 0;KEY2 =
14、0;# (、cIk_period * 10);Rst_n = 1 ;# (、cIk_ per i od * 10);Rst.n = 0; KEY1 =#( clk period * 100);KEY1 = 1;KEY2 = 0;# ('cIk per i od * 100);KEY1 = 1;KEY2 = 0; endendmoduIe2、仿真波形可以看到一直给Key1施加高电平时钟信号丄ed灯的高电平一直向1方向的led灯方向移动,由此可得仿真成功。3. 问题与分析在仿真成功以后生成比特流文件时一直显示错误无法成 功,之后在请教其他同学以后,共同分析后发现,一开始设 计中的数码管模块
15、无法在结束后对应显示,于是便删除了数 码管模块,在led移动到一端后便是游戏结束标志。4、结果在分析出问题兵解决之后,将程序烧写到fpga开发板上, 设计的功能都能实现,于是上板验证也成功。三、心得体会一开始接触这个课题的时候,不知道怎么下手,通过其他同学的 讲解以及查找资料基本了解了拔河游戏机的设计原理。通过这次 课程设计,我更加感到理论和实际之间的差异很大。我也越来越 强烈地感到要掌握一项技术,唯一的办法也是最好的办法就是实 践。只有通过实践才能将书本上的知识应用,也只有实践才能发 现很多问题,真正掌握知识,学以致用。虽然遇到的问题很多, 但是同时得到很多有用的经验。这些对于以后的学习和工
16、作都有 很大的帮助。四、参考文献1 夏宇闻,Veidlog数字系统设计教程,航天航空大学,20132 王金明,数字系统设计与Veri logHDL,电子工业,20093 松,EDA技术实用教程,科学,2009附录实物板级验证图:1、左边队员腔利2、右边队员胜利U:门凤3、清零重置4、源代码modu I e project_.ba (Clk, Rst.n, KEY1,KEY2,LED);inputClk;i nputRst_n;inputKEY1;inputKEY2;/定义输入output 15:0 LED;/ 定义输出 reg 27:0 Cnt;reg Clk_100hz;reg en;reg
17、 Key1_n;reg Key1_n_reg;regKey2_n;regKey2_n_.reg;reg3:0t;reg15:0led;wi rekey1,key2;parameter CNT = 281d49_999;always (posedge Clk or posedge Rst_n) begini f(Rst_n) beginCnt 二 28,d0;ClkJ00hz <= 0;endelse i f (Cnt = CNT) beginCnt <= 28'dO;CIk_1OOhz <= 飞Ik_1OOhz;end e I seCnt <= Cnt + 1&
18、#39;b1;endalways (posedge Clk or posedge Rst_n) begin if (Rst_n)a I ways (*) begin if (Cnt = Key1_n_reg Key2_n_reg eIse begin Key1_n_reg Key2_n_reg endCNT) begin =KEY1;=KEY2;endKey1_n;Key2_n;endass i gn key1 = assign key2 =Key1_n &Key2_n &(Key1_n_reg);(Key2_n_reg);begini Key1_n <=0;Key2_n
19、 <= 0;ende I sebeginKey1_,n <=Key1_n_.reg;Key2_,n <=Key2_n_reg;endendalways(posedge Clk_100hz or posedge Rst_n ) begini f (Rst_n)t二 7;e I sei f (en)+ rb1;一 1*b1;case (key1,key2) 2*b10 : t 二 t 2*b01: t 二 tdefault:t <= t; endcasea I ways (posedge CIk)beginif (t =4k0| t = 4*d14)en <= e I
20、 serbo;en <=endrbi;always (*)begincase (t)4'dO4'd14'd24'd34'd44'd54'd64'd74'd84'd9led二16*b0000_0000_00000011;led二16'bOOOO000000000110;led二16'bOOOO000000001100;led二16*b0000000000011000;led二16'bOOOO000000110000;led二16'bOOOO000001100000;led二16&
21、#39;bOOOO000011000000;led二16'bOOOO000110000000;led二16'bOOOO001100000000;led二16'bOOOO011000000000;led =16*60000 0000 0000 0000;CMB歹4*d10:led = 16'bOOOO 1100 0000 0000;4*d11:led =160001 1000 0000 0000;4'd12:led = 16*b0011 0000 0000 0000;4'd13:led =16-60110 0000 0000 0000;4"
22、;d14:led = 16'bH00 0000 0000 0000;OMBMMB歹defau Itendcaseend/译码模块ass i gn LED = led;endmoduIe5、测试文件'define c I k_per i od 10 /定 5C 时钟周期modu I e BaTB ();reg CIk;reg Rst_n;reg KEY1, KEY2;wire15:0 LED;pro ject_ba uO (.Clk(Clk), Rst_n (Rst_n),.KEY1 (KEY1), KEY2 (KEY2),.LED (LED);initialbeginCIk =
23、 0; enda I ways # ('c I k. per i od /2) C I k = C I k ;i n i t i a I beg i nKEY1 = 0;KEY2 = 0;# (、cIk_period * 10);Rst_n = 1; #(、clk_per iod * 10);Rst_n = 0; KEY1 = 1;KEY2 = 0;#(、clk_per i od * 100);KEY1 = 1;KEY2 = 0;# (、cIk_period * 100);KEY1 = 1;KEY2 = 0; endendmoduIe6、管脚约束setpropertyiostandar
24、dLVCM0S33get_portsLED15)set_ propertyiostandardLVCM0S33geports(LED14set_propertyiostandardLVCM0S33geportsLED13JsetpropertyiostandardLVCM0S33get一portsLED 12set_propertyiostandardLVCM0S33get_ports(LED11set_ propertyiostandardLVCM0S33get_ports(LED10)pertyiostandardLVCM0S33geportsLED9Jset_propert
25、yiostandardLVCM0S33get_portsLED 8setpropertyiostandardLVCM0S33get_ports(LED7)pertyiostandardLVCM0S33get_portsLED6set_ propertyiostandardLVCM0S33get_portsLED门set propertyiostandardLVCM0S33get_ports(LED4set property 1OSTANDARD LVCM0S33 get_ports LED 3set property 1OSTANDARD LVCMOS33 get ports L
26、ED 2set property 1OSTANDARD LVCMOS33 get_ports LED 1set,property IOSTANDARD LVCMOS33 get_ports LED0set. property PACKAGE PIN L1 get_ports LED 15)set. property PACKAGE PIN P1 get_ports LED 14)set property PACKAGE PIN N3 get_ports LED 13)set. property PACKAGE PIN P3 get_ports LED12)set property PACKAGE PIN U3 ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路职工生病复工申请书
- 2025年航空运输服务与安全手册
- 招考会计面试题目及答案
- 河南水灾房屋申请书
- 农业生产技术与标准化操作指南
- 员工做班长申请书
- 2025年印刷行业质量控制与操作流程
- 心委会部长助理申请书
- 自来水厂管网延伸工程实施方案
- 拉萨医院面试题目及答案
- 理塘县财政局(县国有资产监督管理局)关于公开招聘县属国有企业2名总经理及1名财务总监的参考题库完美版
- 2024-2025学年人教版初中地理七年级下册课件 第7章 第1节 自然环境
- 木质纤维复合材料-深度研究
- 生产设备维护保养规范作业指导书
- 专业学位研究生课程案例库建设项目申请书
- 骨髓炎VSD的护理
- GB/T 44230-2024政务信息系统基本要求
- 经导管主动脉瓣置换术(TAVR)患者的麻醉管理
- 本霍根的五堂课中文版
- 环境保护体系框图
- 幼儿园课程标准要求
评论
0/150
提交评论