如果您曾经阅读过复古游戏仿真,那么您可能遇到过一种称为现场可编程门阵列(FPGA)的半导体类型。这些是特殊的集成电路,由于可配置逻辑块(CLB),可以在制造后重新配置自己。换句话说,你基本上可以重新编程芯片组,使其充当任何其他类型的数字电路,这在人工智能、芯片组设计和其他领域都有多种应用。
fpga有很多用例,像analog Pocket这样的设备利用它们来支持不同的手持设备。然而,微软也使用fpga来为必应提供动力,因为它允许公司在开发新算法时快速重新编程以支持新算法。
FPGA与传统cpu:有什么区别?
与标准芯片组(例如Snapdragon 8 Gen 2)相比,FPGA不是为在现场重新编程而设计的。它是一个片上系统(SoC),由多个部分组成,包括GPU、NPU和CPU。一旦发货,消费者和企业就会收到这款产品。
然而,fpga旨在具有延展性,因此用户可以在不引入任何额外成本或风险的情况下改变芯片的部分。在快速发展的行业,如自动驾驶汽车,新的法规和标准可以在任何时候引入设备的任何方面。使用FPGA可以允许OTA更新重新编程芯片以支持新标准。
fpga和传统cpu之间的一个巨大区别是,它们被设计成以更低的时钟速度为代价并行处理数据。例如,具有10个数据处理管道的FPGA可以在每个管道上对两个数字执行乘法运算,每个周期乘以20个数字。传统的CPU每个周期可以按顺序乘以两个数字。
fpga如何为仿真工作?
fpga通常用于硬件仿真,芯片组设计过程中一个有趣的部分是使用fpga在测试中模拟SoC的不同部分。芯片组设计人员可以使用多个fpga来设计专用集成电路(ASIC)的原型。硬件描述语言(HDL)用于创建硬件设计,该语言告诉FPGA如何安排自己。在《Analogue Pocket》中,这些设计以Verilog编写的“核心”形式分发,用户可以下载一个核心,为特定的掌机做准备。
例如,Analogue Pocket可以直接在卡带插槽中读取Game Boy游戏,并像原版主机一样玩游戏。不仅如此,卡带适配器还增加了对其他设备的额外支持,例如Game Gear, Atari Lynx等。这是唯一可能的,因为FPGA的可重新编程特性,利用硬件仿真而不是软件仿真来确保游戏可玩。MiSTer(使用DE-10 Nano FPGA板作为基础,并需要在其上附加模块)的相似之处在于,它可以用来模拟游戏机,如SNES,世嘉Genesis,甚至GameCube。硬件仿真通常比软件仿真更准确,同时也提供性能优势。
虽然硬件会随着时间的推移而老化并变得不可靠,但fpga可以简单地重新编程以模拟相同的硬件体验。
当然,这并不意味着内核是对芯片组完美的一对一HDL解释。它们非常接近,但是随着时间的推移,对核心进行了修复和改进,以解决在正常使用中可能发现的问题。这些核心是通过对这些设备中的芯片组进行逆向工程制造的,它们需要绘制出主板上的每个组件。在定制的专有芯片组中,这变得更加困难,开发人员通常需要用显微镜观察“未封盖”的芯片,以观察芯片内部的具体情况并复制它。
这就是为什么fpga对于硬件保存也很重要。虽然硬件会随着时间的推移而老化并变得不可靠,但fpga可以简单地重新编程以模拟相同的硬件体验。芯片会重新排列自己内部的物理逻辑,以匹配给定的内核。开放fpga生态系统旨在帮助硬件保存。
除此之外,你还可以在更好的硬件上以一种合理的方式玩这些游戏。你可以花220美元买一台Analogue Pocket,像过去一样玩Game Boy游戏,但拥有更高的构建质量,更好的屏幕,甚至支持基座。
fpga的缺点
然而,也有一些缺点。首先,它们比传统cpu占用更多的空间,而且它们的生产成本也高得多。像analog Pocket和MiSTer FPGA这样的设备花费很多钱,如果你再买一些附加组件,后者会让你花费500多美元。大多数人更喜欢在他们的智能手机或电脑上模拟游戏,而不关心硬件级模拟所提供的像素完美精度。
当然,fpga在某种程度上也处于与消费者相关的婴儿期,近年来才开始流行起来。实际上,它们在科学家、芯片组架构师、人工智能等专业用例中已经存在了很长时间,但直到最近几年,消费类设备才出现,并且可以以更休闲或爱好者的方式使用。
对于大多数想要进入模拟游戏的人来说,专用设备的便利性保证了真实的原始体验是诱人的,但这并不是每个人都需要或关心的东西。就我个人而言,如果我想玩像《超级马里奥兄弟》这样的游戏,我很乐意在手机上玩。我不需要专门的设备,但我理解拥有一个的吸引力。