被专有软件拖慢了三十年:FPGA 为何必须拥抱开源

作者: Chris Wardman, Boston Hardware Studios

FPGA 正被陈旧的专有软件所限制。了解为什么拥抱开源工具对于推动 FPGA 开发现代化、释放其全部潜力至关重要。

FPGA 已经存在数十年,却从未真正得到应有的重视。它们长期被视为强大但晦涩,充满潜力却麻烦不断。

而具有讽刺意味的是:最误解 FPGA 的人,往往就是制造 FPGA 的那些公司。

一个历史遗留问题

Altera 和 Lattice Semiconductor 成立于 1983 年;Xilinx 随后在一年后成立。这三家公司自此定义了 FPGA 的版图。但尽管它们制造高性能芯片,也同时制造并控制用于编程这些芯片的软件。而这些软件仍停留在 1970 年代的思维方式上(这可不是好事)。

想象一下当年的 IBM 模式:你买芯片、再去许可编程软件、购买专有硬件将代码写入,甚至还要把工程师送去为期一周的培训班学习如何使用它。这样的商业模式在科技行业其他地方早已死亡,但在 FPGA 世界中却顽固地存活着。

FPGA 的本质是什么

要理解我们为何走到今天这一步,需要重新回顾 FPGA 的本质。

处理器和 FPGA 都有时钟。在典型处理器中,我们编写顺序执行的代码:每个时钟周期完成一个指令操作。

相比之下,FPGA 定义的是数据通路,描述信号应如何在每个时钟周期依据内部状态和外部输入发生变化。换句话说,我们描述的是全局的逐时钟周期行为,而不是逐步骤的数据操作。

两类设备的基本原理都很简单。处理器内部结构虽然可能极其复杂,但 FPGA 大多数时候并不是这样——它本质上是一块均匀的逻辑块结构。

图1.png

简化后的 FPGA 架构示意图(图源:英特尔)

由于 FPGA 的运行方式完全不同,我们无法使用传统的编程语言给它编程(尽管曾有许多尝试)。我们必须使用硬件描述语言:VHDL 或 Verilog,而这几乎从不会由软件团队来处理。

巨大的误区

第一个大误区是:HDL 是“硬件”。不是。HDL 本质上是“软件”,应该按软件方式来管理。

不幸的是,VHDL 和 Verilog 是遗物。两者诞生于 1980 年代,它们又借鉴了 1960–70 年代的编程语言。两者都很糟,但工程师们仍被迫使用它们,因为工具链是封闭的,供应商缺乏动力,没有任何外部力量能迫使他们改变。

为什么没有更好的语言诞生?因为工具链被锁死。半导体公司没有内部动力推进变革,也没有外部压力迫使它们改进。此外,公司往往更愿意把开发任务甩给硬件团队,因为软件工程师不会容忍糟糕语言与平庸专有 IDE 的组合,以及完全脱离现代软件开发体系的工作方式。

结果就是:工程师被困在过时语言和像博物馆展品一样的 IDE 中开发。开发过程痛苦不堪,公司只在“不得不”时才使用 FPGA,通常是处理极其复杂的任务。于是 FPGA 厂商开始按“复杂任务”来设计产品,进一步强化了 FPGA “缓慢、复杂、昂贵”的行业刻板印象,形成恶性循环。

不必这样

这种观念是错误的。HDL 的确有学习成本,但在简单设计上,它往往比传统编程更快。比如,用 HDL 写一个 SPI 接口比在 MCU 上编写 SPI 驱动更简单。

我曾希望 Xilinx 推出 Zynq 系列(把处理器与 FPGA 结合)能改善情况。然而,配套工具极难用,反而让情况更糟,把开发者进一步推远。

在实际应用中,FPGA 几乎总是和某种处理器结合使用。有时像 Zynq,一体化;更多时候是一颗小 MCU。FPGA 本就是连接处理器与物理世界的优秀桥梁。但我们却把软件和 HDL 当成两个独立应用,甚至分交给完全不同的团队。这种分裂是极其低效的。

我们是怎么卡住的

2015 年,Intel 收购了 Altera;几年后,AMD 收购了 Xilinx。当时战略聚焦数据中心:让 FPGA 与 CPU 搭配,加速加密等特定工作负载。在纸面上有道理,但实际从未获得规模化成功。

十年后,FPGA 在数据中心基本被边缘化。AI 让 GPU 成为首选硬件,Intel 和 AMD 的重心也发生偏移。FPGA 硬件价格上涨,创新停滞。Intel 正剥离 Altera 业务,AMD 则把 Xilinx 引导向 AI 相关芯片。

这使得行业里真正独立的 FPGA 厂商只剩一家:Lattice Semiconductor。

Lattice 的机会

Lattice 拥有难得的机会去引领行业,不是靠工程实力碾压巨头,而是通过改革其生态系统。

目前已有爱好者基于逆向工程 Lattice 器件而构建的开源工具链。这些工具已经比官方工具更易用。即使厂商不做代码贡献,只要开放完整文档,它们就能演化为一流的开发环境。

莱迪思.png

Lattice Avant-X Versa FPGA 原型板(图源:莱迪思)

如果 Lattice 拥抱开源,它可能开启 FPGA 的新纪元。想象一下:现代化语言、智能 IDE 集成、便捷工作流——让 FPGA 开发自然融入嵌入式工程,而非成为冷门的小众技能。

FPGA 的未来方向

专有工具链数十年来束缚着 FPGA。如果开放工具生态,社区就能推动创新,构建更好的语言,创造符合 2025 年及未来软件工程师期望的用户体验。

追逐 AI 或数据中心从未真正让 FPGA 成功。FPGA 的未来在于回归其最初承诺:灵活、高效、人人可编程的硬件。技术早已成熟,唯一缺失的是一个真正释放它的生态系统。

本文编译自:Allaboutcircuits