加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 设计中心 > 可编程逻辑器件

Xilinx FPGA芯片设计细节首曝光(图文)

时间:2014-05-03  来源:123485.com  作者:9stone

探秘Xilinx FPGA芯片设计细节首曝光(图文)

  编者按:我很荣幸有机会去得到Xilinx的允许去介绍以下内容,这是Xcell Journal第四季度版上的文章。电子发烧友网还专门为广大FPGA设计工程师提供了《如何成为Xilinx FPGA设计专家基础篇》创新技术电子书,内容精彩,不容错过。

  电子发烧友网讯:这篇文章是关于如何实现FPGA设计的低功率运行。这是一个全球性的问题,因为,这对无线、军用移动设备和航空应用等依赖于电池电源的产品来说是非常重要的。这一类的应用覆盖了飞机、无人机和前线士兵等通信设备。

  这是一篇纲要,是关于最新的7系列FPGA在开发周期的每个阶段中的低功率设计技术的。

探秘Xilinx FPGA芯片设计细节首曝光(图文)

  功率问题已经成为FPGA选型的首要考虑因素。电源管理是很多应用设计的关键。一些标准指定每个系统的最大功率。例如,设计师必须在设计流程的早起考虑到功率问题,这通常和FPGA的选型同时进行的。

  通过减少电源供给线、简化电源供给设计和热量管理降低等手段降低FPGA的功率消耗可以简化板上设计。低功率对延长电池寿命、提高系统可靠性起着重要作用。


  功率挑战

  随着工艺技术的发展,晶体管就如摩尔定律预言那样变得越来越小了。这个现象带来的一个弊端就是引致了晶体管的泄露,这就会引起更大的静态能量消耗——这是FPGA没有工作的时候产生的电流总量。增强的FPGA性能使时钟效率变得更高,这个会引致更高的动态功率。静态功率是由晶体管的泄漏电流决定的,动态功率则是基于可编程裸机和I/O的转换频率。随着这两种电源消耗的恶化,FPGA随着产品的更新换代逐渐增大其容量。更多的逻辑意味着在每个设备上高速运行着更多的晶体管以及更多的泄漏。

  考虑到以上因素,设计者必须在其设计前期更加注意他们的电源和热量管理。在设备上面加上一个散热器并不能解决这些问题。真实情况是设计者必须尽量减少设计里面的逻辑。

  让我们浏览一些指南,这可以帮你们了解在FPGA设计过程中为降低功耗而进行的某些操作。很明显,在设计的早期对这些事情有一个透彻的了解可以获得最大的回馈。

 从设计流程的FPGA选型到低功耗设计技术的过程中阐明不同的意义

  图一:从设计流程的FPGA选型到低功耗设计技术的过程中阐明不同的意义。


  7系列工艺技术

  在FPGA的选型过程中,认真考虑工艺技术可以帮助你辨别设备的泄漏和性能。Xilinx的7系列FPGA是基于28HPL(28nm的高性能、低功耗)工艺,覆盖高性能空间,同时有明显的功耗降低。选择基于低泄漏HPL工艺可以降低在FPGA设计过程中的静态功耗管理方案的复杂程度以及花费。

  在28HPL技术制造的FPGA相对于7系列的FPGA没有任何性能优势,然而某些产品,与FPGA相比,有着多于两倍的静态功耗和在减少泄漏方面有着竞争优势。图2展示了一个7系列FPGA综合的能耗降低途径,相对于上一代40nm的FPGA,可以降低一半的功耗。

 Xilinx7系列FPGA的功耗相对于之前的40nm产品降低一半功耗

  图2:Xilinx7系列FPGA的功耗相对于之前的40nm产品降低一半功耗。

  为了开发产品及将来将其迁移到一个较小的产品,设计师可以选择一个比较大的FPGA。选择一个比较小的FPGA不但可以降低花费,同时会降低系统的功耗。

  全系列的FPGA产品都是基于统一的架构。这个统一的架构使不同的FPGA设备的向上或向下迁移变得更简单,在Xilinx的7系列产品线中的迁移也同样简单。如果考虑从Virtex-6或Spartan-6设备迁移到7系列以及在7系列中进行迁移,可以参考“7系列迁移指南”(UG429)。


  Xilinx的堆叠硅片互联技术

  对于大型的系统,设计者通常会选择多样的FPGA,这类型的架构通常需要在不同的FPGA之间要有相当高速度的精妙和艰巨的数据转移。选择比较大的7系列FPGA,例如XC7V1500T和XC7V1500T设备,是利用Xilinx的堆叠硅片互联技术制造的。这可以解决以上的问题。简而言之,这个SSI技术(堆叠硅片互联技术)将多裸晶固定在一个硅中介层上面,这可以在它们之间提供成千上万的连接,这样就能制造出一个独立的大设备。堆叠硅片互联技术的一个好处就是与相同规模的标准单片产品相比,能降低降低静态功率的最大值。

  堆叠硅片互联技术在I/O互联功率方面有明显的减小,与在一板上有多样化的FPGA相比,SSI技术引以为豪的一点就是相对于一个带有相同的I/O和收发器的接口,其在I/O互联功率方面有100X(带宽/W)的降低。这个明显的降低是因为他们所有的连接是在芯片上,而不是借助需要的功率去从芯片驱动信号,那样的话就可以得到不可思议的速度和低功耗。

  表一:静态、动态和性能功率比较。

静态、动态和性能功率比较 

  电压调节的可选择性增强

  Xilinx的7系列FPGA提供重要的电压调节选择。

  7系列的FPGA给-3和-2L设备提供了一个比较大的温度范围(0-100℃)选择。由于28HPL工艺的缘故,2LE设备可以工作在1或者0.9V的电压。这些设备被称为-2L(1.0V)或者-2L(0.9V)。工作在1.0V的-2L设备有着和-2I和-2C一样的性能,但却有着更低的静态功率。工作在0.9V的-2L设备有着和-1I和-1C一样的性能,其同时也有着更低的静态和动态电压。

  在0.9V的电压下,这些设备电压的独自下降可以降低静态功率大约30%的消耗。降压同样会降低性能,但是因为其速度和严格的泄漏规格,Xilinx屏蔽这些12L(0.9V)设备。与标准速度水平的设备相比,这种屏蔽方法会给功率带来55%的降低。

  通过选择-2L系列设备,你可以在动态功率上获得额外的功率节省。因为动态功率与VCCINT2成比例,在VCCINT减少10%,则会在功率方面提供20%的节省。

  功耗估算工具:

  市面上有多种多样的工具提供给工程师选择,用来估算在整个研发周期FPGA设计所需要的热能和电源。图三展示了FPGA开发过程每个步骤有效的Xilinx工具。

 Xilinx给开发周期的每一步提供电压估算和分析工具

  在研发刚开始的时候,XPOWER Estimator(XPE)电子制表软件甚至可以提供草图设计和项目导入阶段之前的早期功耗估算。XPE有助于架构评估和设备选择,同时它还可以帮助选择适当的电源和应用所需的热量管理元器件。

  PlanAhead软件提供RTL阶段的设计功率分配估算。设计者可以指定设备操作环境、I/O性能和设计使用限制的默认活动率,这也可同过GUI来完成。PlanAhead软件接下来就会读HDL编码去估算所需的设计资源,同时记录每个资源静态分析的功率。随着对设计意图的细节的了解深入,RTL功率估算将会比Xpower Estimator电子制表软件更加精确,其精确度却并不如Xpower Analyzer。

  Xpower Analyzer (XPA)是一个功率分析工具,它提供一个制定工作条件下允许细节分析功耗和热量信息的综合性GUI。

  你可以在两种不同的观点之间切换,以鉴定阻碍型(时钟树、逻辑、信号、I/O等)或者超过设计层的功耗。

  它们提供一个非常有效的方法去确定障碍的位置,从而进行功率优化。


  软件功率优化

  通过最小化同时有效的block RAM端口的数量,你可以利用block RAMs来对功率进行优化设计。这次优化,使-power选择在 XST 状态,修改跨越多样block RAM的RAM和ROM描述。这个优化调整位置线、端口和写控制信号,这样就可以最小化在每个时钟周期里面的有效的block RAM的数量,同时保证你的设计满足时间限制。

  之后,促进效率的最优化而忽略对性能的冲击。当你了解时序路径与内存的关系并不重要的时候,将block_power2选项调为ram_style限制。这样可以节约15%到75%。

  同样,用XST的Area Optimization 模式,这个选择会使你设计用到的资源数量最小化。应注意的是当区域最优化以后,性能会受到限制。

  一个额外的策略是activity-aware最优化,这是intelligent gating的另一种说法。这些算法分析逻辑方程式去检测每个对结果没任何影响的时钟周期源寄存器。软件利用FPGA逻辑中充足的时钟启动(CE)可利用的资源去产生细粒度门信号。在很多方案里,的核心动态功率总体减少超过15%,额外插入的门逻辑并不影响性能。

  功率设置的另一种方法是利用capacitance-aware最优化,有两个关键技术:

  Group clock loads:这个过程整理同步元素(例如触发器或者DSP blocks)去最小化每一个时钟网的范围,当你把clock loads沿着小部分的水平或者垂直的clock spines放置,软件会禁止时钟区域的未使用的分支。这回减少时钟资源和缓冲要求,这样就会节省核心动态功率,这个是同过map-power选项控制的。

  Group data loads:这个算法最小化你设计中的用线长度,同时还确保你满足性能需求。因为动态功率随着你能看到的路线架构的类型,Grouping data loads能够节省功耗。这个grouping算法,同样的使在 map – power选项,通过将相同的逻辑摆在一起降低功耗。

  ISE 设计组合突出其预期目标和策略,使功率在综合、map的情况下最优化。这种方法或许是利用所有综合限制的不默认限制设置的最好替代。然而,在这个情况下,会引起延时。

  最好,Xilinx执行工具自动化关掉不需要用到的收发器、锁相回路、数字时钟管理模块和I/O。在7系列,Xilinx也添加不需要用到block RAM的电源门。Block RAM的泄漏只有在你使用特殊设计的block中发生,而不是发生在设备上所有的block RAM。

 Xilinx 已为最小化ISE设计套装中的功率而设定了设计目标和策略


  低功耗设计技术

  工程师可以搜索到很多降低FPGA设计功耗的贴士和技术,首选是用专用的硬件模块而不是在CLB中执行相同的裸机。为了减少功耗,你必须在设计中想法设法寻找可能存在的方法。这允许你去用到一个尽可能小的设备,同时减低静态功耗。

  用专用的硬核模块是降低静态和动态功率的一个最重要的方法,同时这样也能够轻易满足时间需求。因为相对于一个等效的CLB逻辑,硬核的晶体管数量远远比CLB少,因此它能够降低静态功耗。

  按照通常的做法,你可以尝试去推断出尽可能多的资源。你可以通过代码或者在限制文档中

  为FPGA构造或者硅资源独自或作为一个整体控制推断资源量。为了安装特定的资源,你同样可以影响Xilinx的 CORE Generator 工具去自定义专用硬件。

  除此之外,你可以为其他不显著的任务明智地采用不会被用到的硬核。DSP48 slice如倍频器、加法器/累加器、逻辑比较器、模式适配器和计数器那样处理很多逻辑功能。你可以将block RAMs当作状态机、数学函数、ROMS和逻辑查找表使用。

  控制信号的最佳使用

  控制信号(如时钟、设置、复位、时钟启动等的控制同步基础信号)的使用会影响设备的密度、利用率和性能。遵循一些指导会帮你将功率影响降到最低。

  首先,避免在一个累加寄存器或锁存器上使用一个设置和复位。Xilinx FPGA的触发器支持异步和同步设置和复位控制。然而,底层触发器本身每次只能执行设置、复位、预设值或者清除。在RTL编码里面编进多于一个的功能则会造成执行一个用触发器SR端口的状态,其他状况则是用结构逻辑,这样就会用到更多的FPGA资源。

  如果其中的一个条件是同步,其他的是异步,那么异步状态将会是唯一一个利用SR端口执行的,同时同步状态则用结构逻辑实现。总之,最好避免多于一个状态。此外,如果触发器的SR端口是同步或者异步,四个触发器在同意情况下确认的时候,只有一个产生作用。

  除此之外,用高逻辑电平控制信号,寄存器的控制端口是高电平。不建议在FPGA设计中用地逻辑电平复位。因为低逻辑电平信号在可以直接驱动寄存器的控制端口之前需要倒置,因此它们用到更多查找表。这个倒置必须通过一个LUT完成,因此会占去一个LUT输入。

  因此,低逻辑电平控制信号可能导致更长的执行时间,同时会引致设备的利用率变低,这会影响时序和功耗。

  在HDL编码或者具体元器件中尽可能用到高逻辑电平控制信号。当在设计的时候不能够控制一个控制性信号的极性,你应该在编码的最高层反置信号。I/O逻辑会执行没有用到任何额外FPGA逻辑的反相器,因此会达到最优的利用、性能和功率。


  多余的设置和复位

  代码中多余的设置和复位可以避免SRLs、LUT RAMs、RAMs模块和其他方面可能涉及的逻辑结构的推断。尽管设计师会发现这不合适,很多的回路会被设计去自我复位,或者简化不需要复位。例如,当一个电路只是用来初始化寄存器,复位是不需要的。因为寄存器初始化在配置的时候自动发生。

  通过减少设置和复位的使用,随着设备的利用率的提高,设计师可以得到更好的安排,性能提高和功耗减少。

  如果你对低功耗是很在意的,另一个必须关注的领域则是时钟和模块活动。你应该充分利用BUFGMUX,BUFGCE和BUFHCE去降低功耗。这些约束条件会在整个时域暂停时钟。同样地,对应用来说,这只可以通过使用FPGA寄存器的时钟启动接口去暂停设计的一个小区域的时钟。

  分布在多种时钟区域的设计利用到更多的时钟资源,同时其功率损耗也会更大。只要有可能,在一个单独时钟域里面间歇地使用逻辑(图5)。这会帮助你减少功耗。虽然工具会自动完成这个,但有些设计还是需要手动去获得同样的效果。

 如有可能,在一个时钟区域里面用一些逻辑 

图5:如有可能,在一个时钟区域里面用一些逻辑

  另一个重要的技术是限制数据运动。移动文件只是结果,而不仅仅是在PFGA移动操作对象。用到更少和更短的总线可以使其电容量更小,运行速度更快,同时功耗也不大。在预布局的时候,工程师对设计的引脚和相对应的逻辑放置应该加倍注意。

  有限的数据运动,移动文件只是结果,而不仅仅是FPGA的操作对象的移动


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->可编程逻辑器件
  • 可编程逻辑器件
  • 传感器技术
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门