打印

Xilinx FPGA芯片设计细节首曝光

[复制链接]
4478|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2012-9-19 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 21小跑堂 于 2012-9-21 13:37 编辑

这篇**是关于如何实现FPGA设计的低功率运行。这是一个全球性的问题,因为,这对无线、军用移动设备和航空应用等依赖于电池电源的产品来说是非常重要的。这一类的应用覆盖了飞机、四轴飞行器和前线士兵等通信设备。
  这是一篇纲要,是关于最新的7系列FPGA在开发周期的每个阶段中的低功率设计技术的。
                                               


  功率问题已经成为FPGA选型的首要考虑因素。电源管理是很多应用设计的关键。一些标准指定每个系统的最大功率。例如,设计师必须在设计流程的早起考虑到功率问题,这通常和FPGA的选型同时进行的。
  通过减少电源供给线、简化电源供给设计和热量管理降低等手段降低FPGA的功率消耗可以简化板上设计。低功率对延长电池寿命、提高系统可靠性起着重要作用。

相关帖子

沙发
星星之火红|  楼主 | 2012-9-19 21:42 | 只看该作者
本帖最后由 21小跑堂 于 2012-9-21 13:38 编辑

功率挑战
  随着工艺技术的发展,晶体管就如摩尔定律预言那样变得越来越小了。这个现象带来的一个弊端就是引致了晶体管的泄露,这就会引起更大的静态能量消耗——这是FPGA没有工作的时候产生的电流总量。增强的FPGA性能使时钟效率变得更高,这个会引致更高的动态功率。静态功率是由晶体管的泄漏电流决定的,动态功率则是基于可编程裸机和I/O的转换频率。随着这两种电源消耗的恶化,FPGA随着产品的更新换代逐渐增大其容量。更多的逻辑意味着在每个设备上高速运行着更多的晶体管以及更多的泄漏。
  考虑到以上因素,设计者必须在其设计前期更加注意他们的电源和热量管理。在设备上面加上一个散热器并不能解决这些问题。真实情况是设计者必须尽量减少设计里面的逻辑。
  让我们浏览一些指南,这可以帮你们了解在FPGA设计过程中为降低功耗而进行的某些操作。很明显,在设计的早期对这些事情有一个透彻的了解可以获得最大的回馈。  
                                                      
                                                    图一:从设计流程的FPGA选型到低功耗设计技术的过程中阐明不同的意义。

使用特权

评论回复
板凳
星星之火红|  楼主 | 2012-9-19 21:42 | 只看该作者
本帖最后由 21小跑堂 于 2012-9-21 13:39 编辑

7系列工艺技术
  在FPGA的选型过程中,认真考虑工艺技术可以帮助你辨别设备的泄漏和性能。Xilinx的7系列FPGA是基于28HPL(28nm的高性能、低功耗)工艺,覆盖高性能空间,同时有明显的功耗降低。选择基于低泄漏HPL工艺可以降低在FPGA设计过程中的静态功耗管理方案的复杂程度以及花费。
  在28HPL技术制造的FPGA相对于7系列的FPGA没有任何性能优势,然而某些产品,与FPGA相比,有着多于两倍的静态功耗和在减少泄漏方面有着竞争优势。图2展示了一个7系列FPGA综合的能耗降低途径,相对于上一代40nm的FPGA,可以降低一半的功耗。
                                                                          

  图2:Xilinx7系列FPGA的功耗相对于之前的40nm产品降低一半功耗。
  为了开发产品及将来将其迁移到一个较小的产品,设计师可以选择一个比较大的FPGA。选择一个比较小的FPGA不但可以降低花费,同时会降低系统的功耗。
  全系列的FPGA产品都是基于统一的架构。这个统一的架构使不同的FPGA设备的向上或向下迁移变得更简单,在Xilinx的7系列产品线中的迁移也同样简单。如果考虑从Virtex-6或Spartan-6设备迁移到7系列以及在7系列中进行迁移,可以参考“7系列迁移指南”(UG429)。

使用特权

评论回复
地板
星星之火红|  楼主 | 2012-9-19 21:42 | 只看该作者
本帖最后由 21小跑堂 于 2012-9-21 13:40 编辑

Xilinx的堆叠硅片互联技术
  对于大型的系统,设计者通常会选择多样的FPGA,这类型的架构通常需要在不同的FPGA之间要有相当高速度的精妙和艰巨的数据转移。选择比较大的7系列FPGA,例如XC7V1500T和XC7V1500T设备,是利用Xilinx的堆叠硅片互联技术制造的。这可以解决以上的问题。简而言之,这个SSI技术(堆叠硅片互联技术)将多裸晶固定在一个硅中介层上面,这可以在它们之间提供成千上万的连接,这样就能制造出一个独立的大设备。堆叠硅片互联技术的一个好处就是与相同规模的标准单片产品相比,能降低降低静态功率的最大值。
  堆叠硅片互联技术在I/O互联功率方面有明显的减小,与在一板上有多样化的FPGA相比,SSI技术引以为豪的一点就是相对于一个带有相同的I/O和收发器的接口,其在I/O互联功率方面有100X(带宽/W)的降低。这个明显的降低是因为他们所有的连接是在芯片上,而不是借助需要的功率去从芯片驱动信号,那样的话就可以得到不可思议的速度和低功耗。
  表一:静态、动态和性能功率比较。

使用特权

评论回复
5
星星之火红|  楼主 | 2012-9-19 21:42 | 只看该作者
本帖最后由 21小跑堂 于 2012-9-21 13:42 编辑

 电压调节的可选择性增强
  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工具。                                                   
                                                         
  在研发刚开始的时候,XPOWER Estimator(XPE)电子制表软件甚至可以提供草图设计和项目导入阶段之前的早期功耗估算。XPE有助于架构评估和设备选择,同时它还可以帮助选择适当的电源和应用所需的热量管理元器件。
  PlanAhead软件提供RTL阶段的设计功率分配估算。设计者可以指定设备操作环境、I/O性能和设计使用限制的默认活动率,这也可同过GUI来完成。PlanAhead软件接下来就会读HDL编码去估算所需的设计资源,同时记录每个资源静态分析的功率。随着对设计意图的细节的了解深入,RTL功率估算将会比Xpower Estimator电子制表软件更加精确,其精确度却并不如Xpower Analyzer。
  Xpower Analyzer (XPA)是一个功率分析工具,它提供一个制定工作条件下允许细节分析功耗和热量信息的综合性GUI。
  你可以在两种不同的观点之间切换,以鉴定阻碍型(时钟树、逻辑、信号、I/O等)或者超过设计层的功耗。
  它们提供一个非常有效的方法去确定障碍的位置,从而进行功率优化。

使用特权

评论回复
6
星星之火红|  楼主 | 2012-9-19 21:43 | 只看该作者
本帖最后由 21小跑堂 于 2012-9-21 13:42 编辑

软件功率优化
  通过最小化同时有效的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。
                                                      

使用特权

评论回复
7
星星之火红|  楼主 | 2012-9-19 21:43 | 只看该作者
 低功耗设计技术
  工程师可以搜索到很多降低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逻辑的反相器,因此会达到最优的利用、性能和功率。

使用特权

评论回复
8
星星之火红|  楼主 | 2012-9-19 21:43 | 只看该作者
本帖最后由 21小跑堂 于 2012-9-21 13:44 编辑

多余的设置和复位

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

  通过减少设置和复位的使用,随着设备的利用率的提高,设计师可以得到更好的安排,性能提高和功耗减少。
  如果你对低功耗是很在意的,另一个必须关注的领域则是时钟和模块活动。你应该充分利用BUFGMUX,BUFGCE和BUFHCE去降低功耗。这些约束条件会在整个时域暂停时钟。同样地,对应用来说,这只可以通过使用FPGA寄存器的时钟启动接口去暂停设计的一个小区域的时钟。
  分布在多种时钟区域的设计利用到更多的时钟资源,同时其功率损耗也会更大。只要有可能,在一个单独时钟域里面间歇地使用逻辑(图5)。这会帮助你减少功耗。虽然工具会自动完成这个,但有些设计还是需要手动去获得同样的效果。
 
  另一个重要的技术是限制数据运动。移动文件只是结果,而不仅仅是在PFGA移动操作对象。用到更少和更短的总线可以使其电容量更小,运行速度更快,同时功耗也不大。在预布局的时候,工程师对设计的引脚和相对应的逻辑放置应该加倍注意。
                                           

使用特权

评论回复
9
星星之火红|  楼主 | 2012-9-19 21:43 | 只看该作者
降低静态功耗的局部可重构技术
  降低静态功耗的的一个方法是简单的选用一个更小的设备。通过局部可重构技术,设计师可以从基本上时间片一个FPGA,同时能够单独的运行他们的部分设计。因为并不是设计的每一部分都需要100%的时候,所以这些设计之后会需要一个更加小的设备。
  局部可重构技术可能会像处理静态功耗那样降低动态功耗。例如,许多设计必须快速运行,但最大性能可能只需要很少的时间。为了节省电能,设计师利用局部可重构技术去置换出一个同样款式的,但带有低功耗的高性能设计,而不是所有时间内都是最大性能的设计。当系统需要高性能的时候,你可以切换高性能设计。
  这个规则同样适用于I/O标准,尤其是对于那些不需要长时间保持大功率的接口。由于需要比较大的DC电流去激励,不管工作与否,LVDS都是一个大功率的接口。当设计不需要高性能的时候,设计师可以运用局部可重构技术去将其I/O从LVDS转换到一个类似LVCMOS的低功耗接口,然后在系统需要高速传输的时候将其切换到LVDS的模式。
  在低功耗设计的时候充分利用时序约束也是非常重要的。如果你在一个温度控制环境下操作,记住为了满足时序需要,你可以忽略这部分。要确保只限制指定的时钟频率那部分。这表明一个将要用到的,较快的时钟频率不会形成一个更好的设计。显然,因为减少资源共享、更多的逻辑/寄存器复制、更多的布线和FPGA专用特性的减少,这样的话就会用到更多的结构资源。所有的这些都能很明显的影响动态功率。
  I/O功耗已经成为整体功耗的最重要一环,一些设计的I/O功耗甚至占了整体功耗的50%,尤其是在内存密集型系统。
  可编程的转换速率和驱动强度降低I/O驱动的的动态功耗。有很多类似HSLVDCI的标准可以在FPGA TO FPGA通信中节省比较大的功耗。
  所有Xilinx 7系列设备提供可编程的转换速率和驱动强度。Xilinx的FPGA数控电阻(DCI)技术,也是三态的。在内存从FPGA写入数据时,DCI消除端接电源,因此设备只有在读数据的时候消耗端接电源。
  7系列的设备为HSTL和SSTL合并了一个用户可编程参考接收器电源模式。你在一个I/O-by-I/O基础上控制这两个可编程电源模式,这可以通过在功耗和性能中权衡帮你降低DC功耗。

使用特权

评论回复
10
星星之火红|  楼主 | 2012-9-19 21:44 | 只看该作者
收发器功率描写
  Xilinx为了高性能和低抖动优化了7系列的FPGA收发器。这些收发器提供几个低功耗的操作特点。使设计师为平衡功耗和性能自定义灵活性的操作和间隔尺寸。
  在7系列的FPGA,共享锁相回路可以节省比较大的功耗。对一个具有相同行率的四路设计(如XAUI),你可以用一个四通道PLL 取代一个单通道PLL来节省功耗。同样,在某些方案里,因为一个PLL可以在高速率和低速率的范围里运行,因此最好去选择一个比较低的操作范围去节省功耗。
  你同样可以使用一个单独的TX/RXPOWERDOWN设置。在低功耗模式下的PPL电源休眠是可行的。
  开发周期的每一个步骤
  在执行编码之前明白和实施敏感电源设计技术是降低系统功耗的一个最大有效的途径。在开发周期的相应的阶段应用不同的Xilinx工具可以帮助你满足功耗规格要求,同时在也可以硬件工程师选择必要电源的数量、型号、大小上面提供相对应的信息。Xilinx 7系列FPGA通过利用工艺技术和结构设计提供了前所没有的功耗效率。

使用特权

评论回复
11
GoldSunMonkey| | 2012-9-19 21:55 | 只看该作者
看了,资料非常好,喜欢。

使用特权

评论回复
12
快乐小小鱼| | 2012-9-19 22:34 | 只看该作者
原来是广告!

使用特权

评论回复
13
herotzl| | 2012-9-20 09:17 | 只看该作者
:)

使用特权

评论回复
14
chinawgs| | 2012-9-20 10:48 | 只看该作者
:)

使用特权

评论回复
15
chinawgs| | 2012-9-20 10:48 | 只看该作者
:)

使用特权

评论回复
16
chinawgs| | 2012-9-20 10:49 | 只看该作者
:)

使用特权

评论回复
17
GoldSunMonkey| | 2012-9-20 12:59 | 只看该作者
:lol

使用特权

评论回复
18
rzsheen| | 2012-9-20 17:12 | 只看该作者
芯片还可以,就是软件太难用了。

使用特权

评论回复
19
rzsheen| | 2012-9-20 17:12 | 只看该作者
没有Quartus II好用。

使用特权

评论回复
20
fredanna| | 2012-9-20 19:21 | 只看该作者
芯片还可以,就是软件太难用了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝