打地鼠-FPGA实现.ppt

上传人:xin****828 文档编号:14635847 上传时间:2020-07-26 格式:PPT 页数:15 大小:2.02MB
返回 下载 相关 举报
打地鼠-FPGA实现.ppt_第1页
第1页 / 共15页
打地鼠-FPGA实现.ppt_第2页
第2页 / 共15页
打地鼠-FPGA实现.ppt_第3页
第3页 / 共15页
点击查看更多>>
资源描述
数字系统设计,打地鼠,打地鼠,功能介绍:,闯 三 关,打中地鼠,拼得40分,打中地鼠,拼得80分,得分过百,晋级,晋级,通 关,功能介绍:,功能介绍:,模块功能描述 (1)MOUSESETTING 设置地鼠各个洞穴的编码,随机产生地鼠 (2)键盘扫描电路: 对键盘进行行扫描,根据列的信号判断按键 (3)GRAPH 对点阵进行逐行扫描显示编码 (4)LED显示电路 显示键盘的按键或者通关的走马灯 (5)SCORE 计算分数并编码,存在问题及解决方案,实现方案:,OM1 = 010000000; OM2 = 100000000; OM3 = 000010000; OM4 = 001000000; OM5 = 000001000; OM6 = 000000010; OM7 = 000000100; OM8 = 010000000; OM9 = 000100000; OM10 = 000000001; OM11 = 100000000; OM12 = 000001000; OM13 = 000000100; OM14 = 001000000; OM15 = 000010000; OM16 = 000000001; -16个老鼠可能出现的地方 OUT_MOS = OM1 WHEN Clkrandom = 0 ELSE OM2 WHEN Clkrandom = 1 ELSE OM3 WHEN Clkrandom = 2 ELSE OM4 WHEN Clkrandom = 3 ELSE OM5 WHEN Clkrandom= 4 ELSE OM6 WHEN Clkrandom = 5 ELSE OM7 WHEN Clkrandom = 6 ELSE OM8 WHEN Clkrandom = 7 ELSE OM9 WHEN Clkrandom = 8 ELSE OM10 WHEN Clkrandom = 9 ELSE OM11 WHEN Clkrandom = 10 ELSE OM12 WHEN Clkrandom = 11 ELSE OM13 WHEN Clkrandom = 12 ELSE OM14 WHEN Clkrandom = 13 ELSE OM15 WHEN Clkrandom = 14 ELSE OM16 WHEN Clkrandom = 15 ;,存在问题及解决方案,实现方案:,在算法中,我将该8X8的点阵上的64个点整个得作为一个VECTOR,0表示该点亮,1表示该点灭。 例如: BASIC = 11011011 11011011 00000000 11011011 11011011 00000000 11011011 11011011 ; -显示“井”字绿色边界 同理: E1 = 0011111100111111111111111111111111111111111111111111111111111111WHEN OUT_MOS(1) = 1 ELSE EN ; -区域一的点亮了,老鼠出现在区域一 E1G = 0011111100111111111111111111111111111111111111111111111111111111WHEN OUT_MOS(1) = 1 AND EDS_RKN3(1) = 0 ELSE EN ; -区域一的老鼠被打死,存在问题及解决方案,实现方案:,ROW = 11111111 WHEN RESET =1 ELSE 01111111 WHEN ROWW=0 ELSE 10111111 WHEN ROWW=1 ELSE 11011111 WHEN ROWW=2 ELSE 11101111 WHEN ROWW=3 ELSE 11110111 WHEN ROWW=4 ELSE 11111011 WHEN ROWW=5 ELSE 11111101 WHEN ROWW=6 ELSE 11111110 WHEN ROWW=7; -点阵行扫描的显示 CR =11111111 WHEN RESET =1 ELSE WHAT_OUT( 1 TO 8 ) WHEN ROWW=0 AND C = 0 ELSE WHAT_OUT( 9 TO 16) WHEN ROWW=1 AND C = 0 ELSE WHAT_OUT(17 TO 24) WHEN ROWW=2 AND C = 0 ELSE WHAT_OUT(25 TO 32) WHEN ROWW=3 AND C = 0 ELSE WHAT_OUT(33 TO 40) WHEN ROWW=4 AND C = 0 ELSE WHAT_OUT(41 TO 48) WHEN ROWW=5 AND C = 0 ELSE WHAT_OUT(49 TO 56) WHEN ROWW=6 AND C = 0 ELSE WHAT_OUT(57 TO 64) WHEN ROWW=7 AND C = 0 ELSE -得分没有过百时,红色的列1-8位的赋值 -CG=11111111; CG = 11111111 WHEN RESET =1 ELSE WHAT_OUT_G( 1 TO 8 ) WHEN ROWW=0 AND C = 0 ELSE WHAT_OUT_G( 9 TO 16) WHEN ROWW=1 AND C = 0 ELSE WHAT_OUT_G(17 TO 24) WHEN ROWW=2 AND C = 0 ELSE WHAT_OUT_G(25 TO 32) WHEN ROWW=3 AND C = 0 ELSE WHAT_OUT_G(33 TO 40) WHEN ROWW=4 AND C = 0 ELSE WHAT_OUT_G(41 TO 48) WHEN ROWW=5 AND C = 0 ELSE WHAT_OUT_G(49 TO 56) WHEN ROWW=6 AND C = 0 ELSE WHAT_OUT_G(57 TO 64) WHEN ROWW=7 AND C = 0 ELSE -得分没有过百时,绿色的列1-8位的赋值,存在问题及解决方案,实现方案:,PROCESS(RESET,CLK) BEGIN IF RESET=1 THEN QN=0000000000000000000000000000; ELSIF CLKevent AND CLK=1THEN QN = QN + 1; END IF; END PROCESS; -关于QN的定义,一个28位的大容量计数器 例如: Clkrandom= QN(27 DOWNTO 24) WHEN B = 0 OR B = 1 OR B = 2 OR B = 3 ELSE QN(26 DOWNTO 23) WHEN B = 4 OR B = 5 OR B = 6 OR B = 7 ELSE QN(25 DOWNTO 22) WHEN B = 8 OR B = 9 ; -计数器低位变化的速率快,地鼠出现的相应的频率就高 EDS = QN(16 DOWNTO 14); CKKK=QN(9); -产生键盘扫描频率 ROWW = QN(9DOWNTO 7); -设置地鼠的出现速率 WIN_OUT_TINE = QN(19 DOWNTO 18); 、 -通关后的图案闪烁频率 在任何一个模块中,时钟都是这个模块的核心,使用这中方法可以方便 快捷的解决好各个模块的时钟问题,并且这种方法易读易懂,用的逻辑器件也 得到了节省。,设计总结,1.算法简洁明了,针对性强,使用方便; 2.实验结果稳定性较强 3.采用的VHDL语言类型丰富,不是单一的IFTHEN语句,在一定程度上节省了器件,具有一定的实际意义; 4.可扩展性强,在该算法的基础上,还可以继续改进,如在老鼠的随机产生上,晋级后难度的设置上和测试游戏者的反应时间上,都可以继续编写程序。,Thank you,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!