FPGA:终极灵活性
现场可编程门阵列或 FPGA 是一种集成电路,可以在制造后重新编程以模拟数字电路。
本文引用地址://www.cazqn.com/article/202307/448273.htm这些非常适合在批量生产之前制作新功能的原型,或者服务于对于定制芯片来说不经济的罕见用例。FPGA 并不是第一个具有此功能的器件,但它们是迄今为止商业上最成功的。他们的发展故事是技术与商业的迷人结合。
几十年来,人们一直在寻找重新编程芯片的方法。
开始
回到过去,如果有人想在某些实际硬件上制作原型并测试其逻辑功能,那么他们基本上只有两种选择。
首先,他们可以使用 TTL 芯片,这些是可以插入印刷电路板的晶体管。该方法的缺点是受到电路板尺寸和功耗限制的限制。
另一种选择是定制芯片。正如所料,这种选择会产生大量的前期成本。这意味着要支付光掩模费用,然后等待数月的制造时间。如果在设计中犯了一个错误,那么就无法准确地编辑 JS 文件并重新编译。
如今,这些定制芯片被称为 ASIC 或专用集成电路。除非你的用例非常大,否则采取这条路径可能没有经济意义。
但是,如果需要拥有一个可以重新编程以具有你原型设计的功能的电路,该怎么办?随着 20 世纪 60 年代后集成电路的应用越来越广泛,现场可编程性开始变得更加迫切。
PROM
第一个能够实现可编程逻辑功能的集成电路是可编程只读存储器—PROM。
1970 年,Harris Semiconductor 推出了 PROM,可对其进行编程以实现可编程逻辑门阵列—AND 集和 OR 集。输入首先进入 AND 集。然后,这些输出会输入 OR 集,最后输出给最终用户。
为什么是「与」门和「或」门?有一种逻辑函数称为组合逻辑或与时间无关的逻辑。在这里,函数的输出完全取决于你提供的输入内容,就像一个确定性系统。
这与顺序逻辑函数相反,顺序逻辑函数是一种输出需要其他外部项的逻辑。就像滚动的总和一样。如果你不记得之前的金额是多少,如何才能保留滚动金额?
回到组合。任何组合逻辑函数都可以由多个「或」门和「与」门来表达。这就是早期现场可编程逻辑电路的目标。
Harris 的 PROM 产品出厂时与门已修复。这意味着它们无法被修改。或门是可编程的。为了使它们可编程,Harris 在发货时配备了由镍铬合金而不是传统铝制成的易熔金属链接。
用户通过「烧毁」开关进行编程——本质上使它们只能一次性使用。这使得编程变得颇具挑战性。你可以想象,为了不搞砸,有多大的压力。
Harris 在制造这些可燃保险丝方面做出了开创性的工作。他们在晶圆上创建了测试保险丝,并在测试过程中将其熔断,以确保其正常工作。
事实证明,使用 PROM 实现可编程逻辑并不是真正有效,因为你不需要所有这些存储单元来完成它,你需要更专业的东西。
可编程逻辑阵列
1975 年,Signetics(后来成为 NXP Semiconductors 的一部分)向市场推出了可编程逻辑阵列 (PLA)。
通过 PLA,逻辑门的 AND 组和 OR 组都变得可编程。这使得用户能够实现更广泛的逻辑功能,例如最小乘积和,但成本很高。
PLA 需要更大的芯片,从而提高了总体成本。当时每个零件的价格按 1975 年美元计算约为 25 美元,相当于今天的 140 美元。
再次,通过烧毁保险丝连接来编程路线,因此错误的代价很高。巨大的灵活性带来了巨大的容错能力。不管怎样,可以在这里看到市场的挑战。尽管有这些优点,PLA 却从未真正流行起来。市场仍然需要一些东西来满足现场可编程性的需求。
可编程阵列逻辑和 MMI
1977 年,Monolithic Memories 的工程师 John Birkner 和 HT Chua 修改了 PLA,创建了一种新设备。
可编程阵列逻辑(PAL)。是的,实际上只是最后两个词颠倒了。PAL 牺牲了一些可配置性来获得更好的性能和成本。它保留了可编程的 AND 门组,但固定了逻辑门的或集。PAL 设计所做的另一项修改是通过使用宏单元包含时序逻辑电路。
实际的计算机电路混合使用组合逻辑和时序逻辑。因此 PAL 设计者在 PAL 输出端添加了触发器等时序逻辑类型的器件。
触发器是一种可以存储一位信息(通常是 1 或 0)的电路,并可以将其用作输出计算的一部分。就像电灯开关记住它是否被翻转一样。添加这些时序逻辑电路使 PAL 更适合消费者的日常使用。
然后在 20 世纪 80 年代初,新技术的出现使这些电路更易于重新编程。例如,你可以通过窗户照射紫外线来将其擦除,不再需要保险丝。这些小型现场可编程器件(PLA、PAL 等)可归类为简单可编程逻辑器件。
PAL 取得了一些成功并被广泛制作。内存制造商发现它们与他们的核心产品足够相似,可以添加到他们的产品中。Monolithic Memories 使用户可以轻松学习如何使用它们。但 PAL 仍然面临着一个大问题,新公司很快就出现来挑战它们的缺点。
阿尔特拉 Altera
1980 年,一群原来自 Intel、Signetics 和 Intersil 的工程师创立了一家名为 Source III 的设计咨询公司。他们专门帮助公司与其芯片供应商合作,这在设计工具还不够出色的时代是一件大事。
他们与 ASIC 芯片制造商合作的经验促使他们尝试制造自己的现场可编程硬件。就这样,他们从风投那里筹集了 75 万美元,并成立了一家新公司——Altera。
他们的第一款产品于 1984 年 7 月发布,是 EP300,一种采用 CMOS EPROM 工艺制成的简单可编程逻辑器件。它是可擦除的,并且可以编程以满足各种需求。
PAL 的一个大问题是它的结构无法扩展。摩尔定律允许芯片上有更多的晶体管,但不能简单地增加与门组并按比例获得更好的性能。它变得太大并且开始减慢。
因此,为了更好地利用经典微缩技术,Altera 率先推出了复杂可编程逻辑器件。在这里,我们采用一堆较小的 PAL,并使用交叉连接将它们连接起来,以提高可扩展性。
Altera 选择使用 CMOS 也具有影响力。当时美国还没有 CMOS,公司不得不去日本理光购买。
Altera 的成功预示着当今推动美国半导体世界发展的无晶圆厂设计模式的开始。
赛灵思 Xilinx
Altera 的复杂可编程逻辑器件向前迈出了一步,但正是另一家公司将这一概念变成了我们今天的样子。
20 世纪 80 年代中期,美国半导体制造商 Zilog 的一位名叫 Ross Freeman 的工程师有了一个想法。
如果摩尔定律继续下去,那么最终晶体管将变得如此便宜,以至于可以制造出满足每个人需求的硅片。
他招募了一些 Zilog 同事加入他的新创业公司,帮助实现这个梦想。他们将其命名为 Xilinx,因为其原名 Logica 已被采用并于 1984 年 2 月正式启用。
他们利用之前与精工公司(数字手表制造商)的联系,达成了生产新芯片的协议。他们将其宣传为精工保持工厂忙碌的一种方式,并提供在日本的独家转售权。
为了实际设计该产品,Xilinx 聘请了一位名叫 Bill Carter 的年轻设计师。Carter 面临着巨大的挑战。他们唯一的设计指导是罗斯·弗里曼的专利申请。
此外,Seiko 使用 CMOS 2.5 微米工艺进行制造,而 Carter 此前没有这方面的经验,他必须在与太平洋彼岸的一家讲日语的晶圆厂沟通时即时学习它。
该芯片必须非常大,精工自己的工程师承认他们以前从未制造过这么大的东西,并提出了这个东西的风险。对于一个年轻的初创公司来说,这样的事情将是一场灾难。
Carter 被反复告知要创造一些简单的东西。不要尝试任何疯狂的事情,因为他们可能无法做到。他们制作的东西确实简单而优雅。
Xilinx XC2064,第一款 FPGA。
FPGA 的出现
因此,如果我们回到 PAL,就会发现有一组与门和一组或门以及其他电路的宏单元,例如前面提到的触发器。
与门是芯片现场可编程性的来源。正如我之前所说,PAL 架构的核心问题是,如果 AND 门集变大,那么它就会变慢。这是因为该组内的晶体管数量的增长速度远远快于「与」组两侧的输入/输出数量的增长速度。这些投入/产出无法快速增长。
FPGA 针对这一缺点的解决方案是完全删除 AND 门组。FPGA 将具有一系列与可编程开关连接在一起的可配置逻辑块。设备输入和输出放置在设备周围。
每个可配置逻辑块内部都有一对查找表,基本上就像映射到输入的输出数组。这个查找表就是 FPGA 实现任意逻辑功能的方式。
如有必要,函数结果可以路由到其他逻辑,例如触发器。逻辑块之间的互连本身是可编程的。连接可以配置为创建任意路径,以便一个块的输出可以成为其相邻块的输入。
第一批 Xilinx FPGA 要求用户连接外部存储器以在断电时存储编程。直到几年后,一家名为 Actel 的公司发明了反熔丝技术,对此有所帮助。
所有这一切与之前相比发生了根本性的变化。PAL 和 PLA 源自内存芯片,它们的结构具有家族相似性。另一方面,FPGA 看起来与此完全不同。
第一个 FPGA
XC2064 是一款大型芯片,约有 85,000 个晶体管,排列成 64 个可配置逻辑块和 58 个输入/输出块。这相当于不到 1,000 个门,这在今天看来并不那么令人印象深刻。
然而,早在 1985 年,当该芯片首次流片时,其庞大的尺寸就限制了 Seiko 的制造能力。Carter 和他的团队焦急地等待着精工收到第一盒 25 片晶圆。
他们打开盒子,希望能够用一些东西对芯片进行编程。在这 25 个晶圆中,只有 1 个可以工作——第 11 个。Carter 非常小心地拿走了最后一块晶圆,并成功地在逆变器中进行了编程。它奏效了,于是第一个 FPGA 诞生了。
FPGA 与 PAL
该设备与 Monolithic Memories 的 PAL 设备竞争,大多数客户将两者混为一谈。它们看起来做着同样的事情,但本质上 FPGA 与 PAL 有很大不同。
首先,它的成本要高得多。这直接是因为模具太大,导致良率极低。因此,第一块 FPGA 的成本为数百美元,而 PAL 则便宜得多。PAL 便宜得多,部分原因是它的结构与内存相似。如此相似,以至于内存制造商将它们添加到他们的产品阵容中,每当内存业务遇到困难时就大量生产它们。
其次,FPGA 的新颖性使其使用起来更加困难。Xilinx 推出了自己的电子设计自动化或 EDA 软件,以帮助将设计融入 FPGA。它很复杂并且很难使用。此外,其性能也不容易预先预测。
与此同时,PAL 更容易理解。他们的 EDA 软件很简单,并且可以通过第三方广泛使用,用户发现很容易上手。
这种 EDA 福利对消费者来说非常友好,但事实证明它对 PAL 行业是一种长期损害。
摩尔定律
然而,尽管存在所有这些早期的缺陷和缺点,第一款 FPGA 还是在市场上站稳了脚跟,并最终蓬勃发展。FPGA 如何成为一个可行的竞争对手?
首先,我们得谈谈摩尔定律。FPGA 的推出恰逢其时——技术与商业机会的交叉点
在技术方面,成熟的光刻技术将经典缩放速度提高到了令人难以置信的速度。正如我所说,FPGA 可以扩展,而 PAL 则不能。因此,当晶体管成本大幅下降时,FPGA 最先受益。
需要连接晶体管。同样重要的是,一种称为化学机械抛光的新工艺使代工厂能够大幅降低 FPGA 互连的制造成本。
突然之间,FPGA 的查找表数量和互连线长度开始呈指数增长。第一个 FPGA 速度缓慢且功能有限,但摩尔定律使其变得更快、更强大。那是技术方面。
在商机方面,20 世纪 90 年代初见证了独立代工厂的兴起。Altera 和 Xilinx 是无晶圆厂创业模式的早期先驱。突然之间,任何一组设计人员都可以提出一个想法,筹集资金,然后联系一家晶圆厂来制造它,无需首先真正精通半导体制造。
代工厂则可以专注于解决早期困扰精工的问题。他们发现带有大芯片的 FPGA 确实非常适合磨练和掌握他们的流程。
FPGA 市场因各种全新的 FPGA 初创公司而蓬勃发展。几乎所有这些初创公司最终都关门大吉或退出 FPGA 业务,但他们引入了优化并发现了新功能。然后,Xilinx 和 Altera 将吸收他们的知识产权和专利,并将其添加到当前的产品阵容中。
电子设计自动化 EDA
另一个很大的区别是软件。正如我之前提到的,PAL EDA 软件更易于使用,并且可以通过第三方供应商广泛使用。
然而,这种对消费者友好的局面也有其劣势。PAL 制造商无法控制软件,因此无法决定其硬件的功能。这完全取决于他们的第三方 EDA 供应商。PAL 制造商很快意识到他们只能做 EDA 软件制造商能够支持的事情,这限制了他们。
所有 PAL 制造商最终都生产类似的硬件,例如廉价的 Wintel PC 制造商。市场跌至最低点。
与此同时,FPGA 控制着自己的 EDA。就像 Nvidia 编写自己的驱动程序一样,它允许 FPGA 公司决定自己的未来,制作软件以实现更多功能并增加自动化以提高生产力。
结论
Xilinx 和 Altera 继续占据数十亿美元 FPGA 行业的多数份额。尽管这两家公司不再独立。英特尔早在 2015 年就以约 167 亿美元的价格收购了 Altera。AMD 估计以 500 亿美元收购了 Xilinx,最终于 2022 年完成。
如今,FPGA 已广泛应用于各个行业。随着 ASIC 的设计和制造成本越来越高,FPGA 填补了市场上的宝贵空白,尤其是在航空航天、军事和电信领域。
它们不断获得新的功能,扩展到人工智能处理和数据中心等领域。挑战仍然存在,我们将在以后的视频中讨论这些挑战,但 FPGA 的功能和成功是一个独特的硅谷故事,也是行业创新能力的体现。
评论