WhatIsThis - suisuisi/gamegirl GitHub Wiki

以下解释并非 100% 准确。相反,他们正在简化某些方面以使基本主题易于理解。

什么是GameGirl?

该板是围绕 FPGA 芯片构建的,该芯片具有用 HDL 编写的“核心”。因此,该板是什么的问题引出了 FPGA 是什么的问题。

什么是 FPGA 以及它使用的 HDL?

它们本质上是一个定制的微芯片,用于按需构建片上系统。

通常,创建微芯片需要大型工厂和硬件原理图。这导致开发语言在将它们“烘焙”到 ASIC 的硅片上之前(此时它们不能再更改)来描述原理图 (HDL) 和用于原型芯片设计的工具。这些原型设计工具是可编程芯片,例如 FPGA。

最近FPGA的价格大幅下降,此时出售内置FPGA的设备比生产专用芯片更便宜。每个单元都更贵,但它们的建造成本更低,并且可以升级。此外,免费 HDL 开发工具的可用性以及大多数内核的 HDL 代码都是开源的,这意味着每个设备都可以是自己的开发工具包 - 允许任何人进行修补。

带有 FPGA 的设备的其他示例是 SD2SNES 卡盒、EverDrive N8 卡盒和 XRGB-Mini 升频器(并非全部使用开源内核)。

那么究竟什么是FPGA?(详细的)

FPGA 是一种集成半导体。它由数百万(有时甚至是数十亿)个小型逻辑元件组成,就像标准 PC 中的任何微处理器、内存芯片或 IO 芯片一样。在微处理器中,逻辑元件的接线方式最终显示出微处理器供应商想要的行为。在存储器芯片中,逻辑元件的接线方式可以将数据存储在芯片内。这是由制造商通过准确选择预期芯片类型所需的逻辑元件并将它们连接到芯片内部以准确执行制造商希望它们执行的功能来实现的。

FPGA 有点不同。它们还包含大量的逻辑元素。但这些并不是特定类型芯片所需的逻辑元件。相反,逻辑元素是某种“有用的选择”。FPGA 与 FPGA 之间的确切含义略有不同。此外,这些逻辑元件没有直接连接在一起。相反,所有可能的连接都在那里,但每根电线都包含一个小开关,允许进行或不进行这种连接。最后,FPGA 包含一些存储器。上述开关中的每一个都连接到该存储器的一位。

因此,将数据加载到 FPGA 的内部存储器中可以影响所有这些数百万个开关。该数据确定哪些开关关闭,哪些开关保持打开状态。这反过来导致所有逻辑元件以某种方式连接起来。

配置 FPGA

需要 FPGA 内部特定逻辑的硬件开发人员使用所谓的硬件描述语言 (HDL) 创建此逻辑的文本表示。此类语言的流行示例是 Verilog 和 VHDL。然后将该描述输入到所谓的综合工具中,该工具进而从中创建上述数据。包含数据的文件通常被命名为“FPGA 配置文件”或通常只是“核心”。

只需将新内核下载到 FPGA 中,即可随时重新配置 FPGA。通过这样做,它可以完全改变它的功能。FPGA 可以配置为实现任何类型的微处理器、存储器或 IO 芯片。可以用 FPGA 构建整个计算机。

FPGA 的缺点

为什么不是所有的计算机都是由 FPGA 构建的?FPGA 内部实现特定逻辑(包括逻辑元件、开关和存储器)所需的空间远大于专用芯片(如微处理器或具有硬连线登录的存储芯片)内部所需的空间。这些仅由逻辑元件及其连接组成,不需要额外的开关或存储单元。此外,FPGA 内部逻辑元件的选择对于特定应用可能并不完美,而标准微处理器或存储器芯片恰恰包含所需功能所需的那些逻辑元件。此外,FPGA 更复杂的内部结构将最大时钟速度限制在低于特定应用芯片可以实现的速度。最后,FPGA 较低的销量使它们比出售计算机、电话和其他小工具的芯片贵得多。可用的最昂贵的芯片是大型 FPGA,为单个芯片支付超过 20,000 美元并不困难。

这就是为什么 MiST 板包含连接到 FPGA 的 SDR-SDRAM 存储器芯片的原因。从理论上讲,可以只使用一个大型 FPGA 而不是这种 FPGA + 存储器组合。但是 MiST 板的预期用途肯定会包括内存,并且正如所解释的那样,在 FPGA 内实现内存比使用标准内存芯片要昂贵得多。因此,当前的解决方案要便宜得多,并且不会太多限制用例。MiST 板还包含一个微控制器,主要用于在启动时初始化 FPGA。一旦 FPGA 启动并运行,微控制器就会充当支持芯片,并允许在 FPGA 内部难以实现的软件中实现。但是微控制器不是必须的,并且存在不使用微控制器的类似设置。

用于复古计算的 FPGA

但即使是今天更小、更便宜的 FPGA 也足够大,可以包含 20 年前计算机的整个逻辑。今天,那些旧机器中使用的大部分芯片都不再生产了。有两种方法可以在现代硬件上运行旧代码: 使用在当今计算机上运行并使它们像旧机器一样运行的软件。这称为仿真。或者在今天的 FPGA 中重新实现那些旧机器的整个逻辑。有些人也称这种为“仿真”。但是为了将其与 FPGA 术语的使用区分开来,例如“重新实现”是首选。

什么更好?仿真还是重新实现?

这是主要问题。不幸的是,没有简单的答案。

理论上,FPGA 可用于构建那些旧机器的完美复制品。这可以比 PC 上的任何软件仿真器更准确地完成,因为 PC 上的仿真受 PC 硬件和在其上运行的操作系统强加的某些时间限制。模拟器将始终受到后台 PC 上发生的其他事情的影响。这些影响通常在速度较快的 PC 上较小。为了以令人满意的方式模拟 Amiga 或 Atari ST 系列的计算机,需要相当快的 PC。

FPGA 没有这些问题。任何数字功能都可以在 FPGA 上以非常高的精度实现。此外,FPGA 可用于实现旧硬件接口,以连接到旧的传统硬件,如游戏杆或软盘驱动器。这需要在 PC 上安装额外的硬件,而且通常是不可行的。

在现实中,一个非常重要的因素起着最重要的作用:模拟器的用户群是巨大的。大多数人都拥有一台 PC 并且可以运行模拟器而无需额外费用。因此,模拟器有很多用户,也有很多开发人员在为它们工作。尽管在仿真器中实现某些东西比在 FPGA 中实现要困难得多,但更大的开发人员和用户群通常会提供出色且近乎完美的结果。

另一方面,使用基于 FPGA 的系统需要用户购买特定的硬件。因此,用户和开发人员基础要小得多。另一方面,使用硬件 FPGA 重新创建旧计算机硬件比使用软件模拟器更容易。因此,基于 FPGA 的设置实现的兼容性非常好。

那我为什么要获得基于 FPGA 的设置呢?

基于 FPGA 的设置通常是微型节能设备。相反,对 Commodore Amiga 或 Atari ST 进行体面模拟所需的 PC 是一个耗电大的盒子。

如果您已经拥有一台 PC 并且不介意将它用于您的复古游戏需求,那么模拟器就可以了。如果您想拥有一个可以随身携带并轻松连接到电视以快速体验 Goldrunner 的小盒子,那么请获取基于 FPGA 的设置。

此外,PC 需要先启动到自己的操作系统中。相反,FPGA 带回了那些早期机器的旧“即时启动”体验,并且可以在几秒钟内启动游戏。

像 GameGirl 这样的针对游戏的 FPGA 板通常带有用于旧游戏杆的连接器。PC 通常使用现代游戏手柄。但是很多人更喜欢在旧游戏中使用原始操纵杆。

FPGA 很花哨。它们不同于当今 PC 中使用的任何技术。