FPGA电源的“护理和喂养”:成功的道与因

简介

现代FPGA是有史以来最复杂的集成电路之一,它们采用最先进的晶体管技术和顶尖的架构,以实现令人难以置信的灵活性和最高的性能。随着时间的推移和技术的进步,这种复杂性决定了,在用FPGA设计和实现系统时,需要做出某些妥协。这一点在电源中最为明显,FPGA每次更新换代,电源都要提高精度、灵活性、可控性、效率和故障感知能力,还要减小体积。

在本文中,我们将专门讨论针对Altera® Arria 10 FPGA的部分约束性规格以及这些规格对电源设计的影响。然后,我们将讨论最佳供电解决方案,讨论如何运用ADI公司的整套电源系统管理(PSM)IC(包括LTC3887, LTC2977LTM4677),成功地达到规格要求,使FPGA实现最佳的效率、速度和功率水平。

FPGA电源要求(解读数据手册)

工程师应该将大部分时间用于编程——他们不希望花费时间和精力去考虑如何设计合适的电源。实际上,最佳供电方案就是采用一种既能满足项目当前需求,又能达到项目升级发展需求的,强大、灵活且行之有效的设计方案。在此,我们将仔细考察一些重要的电源规格及其含义。

电压精度

内核电源电压是平衡FPGA功耗和性能的、最重要的关键要素之一。规格文档给出了一系列可接受的电压,但总的电压范围并不是问题的全部。与所有事物一样,需要进行权衡和优化。

表1是当下流行的Altera Arria 10 FPGA 1的内核电压规格示例。虽然这些数字是Arria 10特有的数据,但它们代表了其他FPGA内核电压要求。电压范围为标称电压另加±3.3%的容差。在此电压窗口内,FPGA会正常运行,但问题的全貌要复杂得多。

表1.Altera Arria 10内核电压规格
符号 描述 条件 最小值 典型值 最大值 单位
VCC 内核电压电源 标准功率和低功率 0.87
0.92
0.9
0.95
0.93
0.98
V
V
SmartVID 0.82 0.93 V

注意标有"SmartVID"的行,其电压范围为0.82 V至0.93 V。这表示,当FPGA通过SmartVID 2接口(详见后文)请求自身的内核电压时,FPGA可以接受的各种电压。该SmartVID规格表明了有关FPGA的一个基本事实:FPGA可以在不同电压下运行,具体取决于其特定的制造容差以及采用的特定逻辑设计。FPGA的静态电压可能各不相同。电源必须具备响应和适应能力。

设计目标是产生恰好能满足编程功能需求的性能水平,不消耗不必要的功率。根据半导体的物理特性以及Altera、Xilinx®(图1)和其他公司公布的数据可知,动态和静态功率会随着内核V DD的增加而显著提高,因此我们的目标是确保,给FPGA提供的电压刚好达到其时序要求即可。功耗过大无助于提高性能。实际上,功耗过多会使情况变得更糟,因为晶体管泄漏电流随着温度的升高而增加,从而消耗更多不必要的功率。由于这些原因,当务之急是优化设计和工作点的电压。

图1.Xilinx Virtex V功率与内核VCC

这种优化过程需要非常精确的电源才能获得成功。必须将调节器误差纳入误差预算,并从可用于优化的可用电压范围中减去。如果内核电压降至要求电压以下,则FPGA可能因时序错误而发生故障。如果内核电压漂移至最大规格值以上,结果可能会损坏FPGA,或者可能会在逻辑中形成保持时间故障。为了防止所有这些情况,必须考虑电源容差范围,并且指令电压必须保持在规格限值以内。

问题是大多数电源调节器都不够准确。调节电压可能是指令电压容差范围内的任何电压,可能随负载条件、温度和老化而漂移。保证±2%容差的电源可以在4%的电压窗口内任意调节电压。为了补偿电压可能比下限值低2%的问题,必须将指令电压提高到比时序要求2%的水平。如果调节器然后漂移到比指令电压高2%的水平,它将在比该工作点所需的最小电压高4%的水平运行。这仍然符合FPGA的指定电压要求,但却浪费了大量功率(图2)。

图2.电源调节器容差权衡。

解决办法是选择能支持更严格的电压容差的电源调节器。容差为±0.5%的调节器可以在要求工作频率下,在更接近最小规格要求的范围内工作,并且保证与所需电压的偏离幅度小于1%。这种情况下,FPGA会正常工作,并且其功耗将达到该工作条件下的最低水平。

LTC388x系列电源控制器可在较宽的可配置电压范围内,保证调节输出电压容差优于±0.5%。LTC297x系列电源系统管理器可保证调整后的电压调节器容差优于±0.25%。在这些精度条件下,对于FPGA,显然都能使其功耗与性能之间达到最佳平衡。

热管理

就电源精度而言,一个更微妙的意义体现在热预算当中。由于静态功耗远远没有达到可以忽略不计的程度,因此FPGA即使在无所事事的情况下也会升温。温度升高会导致更多的静态功耗,从而进一步提高工作温度(图3)。向电源添加不必要的电压只会使该问题变得更加糟糕。不准确的电源需要工作电压保护段,确保有足够的电压来完成此项工作。由容差、系统组件变化和工作温度的变化引起的电源电压不确定性可能产生明显高于所需最小值的电压。当施加到FPGA时,这种额外的电压可能导致热效应,甚至可能在高处理负载下导致热失控。

图3.电源电流与工作温度的关系。

补救措施是选择一种非常精确的电源,该电源仅产生恰当且不超过必要的电压,这正是ADI电源系统管理(PSM)器件所擅长的。

SmartVID

SmartVID是Altera公司出品的一种技术,该技术用于按照FPGA本身的要求,为每个FPGA提供最佳电压。FPGA内部有一个寄存器,其中包含一个因器件而异的电压(已在出厂中编程),可保证FPGA高效运行。FPGA内部编译的一项IP功能可以读取该寄存器,并通过外部总线向电源发出请求,要求提供这个精确的电压(图4)。一旦达到电压要求,它就会在运行期间保持静止。

图4.Altera SmartVID结构。

SmartVID应用对电源的要求包括特定的总线协议、电压精度和速度。总线协议是FPGA用于将其所需电压传送到功率调节器的几种方法之一。在可用的方法中,PMBus最为灵活,因为它可以满足最广泛的电源管理IC的需求。SmartVID IP使用两个PMBus指令:VOUT_MODE和VOUT_COMMAND,用于命令符合PMBus标准的功率调节器达到正确的电压。

调节器的电压精度和速度要求包括自主引导电压(在PMBus激活之前),能每10毫秒接受一个新电压指令,在电压调整阶段每10毫秒能步进10 mV,并且能在10毫秒的步进时间内稳定在目标电压30 mV(~3%)范围内,最终升至指令电压并在FPGA工作期间保持静止。

虽然Altera使用的是SmartVID技术,但业界使用的其他类似技术也可以完成相同的任务。一种最简单的方法是在工厂测试每块电路板,并在电源的非易失性存储器中编程一个精确的电压,优化该特定电路板的性能。使用该技术时,不需要进一步干预,电源就能在正确的电压下工作。这是搭载EEPROM的电源管理器或控制器的优点之一。

LTC388x系列电源控制器可满足Altera SmartVID的所有要求。此外,LTM4675/LTM4676/LTM4677 μModule调节器可以轻松满足这些要求,而且通过单一紧凑的形式提供了完整的解决方案。

时序收敛

任何逻辑模块的计算速度均取决于其电源电压。在限值范围内,电压越高,性能越快。我们已经看到,为什么不能采用简单的办法,即在最高电压下运行,保证获得最佳速度。另一方面,我们必须使工作电压足够高,能满足应用需求,如图5所示。

图5.FPGA工作频率与VDD之间的平衡关系。

图5的一个重要启示是,当特定设计达不到其逻辑时序要求并处于故障区域时可以采取哪些措施。通常,在将设计转化成硬件之前,很难准确定义正常工作与故障之间的界限,也无法预先确定它将在哪个特定电压下超过时序要求。唯一的选择是提前确定一个远高于最小值的电压,以浪费功率为代价来保证功能;或者设计一种灵活的电源,以在测试时适应硬件需求,甚至在采用SmartVID技术的情况下,能在加电时适应硬件需求。适应未知需求的能力使得ADI PSM器件的精度更具价值,因为FPGA设计师可以在实际设计阶段和任何开发阶段在功耗与性能之间进行权衡。

电源定序101

在摩尔定律的驱动下,现代FPGA中的晶体管不断缩小,迫使我们在使用这些微小的晶体管时进行权衡,这些晶体管又快又小,同时也更加脆弱。一块芯片包含数亿个晶体管,我们必须将它分割成可以设计并独立管理的内核段、模块段和隔断。这些考虑因素造就了具有许多电源域的FPGA。最近的一些FPGA有十几个需要妥善管理的电源。在电压、电流、纹波和噪声以外,还包括启动、关断和故障条件期间的序列顺序。

最新的FPGA规格针对启动和关断电源时的序列顺序提出了特定的要求。Xilinx和Altera都建议采用特定的顺序和时序,确保FPGA正常复位,保持最小的电流消耗,并在电源转换期间将I/O保持在正确的三态配置下。考虑到每个FPGA涉及到的电源数量,定序任务可谓相当复杂。

Altera Arria 10的技术规格将电源分为三个序列组(1、2、3),并要求它们按升序排列为1、2、3,然后按相反的顺序降序排列:3、2、13

Figure 6. Altera Arria 10 up-sequence group order.

类似地,Xilinx针对Virtex UltraScale FPGA升序序列的建议为:VCCINT/VCCINT_IO、VCCBRAM、VCCAUX/VCCAUX_IO和VCCO。降序序列与升序顺序4相反。

这些只是众多FPGA中的两种。几乎每个现代FPGA系统都有多个电源轨,最明显的一个问题是,它们应以何种顺序打开和关闭?即使没有明确的定序要求,也有充分的理由,强制以确定性的序列来执行事件。以下是一些可用的设计选项。

  • 无定序方案:让电源自行升降。可能会出现什么问题?
  • 硬件级联定序方案:以硬接方式连接每个上升电源,以使能下一个电源。这种方式仅在电源上升时有效。
  • 基于CPLD的定序方案:使用可编程逻辑创建自定义解决方案。该方案非常灵活,设计师要承担全部挑战。
  • 基于事件的定序方案:基于事件的定序方案与级联定序方案类似,但更加灵活一些,因为该方案可上可下。专用的序列器IC能支持编程,还能处理许多故障情况和极端情况。
  • 基于时间的定序方案:基于时间的定序方案在指定时间触发各个事件。结合全面的故障管理方案,基于时间的序列器可以确保灵活性、确定性和安全性。

以下各节将更加详细地探讨这些方案。

无定序方案

可以打开电源系统,而不进行任何管理。当主电源可用或ON开关激活时,调节器开始调节。断电或ON开关关闭时,调节器停止调节。当然,这种方法有很多问题,有些问题更加明显。

缺乏时间确定性可能在系统中造成各种影响。首先,会对灵敏度很高的FPGA造成压力。这可能会导致直接的灾难性故障,或者可能导致过早老化,从而致使性能下降。两种情况均非善果。还可能导致不可预测的上电复位行为或上电时不确定的逻辑状态,从而使系统稳定性成为问题并且难以调试。在该方案中,故障检测和响应、能量管理和调试支持等问题完全没有得到解答。一般来说,回避电源定序定会引发灾难。

级联定序

一种条理性略强的定序方法是如图7所示经典PGOOD至RUN硬连线式级联方案。这就像多米诺骨牌掉落一样:每张骨牌依次触碰下一张,这保证了按序推进。该技术具有简单的优点。不幸的是,它也有缺点。虽然该方案能有效地升序定序电源系统,但不能逆序(或是任何其他顺序)运行,不支持降序定序。只能有一个序列顺序。此外,在不确定的运行条件下,该方案不能有效地处理故障或管理能量。该方案智能不足,无法做出任何决策。如果序列中有一个阶段发生故障,接下来会发生什么?如果一个工作正常的电源掉电,会发生什么?这些问题的答案都不明确,对这些问题进行调试亦非易事。

图7.PGOOD-to-RUN级联定序。

FPGA或CPLD定序

使用电路板上的辅助CPLD或FPGA对电源排序,这是许多设计师选择的方案。在由数字设计师设计的或为其设计的系统中,该方案具有一定的吸引力。一种十分自然的方案是设计一个可编程到FPGA中的数控模块,用于控制另一个FPGA的电源。这里的决定可能具有欺骗性,因为电源系统并不像数控那样简单。

如果设计师希望自上而下解决电源定序、控制和管理问题,他们必须首先全面了解其复杂性。我们已经讨论了其中的许多内容,但还有更多的内容尚未讨论,例如检测微秒级过压和欠压情况并做出反应,检测危险电流和温度,记录遥测结果和状态,提供启动和调试服务以简化硬件设计人员的工作等。在数字算法以外,所有这些考虑都需要专用的模拟硬件。

针对希望采用这种方式的勇敢的设计师,ADI公司提供了若干模拟前端IC,以帮助他们完成这项任务。在数字位和模拟电源之间的接口处,LTC2936 提供六个坚固、高精度的可编程阈值模拟比较器,用于检测快速事件并将数字状态发送到逻辑。该器件还有三个可编程GPIO引脚,可提供额外的功能。该可编程IC有EEPROM,后者可在启动时近乎即时地工作;该IC还能通过其I2C/SMBus接口存储故障遥测数据以便进行调试。图8展示了使用LTC2936的一种便捷方法。

图8.LTC2936可编程电压监控器。

在快速比较器功能外,还必须有一个模数转换器(ADC)来收集遥测数据。一种行之有效的方案是 LTC2418,它可以通过快速建立式24位Σ-Δ ADC和4线SPI接口监控多达16个通道的模拟信号。电路板控制器可以轻松地流式传输测量数据并监控系统中的多个目标点。

通常,使用FPGA或CPLD控制上电时序的方案有很多种。这种方法确实有效,但必须有人负责数字和模拟设计,包括所有不可避免的设计缺陷、难以想象的极端情况和故障以及令人怨声载道的支持问题等。电源系统当然有更简单的构建方法。

简单的序列器/监控器

解决强大的定序和故障处理难题是简单的序列器/监控器的份内之事。这些器件的重要作用是确定电源轨的序列,确保电源轨在运行(监控)期间保持在规定的限值以内。LTC2928 是一款简单易用的引脚带式可配置序列器,其序列时序(降序为反向的升序)和监控器电压阈值均可配置。该器件具有满足这些要求的潜力,但没有多余的功能,也未提供数字可编程或遥测功能。

图9.LTC2937电源监控器和序列器。

LTC2937属于带EEPROM的可编程序列器和监控器。该器件具有全面的数字可编程能力,拥有基于时间和基于事件的定序功能,可以对任意数量的电源进行定序和监控,还能把故障状态记录到EEPROM黑匣子当中。对于不需要电压管理和遥测功能的应用,这种解决方案有很大的价值。

Power System Management

To fully capture all of the benefits of complete PSM, use one of the Analog Devices PSM ICs. These introduce the ability to autonomously sequence up and down any number of power rails; accurately control rail voltages to better than 0.5% (or 0.25% in some cases); measure and report voltage, current, temperature, and status telemetry; cooperatively handle complex fault scenarios; and record detailed fault information to EEPROM.

Sequencing is done by a system of timing handshaking, with all ICs agreeing on time zero and the time base, and all sequence events happening at preprogrammed times (time-based sequencing). This allows any number of rails to sequence up and sequence down autonomously.

The family of PSM ICs includes controllers that have their own switch drivers and analog loop control to handle the switching power supply in all aspects. Alternatively, power supply managers contain a servo loop that wraps around an external power supply, adding all of the features of power supply management, including sequencing, supervision, and monitoring, to any power rail, from switching power regulators to LDO regulators. An example of a power supply manager is the LTC2975, pictured in Figure 10.

图10.LTC2975 4通道电源系统管理器。

µModule 器件

采用在BGA或LGA封装,集成度最高且每平方厘米提供的功能最丰富的解决方案是PSM µModule®器件。这些是完整的电源系统,在单个封装中纳入了控制器IC、电感器、开关和电容等器件。有些μModule调节器(如 LTM4650)不包含数字功能,因此可以从LTC2975提供的额外定序和管理功能中受益。有些μModule调节器(如LTM4676A)有自己的PSM功能,可以轻松与系统中的其他PSM IC集成。

图11.LTM4676A PSMμ模块双通道13 A调节器。

共享定序

PSM微型模块、管理器IC和控制器IC全力协调,通过简单的单线总线SHARE_CLK共享时序信息,从而实现上下定序。通过该单线,所有PSM IC共享各种信息,比如定序何时开始(零时)、时钟每次何时走时以及影响定序的其他状态信息。只需将系统中的所有SHARE_CLK引脚连接在一起即可实现这种协调。每个IC都有自己的序列时序编程功能,可以使用共享时基精确可靠地对事件(如使能和禁用、斜坡和发生故障时的超时)计时。

基本而言,SHARE_CLK引脚是一个开漏100 kHz时钟引脚。开漏意味着IC可以主动下拉或释放,并允许总线浮动。当总线上的所有器件都释放时,上拉电阻会将电压拉至3.3 V。这样,一个器件就可以通过下拉停止时钟,直到时钟准备就绪;这意味着所有器件必须在时钟启动之前达成一致:这是一种有效的零时信息传递机制,也是通过停止时钟来指示定序状态的一种有效机制。

共享故障处理

与SHARE_CLK引脚类似的是FAULT总线。系统中的每个PSM IC都连接到共享FAULT线,既可使用其开漏输出将其拉低,也可以在另一个器件拉低时进行响应。这为整个PSM器件系列提供了一种简单、快速的故障传递和响应方式。该行为完全可配置,并且在出现问题时,无论是在定序期间还是在稳定状态期间都支持协调响应。可以将系统配置为移除电源并尝试根据指定的时序重新定序,同时在黑匣子中记录有关系统状态的信息,并在发生故障时记录故障原因。该EEPROM黑匣子信息可通过I2C总线进行后续处理。

降序定序和存储能量管理

对电源进行降序定序时还要考虑一个额外因素:能源管理。越来越重要的是要在电源降序定序时为其提供确定的时序,这就需要仔细考虑系统哪些地方会消耗存储的能量。高功率电源可能有许多大型电解电容作为大容量电荷存储元件,并且这些电容会被充电,达到电源电压,其中保存着足够的能量,在不幸的条件下有可能炸毁未采取正确防护措施的器件。为了避免这种情况,FPGA制造商指定了用于保护器件的降序序列。对于Altera Arria 10,该序列如图125所示。

图12.Altera Arria 10降序序列组。

该降序序列隐含的要求是,电容中存储的所有能量都去了某个地方并被安全地消耗掉了。这有多种方法可达此目的,其中最简单的方法是在电容两端装一个固定电阻。该电阻在电源接通时总会消耗功率,但可以使其电阻足够大,从而将比较损耗降至最低,并使RC放电时间常数尽量短,达到可以接受的程度。充分放电电源所需时间是RC时间常数的倍数(通常为5倍),应进行优化以使电阻中消耗的静态功率达到可以接受的程度(如<¼ W)。对于1 mF电容和1.0 V电压,如果电阻值R =4Ω,则时间常数τ= 4毫秒,只需约13毫秒,即可将电源放电至50 mV以下。只要电阻额定值至少为1/4 W,该方法就足以满足需求,系统工作时的恒定损耗为¼ W,放电时间为13毫秒。

一种更复杂但非常安全的方案是仅当对电源放电时才切换电容两端的电阻。这种方法在需要时将电荷从大容量电容中拉出,并将其安全地消耗在开关FET的电阻和辅助串联电阻中,但避免了固定电阻的持续功率消耗问题。电路如图13所示。

图13.用FET对电源电容放电。

这种方法需要注意几个因素:控制、放电时间和功耗。必须有一个可用的信号指示放电开关在适当的时间关闭。开关FET是NMOS,因此控制信号必须充分升高到FET的VTH以上,以使其进入饱和状态。对于普通FET,此栅极驱动电压可能高达3 V至5 V。

典型的电解电容将具有数百毫欧的等效串联电阻(ESR),当电容放电时会消耗一些能量,但这些电容中有许多是并联的,因此总并联电容相加可能达数十个毫法拉,等效电阻为几十毫欧或以下。我们可以安全地假设,电容ESR将消耗存储能量的一小部分。

为了在合理的时间内对电容放电,放电RC时间常数必须小于期望放电时间的1/5th(以允许该电压下降到几毫伏以下)。这个计算非常简单(公式1),使用的是所有电容的总和以及FET和串联R的总和,以及RESR电阻的并联组合,其中N是并联电容的数量。

Equation 1

对于一个更大的系统,其中有一个50 mF的电容组,RDS + R =500mΩ,电压将在约125毫秒内降至50 mV以下。此时的峰值电流(和功率)为1 V /500mΩ= 2 A或2 W。由于大部分的存储能量在前两个时间常数中耗尽,所以,我们可以通过查看FET的安全工作区图(如图146中的示例所示),决定是否需要串联电阻。在这种情况下,我们的FET可以安全地承受2 W的脉冲超过10秒,因此不存在损坏的危险。然而,该FET的RDS小于20mΩ,因此串联R必须为480mΩ。我们必须确定串联电阻的大小,以便适当散热,因为电阻会消耗大部分的功率。通常,脉冲持续时间将比电阻的热时间常数短得多。电阻数据表中提供了更多的信息。

图14.NMOS FET安全工作区。

最强大的放电电路可以在各种条件下安全地消耗能量。图15中的电路显示了一种历经检验的方法。这种方法采用ON半导体FDMC8878放电FET和一个物理尺寸较大的SMD 1210型0.5Ω电阻。

图15.放电FET电路。

应对电源系统管理面临的挑战

如前所述,针对FPGA电源系统所有要求的最佳解决方案是ADI公司的PSM。该产品组合的优势包括:

  • 首屈一指的电压精度(优于±0.5%)
  • 搭载EEPROM存储器,全面的自主性
  • 完全可编程的集成式电源定序功能,横跨整个系统的独立上下时序功能
  • 强大的集成式全系统故障管理
  • 综合遥测功能:电压、电流、温度和状态
  • 协调式IC系列可解决电源系统各个领域的问题

Altera Arria 10 SoC开发套件展示了用于Altera Arria 10 SoC IC的ADI公司电源系统管理解决方案(图16)。

在该设计中(图17),内核电源的工作电压为0.95 V,工作电流为30 A。由于这些电源要求相对宽松,单个LTM4677模块就可轻松提供所需电流(最高36 A),如图18所示。对于要求更多电流的且条件更为苛刻的应用,最多可以并行运行四个LTM4677模块,以提供高达144 A的电流,如图19所示。

图16.Altera Arria 10 SoC开发套件。
图17.Arria 10 SoC开发套件功率分布。
图18.单个LTM4677提供高达36 A的电流。

该解决方案在电路板空间利用率方面达到了最佳水平,因为集成的μModule器件只需极少的外部元件,而PMBus接口又使得我们可以配置这些器件,无需改动硬件。微模块是复杂程度最低的解决方案,因为其中融合了许多复杂的模拟考虑因素,如电源开关、电感、电流和电压检测元件、环路稳定性和散热。

由于LTM4677模块包含PSM,因此可确保内核电源始终在直流电压目标的±0.5%范围内工作。该模块还允许通过PMBus接口调整电压,既可使用FPGA中的SmartVID IP,也可使用LTpowerPlay® 图形用户界面(GUI),借助图形用户界面,用户可以全面控制电源。

为了管理不包含其自身PSM功能的电源调节器,我们只需包含LTC2977,它是一个8通道PMBus兼容型电源系统管理器。每个通道都缠绕着一个电源,将电压伺服到编程目标的0.25%以内(图20)。LTC2977可与LTM4677 μModule器件无缝协作,实现定序和故障响应,使整个电源系统保持统一且易于编程。

图20.LTC2977可管理任意电源电压。
Figure 20. LTC2977 managing any power supply voltage.

系统上电定序由LTM4677内核电源、LTM4676A 3.3 V电源和负责管理电路板上所有其他电源调节器的LTC2977之间的密切协作实现。这些IC具有共同的PMBus时序命令(存储在EEPROM中),可以按任何顺序和任何时序轻松配置启动和关断时序。这些保证了为第1组、第2组和第3组电源指定的自主事件序列符合要求(图6)。

除电压精度和定序控制外,该电路板上的LTM4677、LTM4676A和LTC2977还提供完整的故障处理功能。如果一个或多个电源轨发行过压、欠压、掉电、过流或完全故障,可以将系统配置为快速自动响应,关断以保护敏感的FPGA并在可能的情况下重新启动。

系统中的大多数电源轨需要适度的电流(小于13 A)和适度的电压容差。这些可由非PSM器件(如LTM4620)提供,并由LTC2977进行定序和管理。这样就在电路板面积、复杂性和成本之间达到了非常有效的平衡。

还有一些电源轨(如PLL和收发器电源)需要的低噪声超过了开关稳压器的能力范围,需要采用线性稳压器。LTC3025-1LTC3026-1 能很好地满足这些功能要求,从它们的输出里消除开关噪声和负载导致的噪声。这些也可由LTC2977管理,对故障条件进行定序、修整和处理。

LTpowerPlay

整个PSM器件系列由功能全面的LTpowerPlay图形用户界面提供支持(图21)。由于PSM的大部分功能是通过IC的EEPROM中丰富的配置寄存器访问的,因此通过一个工具可以将总线上的整个PSM IC集合整合到一个简单易用的视图当中。LTpowerPlay工具提供了一套深层次的功能,可加速各设计和开发阶段的进度。该工具可以离线工作,可在编程之前呈现IC视图,或者实时地通过I2C总线与一套包括由许多PSM器件控制的一个到数百个电源轨的、完整的系统进行通信。LTpowerPlay通过提供有关寄存器和功能的详细信息,简化并优化了复杂的配置工作。它以图形方式呈现系统中可用的所有配置、状态和遥测信息,可在系统运行时以清晰易懂的方式将系统呈现出来。它简化了整个寄存器组的编程和维护工作,为在Microsoft® Windows® 电脑上创建和保存配置提供了一种简单的方式。 发生电源故障时,LTpowerPlay可以轻松地指出系统中发生故障的位置,以及状态、遥测信息和黑匣子信息指示的具体情况。该工具还为常见故障情形提供了详细的调试帮助。如果有人需要帮助,LTpowerPlay还能寻求帮助,呼叫现场支持人员,由其实时查看图形用户界面并观察用户看到的内容。

请从这里免费下载LTpowerPlay工具。

图21.LTpowerPlay图形用户界面。

ADI公司为Altera、Xilinx和NXP FPGA提供了一整套演示平台。作为活生生的例子,这些功能齐全的电路板展示了PSM如何为FPGA系统提供最整洁、最灵活、最强大的电源解决方案。此外,当地的ADI公司应用工程师可以在整个PSM IC产品组合的选择和使用方面提供详细的帮助。请通过这里了解更多情况,下载参考材料,订购FPGA电路板。

FPGA之旅

现在,我们已经了解到为FPGA系统供电的最佳方式是什么,接下来,我们可以把异想天开的东西放在一边,看看为什么会这样。为了理解造成当今状况的原因,我们需要简要了解一下历史。

摩尔定律

1965年,戈登·摩尔在《电子学杂志》发表了他那篇著名的文章。8他在文中称,通过观察他发现,单个芯片上的晶体管数量每年都在翻倍;他同时预测,这种趋势应会继续下去,至少能持续到1975年。后来的改进和对大型电子市场的其他观察促使他修改了模型,但芯片上晶体管数量持续呈指数增长的基本原则已经成为电子工业的一项公理。这是一个非同寻常、自我应验的预言,任何其他行业中都不存在,历史上也未曾有过。事实上,这个预言已成为全球工程师的主要动力,造就了无数的创新,强制人们进行权衡,而这些在戈登·摩尔首次发表其简单的观察结果时是无法想象的。 这场针对我们自己的技术竞赛造成的结果是,决策过程偏好的技术始终是那些以牺牲成本、功耗、可用性甚至耐用性为代价,将更多器件压进更小面积的技术。在这场技术竞赛中,尺寸就是一切。这一发展轨迹带来的一些启示是,先进的芯片会消耗更多的功率,漏电流问题更明显,更脆弱,更敏感,更难管理和保护。

晶体管的设计

随着晶体管的尺寸缩小到纳米级,一些严重的副作用日益凸显。其中最明显的是电压裕量。几十年前,5 V电压能为晶体管很好地供电,但这种电压会破坏最新的FET晶体管中的所有结和氧化物。随着晶体管尺寸的缩小,内部电场变得更强,可容忍的工作电压也随之降低,以防止造成破坏。最近的几代晶体管能承受的最大电源电压大约只有1.0 V。此外,绝对电压容差也会按比例缩小:1.0 V的2%比5 V的2%小得多,使得精度日益重要。

图22.不断缩小的晶体管尺寸。

随着电压的减小,晶体管驱动电流(IDSAT)却不断增大。增加的驱动强度至少实现了两个目的。其一,允许栅极电压较小的晶体管驱动大电流——使其足以在有用频率下进行切换。其二,支持物理尺寸更小的晶体管。较小的晶体管可能速率更快。不幸的是,晶体管驱动强度的增强有着自己的代价:漏电流。

芯片上晶体管消耗的功率有两种。动态功率是某个频率下在逻辑1和逻辑0之间切换的常见代价,动态功率是由与晶体管本身和芯片上的器件连接导线相关联的微小寄生电容充放电引起的。动态功率与逻辑转换的频率和电源电压的平方成正比。

不太明显的是泄漏晶体管所消耗的功率。无论电路是处于活动状态还是空闲状态,计时与否,这种功率都会在电路上电时泄漏。增加的晶体管驱动强度会导致更多的漏电流,因为用于导通更多电流的结和结构关闭起来更加困难。较强的晶体管往往比较弱的晶体管泄漏的电流要多。随着每一代晶体管的产生,泄漏的影响都在增强。只有将卓绝的晶体管工艺(化学、冶金、光刻和物理工艺)与精确、灵活的电源管理技术相结合,才有可能掌控泄漏功率。

十年前,戈登·摩尔观察到了这些事实,并指出了两个重点。第一,如果动态功率继续以相同的速度上升,则工作芯片上的结温会接近太阳表面的温度。第二,如果不采取其他措施,泄漏功率将超过动态功率,成为主要的能量消耗模式,进一步加剧功耗问题(图23)。为了解决这些问题,IC产业当时采用了几种新技术。其中之一是时钟管理技术——减慢或停止时钟以抑制动态功率——另一种技术是在单个芯片上使用多个处理内核,以利用不断增长的晶体管数量。

图23.静态和动态功率增长率9

即使这种先进架构具有多种优势,泄漏功率问题仍然很麻烦。晶体管工程是使增长曲线掉头向下的有效方法,但这还不够。由于尺寸减小后的每一代晶体管都需要更低的电源电压,所以动态功率问题仍不明显,但由此导致晶体管强度和泄漏增加,再加上芯片上器件数量不断增多,结果形成了进行电压管理的需求。为了满足每个特定器件的需求,电源电压必须严格控制并且主动可调。

高级架构

直到千禧年之前,架构的发展主要集中在优化单个计算内核,以尽可能快地执行尽可能多的计算。这涉及到一种自由技术,要将时钟速率提高到恰好低于电路故障速率的水平:即电路的最大工作频率。同时涉及架构的优化,但这些工作主要是为了从每个时钟周期挤出更多性能。

在吃惊地意识到功率的重要性之后,工程师开始将资源从原始速率抽调出来,转而投入精细优化方面。这种新趋势首先出现在计算架构领域,表现为不断增长的时钟速率在曲线上变得平坦,每一代晶体管单位性能提升速率趋稳(图24)。这是驯服动态功率这匹野兽最简单的办法:遏制从VDD到VSS的快速转向之势。

图24.计算硬件指标的增长趋势。

但是,单个芯片上的晶体管数量继续以戈登·摩尔预测(要求)的速率攀升,势不可挡。针对所有这些晶体管,必须采取一些措施。这就为第二项伟大的创新奠定了必要性基础:多核架构。在时钟速率停止增长的同时,单个芯片上的内核数量开始增长。多核的优点包括通过重用简化了芯片的设计,通过人们熟悉的构建模块简化了软件的设计,同时还能根据计算负载需求单独限制每个内核。多核革命始于固定计算平台,但我们可以说,这一事件是FPGA自身获得发展的标志性时刻:全世界意识到,增加内核数量才是最好的选择。从某种意义上说,没有什么的内核数量能超过拥有海量相同可编程逻辑模块的FPGA!

FPGA剖析

图25.FPGA可配置架构。

基本而言,FPGA是通过可配置的互连网络连接在一起的原始可配置逻辑单元的集合。它们与编译器一起构成了一个高度灵活的计算架构,可以变换成几乎任何可以想象的通用数字函数,包括组合逻辑块和顺序逻辑块。在顶层上,该架构被额外的功能所包围,用于支持和增强功能。某些模块(如偏置电路、RAM和PLL)支持芯片内部的功能。各种可配置的GPIO单元、高速通信硬宏(LVDS、DDR、HDMI、SMBus等)和高速收发器允许芯片内部的逻辑以各种电压、速率和协议与外界通信。其他模块(如集成CPU和DSP内核)支持通常需要的优化功能,并从功耗、速率和紧凑性等角度进行了优化。

FPGA内核架构由数千或数百万个称为可配置逻辑块(CLB)的原始单元组成。每个CLB是组合逻辑元件和顺序逻辑元件的集合,它们一起可以产生基本计算并将值保存在一个或多个触发器中。组合逻辑通常采用可编程查找表(LUT)的形式,而不是将几个输入位转换为几个任意输出位。每个LUT执行一个事先编程好的基本逻辑函数,并将结果传递到可配置互连中,以便后续处理(图26)。特定的CLB和LUT设计是区分不同FPGA系列的秘诀之一。价格低廉的FPGA采用更简单的CLB,输入、输出、互连和触发器更少。最高端的FPGA采用更复杂的CLB,每个CLB都能支持更多的输入、更多的逻辑组合和更高的速率。这种优化允许每个CLB进行更多计算,并在编译设计中实现更优化的性能。自然,更复杂的FPGA中增加的输入和输出在动态功率权衡方面有别于更简单、互连程度更低的器件。

图26.CLB之间可配置的开关矩阵。

可配置逻辑函数这一基本概念从内核架构内部延伸到了I/O单元,后者也具有高度的可配置能力,能满足各种电压、驱动强度和逻辑类型(推挽式、三态、开漏等)的需要。与可配置的LUT和互连矩阵一样,可编程I/O在启动时从配置存储器接收其配置,这对电源序列有影响。

还有一些功能模块不能或不应该使用通用CLB和GPIO来实现。这些就是所谓的硬宏。硬宏是可从优化中受益的函数,或者只是无法做到足够快或足够小的函数,需要采用专门的电路。其中包括千兆收发器、算术逻辑和DSP元件、专用控制器、存储器和专用处理器内核。这些硬宏与软块不同,后者可以像软件一样编译并加载到可配置架构当中。硬宏通常有自己的电源、特定电压和时序要求。

所有这些各种功能块都有各种电源需求,电源系统必须适应。内核架构通常是芯片上要求最低电压和最高功率的部分。在现代FPGA中,如果得到充分利用,该架构可能需要工作电压为0.85 V的电源提供超过100 A的电流。类似的电压存在于CPU内核中,只是电流不同并且具有不同的定序要求而已。其他片上模拟功能可以通过1.8 V或3.3 V电源供电,并且必须先通电。同时,GPIO组可以在3.3 V或1.8 V下工作,并且在内核架构上电复位完成之前不得通电。这些电源序列要求中的每一项要求都必须由系统强制执行。

最后一块FPGA架构是工具链(图27)。要将可配置逻辑架构的空白板转换为高性能电路,可以用一套综合性工具将一组Verilog或VHDL代码转换为逻辑块、分配时钟、复位和可测试性资源;优化速率、功率或尺寸限制函数;然后将结果加载到FPGA的配置EEPROM中。如果没有这些工具,FPGA将无法充分发挥其潜力。实际上,工具和编程语言非常重要,常常掩盖了使FPGA得以运行的基本电路设计。工程师把大多数时间花在编程上,不愿意投入时间和精力去思考如何研发合适的电源。然而,工具对电源的要求经常被我们所忽视。由于我们在数字设计方面投入了大量精力,因此只有在编译设计汇总起来之时,我们才能得知其功率要求,才可能发现电源存在的问题,在时机上偏晚。在数字设计和软件工具中,与硬件设计一样,灵活的电源架构对成功至关重要。

历史、经济和人的因素继续推动着成就了FPGA的晶体管和架构的发展趋势。在每个层次和每个设计阶段,电源对于FPGA的成功都扮演着重要的、看不见的角色。最好的电源是精确、坚固、灵活、紧凑且易用的电源。对于所有这些品质,ADI公司的PSM产品系列可以说为行业树立了标杆。

图27.FPGA设计流程(硬件最后)。

致谢

我们要借此机会感谢M. Horowitz、F. Labonte、O. Shacham、K. Olukotun、I. Hammond、C. Batten和K. Rupp11,他们在收集图24所用数据和示意图制作方面做出了重要贡献。

附录A:护理和喂养?

可能有些读者会质疑本文的标题,特别是不熟悉英语白话的读者。乍一看,说"FPGA的护理和喂养(care and feeding)"似乎完全不合适。然而,对于这种反对意见的答案很简单:英语是一个有趣的语言。虽然人们对于"care and feeding"这一说法何时开始流行莫衷一是,但人们都知道,这个说法起源于简单的农业时代,目前已经被人们普遍使用(滥用),指任何脆弱或不稳定的东西。在本文中,这一说法可谓一针见血。虽然对于FPGA是否需要"喂养",人们充满争议,但我们可以肯定的是,FPGA的确需要"护理"!

虽然在我们这个现代互联网时代,"护理和喂养"这一说法被人们广泛用于婴儿、儿童、丈夫、老板、外籍人士、科学数据,甚至数字脉冲整形滤波器,但是最早,也可能是最奇怪的用法有可能就是这篇经典文章了;这篇文章不但题目很有趣,而且更有意思的是,可以立即通过互联网下载到。

图28.Geo女士护理和喂养印度跑鸭。R. Simpson。

参考电路

1 英特尔Arria 10器件数据手册,英特尔,2018年6月。
2 “AN 711: Power Reduction Features in Intel Arria 10 Devices.” (AN 711:英特尔Arria 10器件中的降耗功能)。英特尔,2018年7月。
3 Intel Arria 10 Core Fabric and General Purpose I/Os Handbook (英特尔Arria 10内核架构和通用I/O手册),英特尔,2018年8月。
4 “Virtex UltraScale FPGAs Data Sheet: DC and AC Switching Characteristics.” (Virtex UltraScale FPGA数据手册:直流与交流开关特性),Xilinx,2018年1月。
5 “AN 692: Power Sequencing Considerations for Arria 10 and Stratix 10 Devices.” (AN 692:Arria 10和Stratix 10器件的电源定序注意事项),英特尔,2018年4月。
6 DMN1032UCB4 数据手册,Diodes Incorporated,2015年1月。
7 Joachim Von der Ohe. “Application Note: Pulse Load on SMD Resistors: At the Limit.” (应用笔记:SMD电阻上的脉冲负载:极限),Vishay Beyschlag,2015年8月。
8 戈登·摩尔,“Cramming More Components onto Integrated Circuits.” (将更多元件塞进集成电路),《电子学杂志》,第38卷第8期,1965年4月19日。
9 戈登·摩尔,“No Exponential is Forever: But Forever Can Be Delayed!” (没有永远增长的指数,但我们可以推迟‘永远’),国际固态电路会议,2003年。
10 Samuel Fullers and Lynette Millett. The Future of Computing Performance: Game Over or Next Level? (计算性能的未来:游戏结束还是下一个 等级?) 美国国家科学院,华盛顿特区。
11 Karl Rupp. “40 Years of Microprocessor Trend Data.” (40年的微处理器 趋势数据),2018年2月。

作者

Nathan Enger

Nathan Enger

Nathan Enger 是位于科罗拉多州科罗拉多斯普林斯市的ADI公司的混合信号应用工程师。Nathan分别持有科罗拉多大学和科罗拉多科技大学的电子工程学士学位和电子工程硕士学位。他拥有23年的混合信号IC设计经验,为福特、英特尔和Marvell公司开发过高速PLL和收发器。