FPGA下载网页代码游戏

0

在FPGA上运行网页代码游戏可能需要一些复杂的编程和技术,因为FPGA(Field-Programmable Gate Array,可编程逻辑门阵列)主要设计用于硬件逻辑实现,而不是运行高级软件或浏览器。但是,理论上你可以通过以下步骤实现:

1. 定义硬件架构:你需要设计一个硬件架构,这可能包括一个微处理器(如RISC-V,ARM等),内存,以及可能的图形处理器(GPU)。你可能需要使用硬件描述语言(HDL),如Verilog或VHDL来描述这个架构。

2. 编译网页代码:网页代码主要是HTML,CSS和JavaScript。你需要将这些代码转化为可以在你的硬件架构上运行的机器码。这可能需要编写特殊的编译器或者将代码转化为可以在你的微处理器上运行的形式。

3. 实现浏览器:在FPGA上实现一个浏览器是一个复杂的任务,因为它需要解析HTML,CSS和JavaScript,生成图形,并且处理用户的输入。你可能需要设计一个专用的浏览器核心,或者找到一个可以在你的硬件上运行的轻量级浏览器。

4. 下载和运行游戏:一旦你的硬件和软件都准备好,你就可以下载网页游戏,解析它,并在你的FPGA上运行。

这整个过程都需要深入的硬件和软件知识,包括FPGA编程,微处理器设计,编译器设计,以及网页标准的理解。这并不是一个简单的项目,可能需要一个团队和相当长的时间来完成。

如果你是一个初学者,我建议你从更基础的FPGA项目开始,比如实现一些基本的逻辑门,计数器,或者定时器。然后,你可以逐渐挑战更复杂的项目,如微控制器或者小型的嵌入式系统。

要求做到的任务有:连接电脑和硬件,硬件通过VGA连接显示器。在显示器界面内有包含随机生成的黑白方块的移动卷轴,在基本的由黑块和白块组成的移动画面上的点击黑块加分,点击白块结束游戏的基础上,加入记分板,每获得分就加一,显示在画面上方中央。在主菜单上可以选择游戏进程速度逐渐加快的加速模式。以及全模式都有的少量随机生成的具有特殊功能的方块(如加两分的黄色块和可以减速的蓝色块),按复位键可以重新开始游戏漏掉黑块和点击到白块都会使游戏结束,并显示gameover字样。

JTAG模式主要是将工程编译生成的.sof烧录到FPGA中,如果下载完成后断电重新上电,那么你会看到你刚下载进行的代码不见了。(注意,如果配置芯片本身的代码就是闪烁灯,那么你重新上电后肯定还是闪烁灯,如果大家要看看是否真的重新上电后JTAG在线下载的数据丢失了,那么不妨按照后面的JTGA烧录配置芯片的步骤烧录一个不闪烁灯的代码,然后再做前面的下载看看)。

如图7.20所示,在弹出的Hardware Setup页面里,选择当前硬件为USB Blaster,然后close。如果当前硬件里面没有USB Blaster选项,首先确认硬件上是否已经把USB Blaster和 PC连接好,然后再尝试多次拔插一下看看,或者重新启动Quartus II软件看看。

然后确认Quartus II是否识别了USB Blaster下载线。若没有识别,则点击图7.19左上角的“Hardware Setup…”。

FPGA下载网页代码游戏

Sylvain 的研究方向是简化内容创建,尤其是生成高度细节化的模式、结构和形状。应用范围从计算机图形学到 3D 打印、渲染高度细节化的场景、设计复杂对象三国志网页游戏惩罚图片,或者建模需要遵循精确规格的技术部件。

2010 年,Sylvain 获得 EUROGRAPHICS 青年研究者奖项。2012 年,他的 ShapeForge 项目得到了 ERC 启动资金。此外,Sylvain 还是 IceSL 软件的创始人和主要开发者。

但同时,作者表示给定的模块中没有两个相同的指令,每个指令各自实现算法的精确子部分。此外,状态还决定了流程以及选择下个状态,所以没有可以编程或重排列的指令。基于此,他的想法是将算法完全嵌入到电路本身,而不执行任何其他操作。

针对此看法,作者承认使用了 vga、sdram 控制器、帧缓冲器、texturing、分频器和渲染器等几种状态机,并且每个状态机都有活动状态指数。其中,渲染器最大,具有 69 个状态。并且,作者也同意将状态指数看作是一种指令计数器,尽管它是非常专业的指令。

ta 表示虽然 Doom 芯片能够以 60fps 的帧率运行,并且不需要太多的 headroom,但是这远远慢于现代 GPU 的速率。最新的 Doom 游戏能够以 200fps 以上的帧率运行,并且更加复杂。因此,结合硬件成本以及与游戏数字拷贝的比较来看,ta 认为这款 Doom 芯片对游戏行业的益处不大。

这款纯 FPGA 实现芯片在 Doom 游戏中的效果引起了广大游戏发烧友的注意,并纷纷发表自己的看法。有人投以赞许,也有人严谨地提出了质疑。

Sylvain 表示,Doom 诞生的时候自己还在学习如何编码图形。不管是那时,还是现在,Doom 都是其灵感和动力的来源。

由于计算会随着游戏中墙的不同而发生变化,因此获得天花板和地板的纹理并非易事。Sylvain 提供了一个 debug 视图游侠盒子为什么下载游戏慢,可以帮助确保计算与天花板和地板的纹理相匹配。

此外,Sylvain 还利用了真实的游戏数据:在编译过程中,使用 Lua 预处理器从 Doom WAD 中抽取数据,并基于此写表和硬件。

渲染使用的是原始 BSP 树,不过为了配合硬件实现,Sylvain 对其进行了修改。所有列经过光影投射,并立即从前向后绘制,直到被完全填充。

下图展示了一个不错的测试用例,我们可以看到它做出了一些改进,修复了一些问题,并在 CycloneV + Quartus 上学到了很多。

DooM 芯片可以运行 E1M1 直到世界末日(或者电量耗尽)。代码烧写到了 FPGA 的 LUTs 及触发器中,其中无 CPU,无操作码,无指令计数器,可以说是纯硬件实现。

最近,计算机图形学大神级人物、法国国家信息与自动化研究所(INRIA)研究总监、MFX 团队负责人 Sylvain Lefebvre 在新的设备上运行 Doom 游戏,并放出了一段视频,展示他自制的无 CPU、无操作码、无指令计数器,仅靠纯 FPGA 实现的芯片运行 Doom 的效果。

作为经典的射击游戏,Doom 拥有大量拥趸,它能够在大量设备上运行,如数码相机、旧版诺基亚手机等等。在强化学习领域,Doom 也被用作策略训练环境之一。

毁灭战士系列(Doom)是由 id Software 开发的第一人称射击电子游戏系列。在电子游戏界中,人们普遍认为 Doom 系列是第一人称射击游戏的开拓者之一。自 Doom 于 1993 年发布以来,该系列已有 4 部续作、无数的扩展关卡以及同名电影《毁灭战士》。

无 CPU、无操作码、无指令计数器纯 FPGA 实现,图形学大神 Sylvain Lefebvre 为经典射击游戏 Doom 打造打造了一款芯片。

专题: 三国的单机游戏   三国十单机游戏   三国单机游戏4