基于FPGA的贪吃蛇游戏设计(1)整体架构设计
软件环境:Quartus II 13.1 & Modelsim Starter Edition 13.1 & notepad++ & TimeGen 3.1 & ImageShow(生成图片的mif文件)
硬件环境:黑金AX309开发板 ,联想VGA显示器
1.模块划分
总体设计思路采用Top2down设计,首先是系统top模块,再往下按照功能的不同分为5个:
- 蛇身控制模块snake_ctrl
- 按键控制模块key
- 苹果生成模块generate_apple
- VGA显示&游戏状态模块game_show
- 系统时钟模块pll_clk
按键模块和系统时钟PLL模块就不再讲解了
如下图RTL示意图
其中重难点模块是蛇身控制模块(5颗星)、VGA显示&状态模块(4颗星)、苹果生成模块(3颗星)。
2.学习脉络总结
在家自学FPGA三个月,学习脉络大体如下:
- 复习了本科的数电、集成电路设计原理知识
- 刷完一本语法,学习了计算机组成原理
- 硬件采买(Spartan 6 黑金AX309)及datasheet研读,软件下载安装及使用学习(ISE、Quartus II、Modelsim、Markdown、Linux系统操作、TimeGen)(特别耗时…)
- 开始疯狂刷各大网站论坛的教程,几乎刷完了特权同学、正点原子、小梅哥、开源骚客等等不同方面的教程和代码例程。找教材、撸代码、跑仿真、上板调试,从按键消抖、时钟分频、数码管显示这样的基础例程开始一点一点积攒模块经验
- 慢慢啃下了VGA驱动、RA/ROM/PLL等ip调用、UART模块、PS2键盘驱动、IIC总线驱动、SDRAM驱动
- 最后找了一些小项目的教程来练手积攒 实战经验,如车牌识别、贪吃蛇,最后也都磕磕绊绊的完成了
完成这些小项目之后,深感在时序设计方面实战经验的严重匮乏,往往很多bug都是时序对齐出了问题,后面打算研究小梅哥的《小梅哥FPGA时序约束从遥望到领悟》,加深一下理解和丰富下实战经验
基于FPGA的贪吃蛇游戏设计(1)整体架构设计相关推荐
- 基于React的贪吃蛇游戏的设计与实现
代码地址如下: http://www.demodashi.com/demo/11818.html 贪吃蛇小游戏(第二版) 一年半前层用react写过贪吃蛇小游戏https://github.com/c ...
- 基于HTML5的贪吃蛇游戏的设计与实现
基于HTML5的贪吃蛇游戏的设计与实现 功能要求: 贪吃蛇游戏是一款经典的单机休闲游戏,玩家通过上下左右按键控制蛇头的移动方向使其向指定方向前进,并吃掉随机位置上产生食物来获得分数.每吃掉一次食物,贪 ...
- 基于EasyX的贪吃蛇游戏
基于EasyX的贪吃蛇游戏 一.预备知识 二.游戏逻辑 1.贪吃蛇元素 2.贪吃蛇规则 三.游戏设计 1.地图设计 2.移动设计 3.速度设计 4.整体设计 一.预备知识 1.使用EasyX必须要知道 ...
- Linux下基于SDL库贪吃蛇游戏
Linux下基于SDL库贪吃蛇游戏 SDL(Simple DirectMediaLayer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提供了数种控制图像.声音.输出入的函数,让开 ...
- 基于单片机的贪吃蛇游戏设计_前端入门,基于html,css,javascript的贪吃蛇游戏
源代码: 贪吃蛇 .box1{ font-size: 15px; float:left; display: block; margin-right: 150px; } .box2{ font-size ...
- 基于linux的贪吃蛇游戏设计_贪吃蛇还能这么玩?绝对是你从未体验过的全新版本(上)...
上个月 Gitee 宣布推出「Python 贪吃蛇魔改大赛」的活动,受到了众多开发者们的欢迎.半个多月后,我们收到了共计 42 个参赛作品,有的作品创意无限,有的作品视觉效果极佳,看看下面的作品一览, ...
- 基于单片机的贪吃蛇游戏
绪论 1.1 研究背景与意义 随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界. 人们不再拘泥于--,J,块天地,加班,出差成了现代人不可避免的公务.而此时一款可以 随时随地娱乐 ...
- 基于java的贪吃蛇游戏
贪吃蛇的游戏开发 实验内容: 1)实现贪吃蛇游戏基本功能,屏幕上随机出现一个"食物",称为豆子,上下左右 控制"蛇"的移动,吃到"豆子"以后 ...
- 基于EasyX的贪吃蛇游戏(C语言)
贪吃蛇游戏EasyX图形库C语言 #前言 关于贪吃蛇游戏这种学生时代,用来应付一个期末设计的东西.网上各式各样用不同方式实现的核心代码已经烂大街了. 用esayX这种图形库,可以简单进行蛇体,游戏界面 ...
最新文章
- 仿QQ空间用一个tableview显示多种自定义cell
- shell 执行 oracle sql
- python宏替换_#和##在宏替换中的作用
- 微软 Excel 365 里如何设置下拉菜单和自动高亮成指定颜色
- 【AcWing 243. 一个简单的整数问题2】
- 根据select不同的选项实现相应input框添加项的显示
- 百度刷新世界级权威DeepFake防伪数据集榜单记录,成绩超越SOTA
- 7-130 古风排版 (20 分)
- Vscode之搭建C++环境
- Turbo C 2.0安装及其使用
- 依赖于 !important 标签是个危险的现象。奔驰车如何查4S店的保养记录
- 使用IDEA生成DOC文档
- 1383: 手机短号 (多实例)
- 四阶龙格-库塔法求解常微分方程的初值问题
- DP问题(动态规划)
- 多方位角极化SAR数据处理与信息提取方法
- 支付API接口(支付宝支付接口微信支付接口)
- error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\link.exe' failed wit
- python之os模块操作文件与文件夹
- 忆二十几年前的“大案”|我们该教什么给孩子?
热门文章
- ns-3 教程 —— 资源
- SDN概述:简介、工具、环境部署
- 隐函数存在定理1及求导公式_20160505
- 一年中最后一个月的最后一天说说_2020只剩最后一个月的励志说说致自己
- php开发中常用字符串函数总结
- python2.7 error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
- 自动化测试、自动化测试框架和云测试相关论文列表
- CSS基础(复合选择器-三大特性)
- java计算机毕业设计学校意见征集系统源码+系统+mysql数据库+lw文档
- python爬虫爬取高清图片——爬虫入门