《打地鼠FPGA实现》PPT课件.ppt_第1页
《打地鼠FPGA实现》PPT课件.ppt_第2页
《打地鼠FPGA实现》PPT课件.ppt_第3页
《打地鼠FPGA实现》PPT课件.ppt_第4页
《打地鼠FPGA实现》PPT课件.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

数字系统设计,打地鼠,打地鼠,功能介绍:,闯 三 关,打中地鼠,拼得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 = “0011111100111111111111111111111111111111111111111111111111111111“WHEN OUT_MOS(1) = 1 ELSE EN ; -区域一的点亮了,老鼠出现在区域一 E1G = “0011111100111111111111111111111111111111111111111111111111111111“WHEN 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.算

温馨提示

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

最新文档

评论

0/150

提交评论