在开发过程一开始时,如果设计人员就能够满足基于FPGA的设计对电源的要求和约束,这对于系统的最终实现而言是很大的竞争优势。但是,虽然技术文献在这方面进行了大量的介绍,目前基于FPGA的系统中是否有不实用或者很难实现的东西导致做不到这一点? 尽管可以使用各种开发工具,例如特别针对FPGA工程的早期功耗估算器和功耗分析器等,电源设计人员最好能够在设计早期阶段,考虑电源系统的最差情况,而不是最佳情况,这是因为在硬件设计完成之后,测量功耗之前,动态负载需求还有很大的不确定性,会在静态低电流状态和全速工作状态之间波动。
在当今的设计中,采用并行工程(CE)能否为使用FPGA器件的开发团队提供一种方法,在其工程中更方便快速的找到并提取出处理性能、材料表(BOM)成本和能效的最佳平衡点? 了解并行工程怎样影响团队的设计投入,影响开发团队能否在FPGA工程一开始就满足电源设计要求,以及系统其它部分对电源的要求,这有助于回答这一问题。
并行工程这种机制支持设计团队更迅速的发现并解决一起工作的各学科之间所做假设的分歧问题,实现最终设计。任何设计团队都很难在设计一开始时就能够满足复杂系统的所有要求——结果,更有效的方法是,尽可能早的发现、识别并解决所做假设的分歧问题,做出设计决定,以尽可能低的成本,采用与工程所需产出最贴近的设计假设和决定替代以前的假设和决定。
设计后期的情况越来越复杂,最差情况下的FPGA电源系统设计能够采用并行工程实践吗? 为回答这一问题,我们需要理解:是什么原因导致FPGA电源系统设计人员面临如此复杂而且不确定的设计,设计电源时,要做出哪些取舍?
复杂性和不确定性
设计团队中的每一名成员都体会到复杂性和不确定性——随着集成度的提高,以及设计的抽象化,复杂性和不确定性也稍有缓和,设计人员还能够接受和理解这种复杂性,并进行工作。设计即将结束时,每一学科都会对设计有所贡献,上游设计假设和决定会导致更加复杂和不确定,如果尽早进行协调和沟通,会减轻这方面的影响。
在越来越复杂的系统中,电源设计是下游学科之一。对于这一情形,让我们从电源设计人员的角度看一下复杂性和不确定性的来源。影响电源设计的两个关键FPGA规范是电压和电流要求。
FPGA电压要求越来越复杂,这是因为所需要的电源轨越来越多了。以前,内核和I/O单元需要两个电源轨,还有可能采用第三个用于其他功能,而现在的高端FPGA会需要数十个外部驱动的电源轨。
为什么所需要的电源轨数量会急剧增长? SRAM单元需要的电压要比内部逻辑门稍高一些,以保证可靠的全速工作,而待机模式的电压要低一些。工业标准会锁定各种I/O单元,以及不同电源的物理接收和发送接口,这些电源具有不同的供电噪声限制和电压电平,因此能够防止不同的I/O单元共享同一个电源轨,这增加了所需要的电源轨数量。例如,以太网运行的I/O电压与I2C总线不同。一个是板上总线,另一个是外部总线,但是都能够在FPGA中实现。降低敏感电路的抖动或者提高噪声余量会要求更多的电源轨,例如低噪声放大器、锁相环、收发器以及高精度模拟电路等,因为即使是工作在同样的电压下,它们也无法共享含有噪声分量的电源轨。
除了需要越来越多的电源轨之外,当今的FPGA工作电压要低于以前的产品代,这对于降低功耗和提高集成度很重要,但是由于电源必须维持要求越来越严格的电压容限,因此,这也提高了复杂度(参见图1)。例如,在28 nm技术节点,公开的FPGA内核电压波纹容限幅度比130 nm制造的FPGA低了一半多。误差余量百分比从5%降到3%,还会继续降到2%。满足电压容限要求有助于理解并满足FPGA电流要求。
图1.四个技术节点的平均电压波纹容限降低了一半多,这对于电源设计人员而言,意味着复杂度提高了。
按照摩尔定律,FPGA电流特性的发展趋势也是越来越复杂, FPGA的密度越来越高,外设/功能/IP模块的数量越来越多——随着每一技术节点的发展,同样的硅片中,模块数量加倍。虽然FPGA的供电电压是恒定的,但是,这些电压的工作电流却不是,随FPGA逻辑的实现方式而波动。
当内部逻辑门或者I/O单元在高电平和低电平之间转换时,电流会有很大的波动。当FPGA转换到高处理速率时,吸收的电流会增大,电压随之下降。一个良好的电源设计会防止电压过度下降,不会超出电压瞬变阈值。相似的,当FPGA转换到低处理速率时,吸收的电流会下降,电压会上升,电源设计会防止它超过阈值。简言之,FPGA设计人员以怎样的方式在FPGA上实现系统带来了很多不确定性,会在很大程度上影响电源设计。
这类不确定性会特别影响FPGA系统,部分原因是,使用FPGA的一个关键特性是设计人员能够建立大小任意的处理资源,以及任意数量的冗余处理资源,与软件编程处理器相比,以更少的时间,更少的功耗解决他们的问题。因此,虽然软件编程处理器有很多能够同时工作的处理资源,而FPGA提供了机会来建立特殊的、优化的定制处理资源,所以需要定制电源设计。
供电电源
在设计一开始时,理解并管理FPGA设计人员怎样实现高处理状态和低处理状态之间的转换会明显影响电源设计人员优化电源设计,满足系统电源要求。这不是要求,FPGA中的每一电源轨也不是必须要有自己的供电电源,因为这会增加成本,过多的占用宝贵的电路板空间。相反,电源设计人员可以使用分布式电源网络,体调节器对系统电压进行降压处理,将其分配给每一个负载点的调节器,然后,对每一电源轨供电。设计的每一个调节器能够在输入电压和输出负载电流变化时提供恒定的输出电压(在设计范围内)。
有两种基本类型的调节器:线性和开关调节器。线性调节器很容易实现,输出比较干净,输出的噪声和电压波纹很小,使用成本也较低,需要的电路板空间比开关稳压器少。但是,其功率转换效率比开关调节器低很多,特别是电压差(输出相对于输入)变化时。例如,使用线性调节器从5V电源产生1V输出,转换效率为20%,比开关调节器85%的转换效率差很多。
转换效率是输出功率与输入功率之比,较低的效率意味着调节器占用了很大的功率,而不是FPGA;因此,线性调节器不如开关调节器那样适合大电流工作的FPGA应用——高端FPGA系统中的某些快速I/O节点会达到80A。此外,浪费的功耗导致温度上升,影响热沉或者气流散热所需要的空间,难以维持系统元器件的性能不变。作为一般规则,一平方英寸铜电路板每消耗1W功耗,没有气流散热时,温度会上升10oC。
开关调节器功效要比线性调节器高很多,但是有噪声代价,即,较大的电压波纹——电源设计人员需要面对较低的容限阈值这一越来越复杂的难题。对电路板上的开关调节器组件进行合适的布局是降低电噪声的关键,这也稍微增加了设计难度。
因此,在设计早期阶段就知道功率预算对于电源设计人员布放电路板,需要多少电路板空间来高效的使用开关调节器非常重要,否则会勉强使用低效的线性调节器。
早期规划
大部分FPGA功耗都与FPGA设计人员的实现选择有关,这会影响系统的开关频率、输出负载、供电电压、互联数量、互联开关百分比,以及逻辑和互联模块的结构。这些选择反过来也会影响电源设计人员的选择以及系统设计的综合考虑,影响最终系统性能。
好在FPGA电源设计人员有各种工具和方法,在设计早期阶段分析功耗。例如,大部分FPGA供应商提供早期功耗估算器和功耗分析器,帮助设计人员建立功耗预算。设计人员可以使用基于软件的早期功耗估算器——基本上是表格的形式,在设计早期阶段汇集逻辑容量和工作速率的数据和假设,以便估算系统会在哪里,用掉多少功率(参见图2)。
图2.这一基于软件的早期功耗估算器所显示的工作表在所规划的FPGA使用情况基础上,为每一电源轨建议了组件(图像得到了Altera的授权)。
采用早期功耗估算器,电源设计人员可以估算FPGA中各个子系统的使用情况。在实例工具中,截屏显示底部的标签中,提供了工作表来采集每一类资源的功耗,这些资源包括逻辑、存储器、各种I/O,以及硬件信号处理资源等。这些数据被传送到工具中的其他工作表。
但是,仅仅估算功耗还不够——电源设计人员需要设计电源树,以支持FPGA设计人员使用FPGA。通过估算FPGA设计的静态和动态功耗,工具有助于电源设计人员将功耗需求转换为相应的电源树,使得设计能够符合设计团队的系统综合决定,满足电流和电压要求。包括图2所示的实例在内的一些工具,能够提出满足设计需求的电源管理器件的建议。估算器体现了FPGA供应商和设计人员多年的经验,非常有用,可以一直使用它,直到获得了实际设计指标。
随着FPGA设计的推进,电源设计人员会开始使用功耗分析器工具,更准确的采集功耗,根据详细的信息满足电源要求,例如来自FPGA设计工具的网表输出,以及设计是怎样在FPGA中实现的。
功耗估算和分析工具的目的是帮助设计人员为功耗预算提供早期指南。通过早期功耗估算,设计团队能够在设计开发电路板的同时进行FPGA设计,节省了时间,一旦FPGA设计完成后,能够有更多的最终电路板设计支持,使得团队更高效的进行测试和优化。
电源设计人员需要在系统硬件集成期间测量并验证实际FPGA性能,因为性能对实际设计和环境工作状态敏感,可能与估算和分析工具的结果不同。
关于协商的问题
关于估算和系统集成功率指标会不同的最终免责声明并没有带来多少信心。即使是使用它们时,电源设计人员仍然面临很大的不确定性。我们兜了一圈又回到FPGA电源设计是否准备好采用并行工程实践这一问题。
与航空航天和微处理器团队理解上游设计决定影响下游设计需求的实例相似,理解电源的设计需求受到电路板和FPGA设计人员早期选择的影响,这就为每一团队成员提供了机制和机会进行沟通,在确定设计成本之前,协商怎样优化整个系统,而不是一部分。
从工程一开始,尽可能在设计早期阶段,每一名开发团队成员尽早进行协商和沟通的主要好处在于能够发现不同领域专家之间所做假设的分歧——在这个例子中,包括电源设计人员、FPGA设计人员,以及电路板设计人员,还有属于或者影响电路板、FPGA和电源系统的其他系统组件设计人员。在这一点,受影响的团队可以互相讨论、争辩,甚至争吵,最终开始并完成这一过程——找到解决办法并进行协商,这避免了各种高成本的返工,也避免了在设计后期再改变需求,从而降低了成本。
能够选择使用更高效的开关调节器需要非常准确的提前掌握系统电源要求,这样,能够在合适的位置为电源调节器和组件分配恰当的电路板空间,满足包括电压波纹容限要求在内的电源要求。不正确或者不好的功耗预测的结果是使用低效的调节器满足电压波纹需求,但是这一“波纹”导致给设计的其他部分提出了额外的需求,处理大功率电源,更多的进行散热,甚至使FPGA工作速率低于要求。
功耗估算和分析工具一个重要的优点是让所有人都尽可能早的知道功耗。在现代设计中,FPGA是系统性能和功耗发展的主要推动力量——结果,也成为电源设计的主要推动力量。从设计过程一开始就与您的电源设计人员协商,这样就能够讨论系统优缺点,怎样使用FPGA,然后使用工具,更准确的尽早估算功耗。
在您开始之前就满足所有系统要求还不足以获得成功,还在于发现并尽快放弃不好的位置,以尽可能低的成本,采用能让工程结果更好的位置替代它们。结果是,您能够在后续工程中更早、更准确的预测功耗。
当我参与一些航空航天集成产品团队工程(我们认为是并行工程)工作时,我们有80-20法则:在设计投入的前20%中,工程成本的80%是固定的。之后,您希望最好是围绕剩下的20%展开工作。至少我们知道所做的决定对工程最终成本有很大的影响。
表达的不一定完全准确,但是其中却有智慧。更重要的是,当您困在这80%之前,它给出了提醒,提示可能出现问题,建议与团队中不同领域的专家合作,否则在工程到达开发的最终阶段时,您会后悔。
侧边栏目:并行工程
国防分析研究院1988报告描述了并行工程,介绍说这是产品及其相关工艺集成并行设计的一种系统性方法,包括了制造和支持。这一方法旨在让开发人员从一开始就考虑产品生命周期的所有因素,从概念直至退市,包括质量、成本、计划和用户需求等(参考文献1)。并行工程与其他条目类似,还有些重叠,例如,协作工程、同步工程,以及集成产品开发等。
对于历史上涉及到两人以上一起工作的每一项工程,某些形式的并行工程很实用,但是现代并行工程依靠信息和通信技术,支持大规模的多学科开发团队一起工作,比以前更快的分享新工程信息。虽然对并行工程的很多描述都强调并行完成设计缩短了产品开发时间,但是要知道,并行工程最重要的机制是它提供了方法更迅速的发现并解决一起工作的各学科之间所做假设的分歧问题,实现最终设计。尽早发现并解决分歧假设问题要比增加成本来协调并沟通不同的团队好得多,这是因为产品系统中这些分歧越来越复杂。
航空航天工程最早采用了现代并行工程实践,旨在发现团队之间的分歧,他们负责完成产品的原型开发、制造和维修。在设计过程中,很多最早发现的假设分歧出现在上游和下游活动之间。例如,在原型开发期间作出的决定会很难进行制造或者维护,而且成本高——而如果他们采用稍微不同的方法,就有可能有效的解决这一问题,对下游团队的任务产生很小的影响。在载人安全系统中,贯穿整个设计过程,尽早发现并解决分歧假设问题要比增加成本来协调并沟通不同的团队好得多。
几年后,新微处理器的开发受益于处理器设计人员团队以及软件开发人员之间的尽早进行并行或者协同开发投入,团队提供了软件开发工具,例如编译器。处理器体系结构开始采用判决和特征数据,简化编译器开发人员所作出的假设——结果是更快、更小、更高效的代码。即使是软件系统的复杂度和成本在快速增加,选择不同但是等价体系结构方法的优点在于支持实现性能更好的编译代码。
在这些情况下,付出额外的努力来与系统开发团队的其他成员尽早而且经常的协调和沟通,不如发现假设中的错误和分歧,其协商和解决问题的成本更低。
参考文献
1. Winner, R. I., J. P. Pennell, H. E. Bertrand, and M. M. G. Slusarezuk (1988). The Role of Concurrent Engineering in Weapons System Acquisition, Institute for Defense Analyses, Alexandria, VA, USA, IDA Report R-338.