eda拔河游戏机课程设计报告文档格式.docx

上传人:b****4 文档编号:16488182 上传时间:2022-11-24 格式:DOCX 页数:11 大小:138.36KB
下载 相关 举报
eda拔河游戏机课程设计报告文档格式.docx_第1页
第1页 / 共11页
eda拔河游戏机课程设计报告文档格式.docx_第2页
第2页 / 共11页
eda拔河游戏机课程设计报告文档格式.docx_第3页
第3页 / 共11页
eda拔河游戏机课程设计报告文档格式.docx_第4页
第4页 / 共11页
eda拔河游戏机课程设计报告文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

eda拔河游戏机课程设计报告文档格式.docx

《eda拔河游戏机课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《eda拔河游戏机课程设计报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

eda拔河游戏机课程设计报告文档格式.docx

4.1设计原理和方案

电子拔河游戏机是一种能容纳甲乙双方参赛或甲乙双方加裁判的三人游戏电路。

由一排16个LED发光二极管表示拔河的“电子绳”。

由甲乙双方通过按钮开关使发光的LED管向自己一方的终点延伸,当延伸到某方的最后一LED管时,则该方失败,对方获胜,并对获胜次数进行计数,连续比赛多局以定胜负。

比赛开始,由裁判下达比赛命令后,甲乙双方才能输入信号,否则,输入信号无效。

裁判信号由键盘空格键来控制。

“电子绳”由16个LED管构成,裁判下达“开始比赛”的命令后,摁一下空格键,位于“电子绳”中点的LED发亮。

甲乙双方通过按键输入信号,使发亮的LED管向自己一方移动,并阻止其向对方延伸,谁摁得快就向这一方移动。

当从中点至自己一方的最后一个LED管发亮时,表示比赛结束,这时,电路自锁,保持当前状态不变,除非由裁判使电路复位,并对获胜的一方计数器自动加一。

记分电路用两位七段数码管分别对双方得分进行累计,在每次比赛结束时电路自动加分。

当比赛结束时,计分器清零,为下一次比赛做好准备。

4.2程序设计及仿真

4.2.1分频器模块程序设计及仿真

modulefpq(_10000HzOut,_25HzOut,_50MHzIn);

input_50MHzIn;

output_10000HzOut,_25HzOut;

parameterwidth1=16,value1=2499;

parameterwidth2=10,value2=499;

reg_10000HzOut,_25HzOut;

reg[width1-1:

0]Count;

reg[width2-1:

0]Cnt;

always(posedge_50MHzIn)//2500*2*10000Hz=50MHz

if(Count==value1)//BinaryCounter(0~2499)

begin

Count<

=15'

d0;

_10000HzOut<

=~_10000HzOut;

end

elseCount<

=Count+1'

b1;

always(posedge_50MHzIn)//100000*2*25Hz=50MHz

if(Cnt==value2)//BinaryCounter(0~99999)

Cnt<

_25HzOut<

=~_25HzOut;

elseCnt<

=Cnt+1'

endmodule

图1,分频器仿真波形图

4.2.2按键模块程序设计及仿真

按键模块采用3个或门消抖,由于有两个玩家,

所以设置有两个按键,采用25hz脉冲。

modulexiaodou(key1,key2,_25H,k1,k2);

inputkey1;

////按键1

inputkey2;

////按键2

input_25H;

//脉冲25Hz

outputk1;

outputk2;

assignk1=(a1|a2|a3);

////

assignk2=(b1|b2|b3);

////采用3个或门消抖

rega1,a2,a3,b1,b2,b3;

always(posedge_25H)

begin

a1<

=key1;

a2<

=a1;

a3<

=a2;

b1<

=key2;

b2<

=b1;

b3<

=b2;

end

endmodule

图2,仿真波形图

4.2.3主程序模块程序设计及仿真

拔河主程序开始时设有复位按键,通过左右数码管显示玩家分数,有两个led小灯代表拔河绳子的中点。

拔河结束也可清零。

modulexin(k1,k2,rst,nrst,_25H,q,left,right);

inputk1;

//

inputk2;

inputrst;

//拔河开始复位按键

inputnrst;

//计分清零按键

output[2:

0]q;

//拔河led显示输出

0]left;

//左边分数数码管输出

0]right;

//右边分数数码管输出

reg[2:

0]q;

regn;

0]left,right;

//reg寄存器

always(negedgerstorposedge_25Hornegedgenrst)

begin

if(~rst)beginq=7;

n=1;

end//q,led回中点n使能开

elseif(~nrst)beginleft=0;

right=0;

end//计分清零

elseif(n)//判断使能是否开!

begincase({k1,k2})//按键组

2'

b01:

q=q+1;

///led向右移一位

b10:

q=q-1;

////led向左移一位

default:

q=q;

///保持

endcase//

case(q)

3'

b000:

beginn=0;

left=left+1;

end//左+1分,n使能关

b110:

right=right+1;

end//右+1分,n使能关

n<

=n;

//保持

endcase

end

图3,仿真波形图

4.2.4LED模块程序设计及仿真

Led设有16个灯。

moduleled(q,_50M,led);

input[2:

input_50M;

output[7:

0]led;

reg[7:

always(posedge_50M)

d0:

led=16'

b11111;

d1:

d2:

d3:

d4:

d5:

d6:

d7:

//中点

d8:

d9:

d10:

b01111;

d11:

b00111;

d12:

b10011;

d13:

b11001;

d14:

b11100;

led<

=led;

图4,仿真波形图

4.2.5数码管模块程序设计及仿真

moduleshumaguan1(left,right,_10000H,segout,wx);

input_10000H;

output[6:

0]segout;

//数码管输出

0]wx;

reg[6:

reg[1:

0]count;

reg[3:

0]seg_in;

always(posedge_10000H)

case(count)

beginwx<

=3'

b011;

seg_in<

=left;

count<

=count+1;

end//leftwx+,计数输入=left,count进一位继续判断

b101;

=4'

d8;

end//-wx+,计数输入=8,同上

b110;

=right;

=0;

end//rihhtwx+,计数输入=right,conunt归零,重新判断

always(seg_in)

case(seg_in)//gfedcba//

4'

segout<

=7'

b1000000;

//0

b1111001;

//1

b0100100;

//2

b0110000;

//3

b0011001;

//4

b0010010;

//5

b0000010;

//6

b1111000;

//7

b0111111;

//8

b0111011;

//9

endcase

图5,仿真波形图

4.2.6顶层设计及仿真

图6,顶层设计

图7,顶层设计仿真波形图

4.3适配

1.选择的器件为:

CycloneIIEP2C5AT144A7

2.引脚分配:

NodeName

Direction

Location

_50MHzIn

Input

IOBANK_1

key1

IOBANK_2

key2

IOBANK_3

led[0]

Output

PIN_24

led[1]

PIN_25

led[2]

PIN_26

led[3]

PIN_30

led[4]

PIN_31

led[5]

PIN_32

led[6]

PIN_27

led[7]

PIN_28

led[8]

PIN_64

led[9]

PIN_63

led[10]

PIN_60

led[11]

PIN_59

led[12]

PIN_58

led[13]

PIN_57

led[14]

PIN_55

led[15]

PIN_53

nrst

IOBANK_4

rst

EDGE_BOTTOM

segout[0]

PIN_40

segout[1]

PIN_41

segout[2]

PIN_42

segout[3]

PIN_43

segout[4]

PIN_44

segout[5]

PIN_45

segout[6]

PIN_47

wx[0]

PIN_48

wx[1]

PIN_51

wx[2]

PIN_52

5、小结

一开始接触这个课题的时候,不知道怎么下手,通过老师的讲解以及查找资料基本了解了拔河游戏机的设计原理。

通过这次课程设计,我更加感到理论和实际之间的差异很大。

我也越来越强烈地感到要掌握一项技术,唯一的办法也是最好的办法就是实践。

只有通过实践才能将书本上的知识应用,也只有实践才能发现很多问题,真正掌握知识,学以致用。

虽然遇到的问题很多,但是同时得到很多有用的经验。

这些对于以后的学习和工作都有很大的帮助。

6、参考文献

[1]松著.EDA技术实用教程(第二版).:

科学,2005.

[2]睿强主编.VerilogHDL数字系统设计及实践.:

电子工业,2011.

[3]福奇主编.VerilogHDL应用程序设计实例精讲.:

电子工业,2009.

[4]王秀琴主编.数字系统设计入门与应用实例.:

电子工业,2012.

[5]侯建军主编.spoc技术基础教程.:

清华大学,2008.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1