在本文中,我们将专门讨论针对Altera®]工程师应该将大部分时间用于编程——他们不希望花费时间和精力去考虑如何设计合适的电源 。实际上,最佳供电方案就是采用一种既能满足项目当前需求,又能达到项目升级发展需求的,强大、灵活且行之有效的设计方案。在此,我们将仔细考察一些重要的电源规格及其含义。 电压精度 内核电源电压是平衡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]设计目标是产生恰好能满足编程功能需求的性能水平,不消耗不必要的功率。根据半导体 的物理特性以及Altera、Xilinx®(图1)和其他公司公布的数据可知,动态和静态功率会随着内核V DD的增加而显著提高,因此我们的目标是确保,给FPGA提供的电压刚好达到其时序要求即可。功耗过大无助于提高性能。实际上,功耗过多会使情况变得更糟,因为晶体管泄漏电流随着温度的升高而增加,从而消耗更多不必要的功率。由于这些原因,当务之急是优化设计和工作点的电压。
图1.Xilinx Virtex V功率与内核VCC。 这种优化过程需要非常精确的电源才能获得成功。必须将调节器误差纳入误差预算,并从可用于优化的可用电压范围中减去。如果内核电压降至要求电压以下,则FPGA可能因时序错误而发生故障。如果内核电压漂移至最大规格值以上,结果可能会损坏FPGA,或者可能会在逻辑中形成保持时间故障。为了防止所有这些情况,必须考虑电源容差范围,并且指令电压必须保持在规格限值以内。
图2.电源调节器容差权衡。 解决办法是选择能支持更严格的电压容差的电源调节器。容差为±0.5%的调节器可以在要求工作频率下,在更接近最小规格要求的范围内工作,并且保证与所需电压的偏离幅度小于1%。这种情况下,FPGA会正常工作,并且其功耗将达到该工作条件下的最低水平。
LTC388x系列电源控制器可在较宽的可配置电压范围内,保证调节输出电压容差优于±0.5%。LTC297x系列电源系统管理器可保证调整后的电压调节器容差优于±0.25%。在这些精度条件下,对于FPGA,显然都能使其功耗与性能之间达到最佳平衡。
热管理 就电源精度而言,一个更微妙的意义体现在热预算当中。由于静态功耗远远没有达到可以忽略不计的程度,因此FPGA即使在无所事事的情况下也会升温。温度升高会导致更多的静态功耗,从而进一步提高工作温度(图3)。向电源添加不必要的电压只会使该问题变得更加糟糕。不准确的电源需要工作电压保护段,确保有足够的电压来完成此项工作。由容差、系统组件变化和工作温度的变化引起的电源电压不确定性可能产生明显高于所需最小值的电压。当施加到FPGA时,这种额外的电压可能导致热效应,甚至可能在高处理负载下导致热失控。
补救措施是选择一种非常精确的电源,该电源仅产生恰当且不超过必要的电压,这正是ADI电源系统管理(PSM)器件所擅长的。SmartVID SmartVID是Altera公司出品的一种技术,该技术用于按照FPGA本身的要求,为每个FPGA提供最佳电压。FPGA内部有一个寄存器,其中包含一个因器件而异的电压(已在出厂中编程),可保证FPGA高效运行。FPGA内部编译的一项IP功能可以读取该寄存器,并通过外部总线向电源发出请求,要求提供这个精确的电压(图4)。一旦达到电压要求,它就会在运行期间保持静止。
SmartVID应用对电源的要求包括特定的总线协议、电压精度和速度。总线协议是FPGA用于将其所需电压传送到功率调节器的几种方法之一。在可用的方法中,PMBus最为灵活,因为它可以满足最广泛的电源管理IC的需求。SmartVID IP使用两个PMBus指令:VOUT_MODE和VOUT_COMMAND,用于命令符合PMBus标准的功率调节器达到正确的电压。 调节器的电压精度和速度要求包括自主引导电压(在PMBus激活之前),能每10毫秒接受一个新电压指令,在电压调整阶段每10毫秒能步进10]虽然Altera使用的是SmartVID技术,但业界使用的其他类似技术也可以完成相同的任务。一种最简单的方法是在工厂测试每块电路 板,并在电源的非易失性存储器中编程一个精确的电压,优化该特定电路板的性能。使用该技术时,不需要进一步干预,电源就能在正确的电压下工作。这是搭载EEPROM的电源管理器或控制器的优点之一。 LTC388x系列电源控制器可满足Altera]任何逻辑模块的计算速度均取决于其电源电压。在限值范围内,电压越高,性能越快。我们已经看到,为什么不能采用简单的办法,即在最高电压下运行,保证获得最佳速度。另一方面,我们必须使工作电压足够高,能满足应用需求,如图5所示。
图5.FPGA工作频率与VDD之间的平衡关系。 图5的一个重要启示是,当特定设计达不到其逻辑时序要求并处于故障区域时可以采取哪些措施。通常,在将设计转化成硬件之前,很难准确定义正常工作与故障之间的界限,也无法预先确定它将在哪个特定电压下超过时序要求。唯一的选择是提前确定一个远高于最小值的电压,以浪费功率为代价来保证功能;或者设计一种灵活的电源,以在测试时适应硬件需求,甚至在采用SmartVID技术的情况下,能在加电时适应硬件需求。适应未知需求的能力使得ADI]在摩尔定律的驱动下,现代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]这些只是众多FPGA中的两种。几乎每个现代FPGA系统都有多个电源轨,最明显的一个问题是,它们应以何种顺序打开和关闭?即使没有明确的定序要求,也有充分的理由,强制以确定性的序列来执行事件。以下是一些可用的设计选项。
无定序方案:让电源自行升降。可能会出现什么问题? 硬件级联定序方案:以硬接方式连接每个上升电源,以使能下一个电源。这种方式仅在电源上升时有效。 基于CPLD的定序方案:使用可编程逻辑创建自定义解决方案。该方案非常灵活,设计师要承担全部挑战。 基于事件的定序方案:基于事件的定序方案与级联定序方案类似,但更加灵活一些,因为该方案可上可下。专用的序列器IC能支持编程,还能处理许多故障情况和极端情况。 基于时间的定序方案:基于时间的定序方案在指定时间触发各个事件。结合全面的故障管理方案,基于时间的序列器可以确保灵活性、确定性和安全性。
以下各节将更加详细地探讨这些方案。
无定序方案 可以打开电源系统,而不进行任何管理。当主电源可用或ON开关激活时,调节器开始调节。断电或ON开关关闭时,调节器停止调节。当然,这种方法有很多问题,有些问题更加明显。
缺乏时间确定性可能在系统中造成各种影响。首先,会对灵敏度很高的FPGA造成压力。这可能会导致直接的灾难性故障,或者可能导致过早老化,从而致使性能下降。两种情况均非善果。还可能导致不可预测的上电复位行为或上电时不确定的逻辑状态,从而使系统稳定性成为问题并且难以调试。在该方案中,故障检测和响应、能量管理和调试支持等问题完全没有得到解答。一般来说,回避电源定序定会引发灾难。
级联定序
图7.PGOOD-to-RUN级联定序。FPGA或CPLD定序 使用电路板上的辅助CPLD或FPGA对电源排序,这是许多设计师选择的方案。在由数字设计师设计的或为其设计的系统中,该方案具有一定的吸引力。一种十分自然的方案是设计一个可编程到FPGA中的数控模块,用于控制另一个FPGA的电源。这里的决定可能具有欺骗性,因为电源系统并不像数控那样简单。
如果设计师希望自上而下解决电源定序、控制和管理问题,他们必须首先全面了解其复杂性。我们已经讨论了其中的许多内容,但还有更多的内容尚未讨论,例如检测微秒级过压和欠压情况并做出反应,检测危险电流和温度,记录遥测结果和状态,提供启动和调试服务以简化硬件设计人员的工作等。在数字算法以外,所有这些考虑都需要专用的模拟硬件。
针对希望采用这种方式的勇敢的设计师,ADI公司提供了若干模拟前端IC,以帮助他们完成这项任务。在数字位和模拟电源之间的接口处,LTC2936]在快速比较器功能外,还必须有一个模数转换器(ADC)来收集遥测数据。一种行之有效的方案是 LTC2418,它可以通过快速建立式24位Σ-Δ ADC和4线SPI接口监控多达16个通道的模拟信号。电路板控制器可以轻松地流式传输测量数据并监控系统中的多个目标点。
通常,使用FPGA或CPLD控制上电时序的方案有很多种。这种方法确实有效,但必须有人负责数字和模拟设计,包括所有不可避免的设计缺陷、难以想象的极端情况和故障以及令人怨声载道的支持问题等。电源系统当然有更简单的构建方法。
简单的序列器/监控器
图9.LTC2937电源监控器和序列器。 LTC2937属于带EEPROM的可编程序列器和监控器。该器件具有全面的数字可编程能力,拥有基于时间和基于事件的定序功能,可以对任意数量的电源进行定序和监控,还能把故障状态记录到EEPROM黑匣子当中。对于不需要电压管理和遥测功能的应用,这种解决方案有很大的价值。
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; cooperati vely handle complex fault scenarios; and record detailed fault information to EEPROM. Sequencing]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]PSM微型模块、管理器IC和控制器IC全力协调,通过简单的单线总线SHARE_CLK共享时序信息,从而实现上下定序。通过该单线,所有PSM IC共享各种信息,比如定序何时开始(零时)、时钟每次何时走时以及影响定序的其他状态信息。只需将系统中的所有SHARE_CLK引脚连接在一起即可实现这种协调。每个IC都有自己的序列时序编程功能,可以使用共享时基精确可靠地对事件(如使能和禁用、斜坡和发生故障时的超时)计时。
基本而言,SHARE_CLK引脚是一个开漏100]与SHARE_CLK引脚类似的是FAULT总线。系统中的每个PSM IC都连接到共享FAULT线,既可使用其开漏输出将其拉低,也可以在另一个器件拉低时进行响应。这为整个PSM器件系列提供了一种简单、快速的故障传递和响应方式。该行为完全可配置,并且在出现问题时,无论是在定序期间还是在稳定状态期间都支持协调响应。可以将系统配置为移除电源并尝试根据指定的时序重新定序,同时在黑匣子中记录有关系统状态的信息,并在发生故障时记录故障原因。该EEPROM黑匣子信息可通过I2C总线进行后续处理。
降序定序和存储能量管理 对电源进行降序定序时还要考虑一个额外因素:能源管理。越来越重要的是要在电源降序定序时为其提供确定的时序,这就需要仔细考虑系统哪些地方会消耗存储的能量。高功率电源可能有许多大型电解电容作为大容量电荷存储元件 ,并且这些电容会被充电,达到电源电压,其中保存着足够的能量,在不幸的条件下有可能炸毁未采取正确防护措施的器件。为了避免这种情况,FPGA制造商指定了用于保护器件的降序序列。对于Altera]该降序序列隐含的要求是,电容中存储的所有能量都去了某个地方并被安全地消耗掉了。这有多种方法可达此目的,其中最简单的方法是在电容两端装一个固定电阻。该电阻在电源接通时总会消耗功率,但可以使其电阻足够大,从而将比较损耗降至最低,并使RC放电时间常数尽量短,达到可以接受的程度。充分放电电源所需时间是RC时间常数的倍数(通常为5倍),应进行优化以使电阻中消耗的静态功率达到可以接受的程度(如<¼ W)。对于1 mF电容和1.0 V电压,如果电阻值R =4Ω,则时间常数τ= 4毫秒,只需约13毫秒,即可将电源放电至50 mV以下。只要电阻额定值至少为1/4 W,该方法就足以满足需求,系统工作时的恒定损耗为¼ W,放电时间为13毫秒。 一种更复杂但非常安全的方案是仅当对电源放电时才切换电容两端的电阻。这种方法在需要时将电荷从大容量电容中拉出,并将其安全地消耗在开关FET的电阻和辅助串联电阻中,但避免了固定电阻的持续功率消耗问题。电路如图13所示。
这种方法需要注意几个因素:控制、放电时间和功耗。必须有一个可用的信号指示放电开关在适当的时间关闭。开关FET是NMOS,因此控制信号必须充分升高到FET的VTH以上,以使其进入饱和状态。对于普通FET,此栅极驱动电压可能高达3 V至5 V。 典型的电解电容将具有数百毫欧的等效串联电阻(ESR),当电容放电时会消耗一些能量,但这些电容中有许多是并联的,因此总并联电容相加可能达数十个毫法拉,等效电阻为几十毫欧或以下。我们可以安全地假设,电容ESR将消耗存储能量的一小部分。
为了在合理的时间内对电容放电,放电RC时间常数必须小于期望放电时间的1/5th(以允许该电压下降到几毫伏以下)。这个计算非常简单(公式1),使用的是所有电容的总和以及FET和串联R的总和,以及RESR电阻的并联组合,其中N是并联电容的数量。
对于一个更大的系统,其中有一个50]最强大的放电电路可以在各种条件下安全地消耗能量。图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]该解决方案在电路板空间利用率方面达到了最佳水平,因为集成的μModule器件只需极少的外部元件,而PMBus接口又使得我们可以配置这些器件,无需改动硬件。微模块是复杂程度最低的解决方案,因为其中融合了许多复杂的模拟考虑因素,如电源开关、电感、电流和电压检测元件、环路稳定性和散热。
由于LTM4677模块包含PSM,因此可确保内核电源始终在直流电压目标的±0.5%范围内工作。该模块还允许通过PMBus接口调整电压,既可使用FPGA中的SmartVID]为了管理不包含其自身PSM功能的电源调节器,我们只需包含LTC2977,它是一个8通道PMBus兼容型电源系统管理器。每个通道都缠绕着一个电源,将电压伺服到编程目标的0.25%以内(图20)。LTC2977可与LTM4677 μModule器件无缝协作,实现定序和故障响应,使整个电源系统保持统一且易于编程。
图20.LTC2977可管理任意电源电压。
Figure 20. LTC2977 managing any power supply voltage. 系统上电定序由LTM4677内核电源、LTM4676A]除电压精度和定序控制外,该电路板上的LTM4677、LTM4676A和LTC2977还提供完整的故障处理功能。如果一个或多个电源轨发行过压、欠压、掉电、过流或完全故障,可以将系统配置为快速自动响应,关断以保护敏感的FPGA并在可能的情况下重新启动。
系统中的大多数电源轨需要适度的电流(小于13]还有一些电源轨(如PLL和收发器电源)需要的低噪声超过了开关稳压器的能力范围,需要采用线性稳压器。LTC3025-1 和 LTC3026-1 能很好地满足这些功能要求,从它们的输出里消除开关噪声和负载导致的噪声。这些也可由LTC2977管理,对故障条件进行定序、修整和处理。
LTpowerPlay 整个PSM器件系列由功能全面的LTpowerPlay图形用户界面提供支持(图21)。由于PSM的大部分功能是通过IC的EEPROM中丰富的配置寄存器访问的,因此通过一个工具可以将总线上的整个PSM]请从这里免费下载LTpowerPlay工具。
图21.LTpowerPlay图形用户界面。 ADI公司为Altera、Xilinx和NXP]现在,我们已经了解到为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的快速转向之势。
但是,单个芯片上的晶体管数量继续以戈登·摩尔预测(要求)的速率攀升,势不可挡。针对所有这些晶体管,必须采取一些措施。这就为第二项伟大的创新奠定了必要性基础:多核架构。在时钟速率停止增长的同时,单个芯片上的内核数量开始增长。多核的优点包括通过重用简化了芯片的设计,通过人们熟悉的构建模块简化了软件的设计,同时还能根据计算负载需求单独限制每个内核。多核革命始于固定计算平台,但我们可以说,这一事件是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]最后一块FPGA架构是工具链(图27)。要将可配置逻辑架构的空白板转换为高性能电路,可以用一套综合性工具将一组Verilog或VHDL代码转换为逻辑块、分配时钟、复位和可测试性资源;优化速率、功率或尺寸限制函数;然后将结果加载到FPGA的配置EEPROM中。如果没有这些工具,FPGA将无法充分发挥其潜力。实际上,工具和编程语言非常重要,常常掩盖了使FPGA得以运行的基本电路设计。工程师把大多数时间花在编程上,不愿意投入时间和精力去思考如何研发合适的电源。然而,工具对电源的要求经常被我们所忽视。由于我们在数字设计方面投入了大量精力,因此只有在编译设计汇总起来之时,我们才能得知其功率要求,才可能发现电源存在的问题,在时机上偏晚。在数字设计和软件工具中,与硬件设计一样,灵活的电源架构对成功至关重要。
历史、经济和人的因素继续推动着成就了FPGA的晶体管和架构的发展趋势。在每个层次和每个设计阶段,电源对于FPGA的成功都扮演着重要的、看不见的角色。最好的电源是精确、坚固、灵活、紧凑且易用的电源。对于所有这些品质,ADI公司的PSM产品系列可以说为行业树立了标杆。
图27.FPGA设计流程(硬件最后)。