找回密码
 注册
关于网站域名变更的通知
查看: 205|回复: 1
打印 上一主题 下一主题

降低FPGA功耗的设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-29 10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
使用这些设计技巧和ISE功能分析工具来控制功耗3 f& ]7 R, l+ `, m
   ; `! Q( U) B8 \# K- N- t& ], ]8 _6 S
   新一代 FPGA的速度变得越来越快,密度变得越来越高,逻辑资源也越来越多。那么如何才能确保功耗不随这些一起增加呢?很多设计抉择可以影响系统的功耗,这些抉择包括从显见的器件选择到细小的基于使用频率的状态机值的选择等。/ Q( R! o4 I( R5 x4 ]  e$ X, F
   1 I3 ?3 N" B2 U6 h1 S* K
  为了更好地理解本文将要讨论的设计技巧为什么能够节省功耗,我们先对功耗做一个简单介绍。
4 \% z) s. \9 T! L5 y2 V9 E  
, X  z- j9 ]1 r% ~  功耗包含两个因素:动态功耗和静态功耗。动态功耗是指对器件内的容性负载充放电所需的功耗。它很大程度上取决于  频率、电压和负载。这三个变量中的每个变量均在您的某种控制之下。
8 b/ M0 }4 {8 c9 @: t   $ I" i7 a/ D+ o! E) a3 G, ~
  动态功耗 = 电容×电压2×频率( R& |* {( q6 w0 P6 T" D
  
9 I8 L( H$ W5 I3 g* t4 Z3 S' _  静态功耗是指由器件中所有晶体管的泄漏电流(源极到漏极以及栅极泄漏,常常集中为静止电流)引起的功耗,以及任何其他恒定功耗需求之和。泄漏电流很大程度上取决于结温和晶体管尺寸。
5 g  x& J5 K4 E% ?  
% p  x/ ^- k. H, {. K  恒定功耗需求包括因终接(如上拉电阻)而造成的电流泄漏。没有多少措施可以采用来影响泄漏,但恒定功耗可以得到控制。

尽早考虑功耗
4 t; \) t$ j5 `4 C; {" D5 \* o! @9 ~  
1 n3 M- W7 A; Y3 B  您在设计的早期阶段做出的功耗决定影响最大。决定采用什么元件对功耗具有重大意义,而在时钟上插入一个BUFGMUX 则影响甚微。对功耗的考虑越早越好。

恰当的元件; ?8 n6 T0 z) m8 G+ ]- \
  
/ L- y+ V# o& {" |; g  并不是所有元件都具有相同的静止功耗。根据普遍规则,器件工艺技术尺寸越小,泄漏功耗越大。但并不是所有工艺技术都一样。例如,对于 90 nm 技术来说,Virtex-4 器件与其他 90 nm FPGA 技术之间在静止功耗方面存在显著差异, 然而,在静止功耗随工艺技术缩小而增加的同时,动态功耗却随之减小,这是由于较小的工艺有着更低的电压和电容。考虑好哪种功耗对你的设计影响更大——待机(静止)功耗还是动态功耗。
9 X6 R: {( r2 H3 m3 t' D9 U6 m1 ~. r2 H   1 R9 Y6 |5 U7 n! V9 W
  除通用切片逻辑单元外,所有Xilinx器件都具有专门逻辑。其形式有块 RAM、18×18 乘法器、DSP48 块、SRL16s,以及其他逻辑。这不仅在于专门逻辑具有更高的性能,还在于它们具有更低的密度,因而对于相同的操作可以消耗较少的功率。评估您的器件选项时,请考虑专门逻辑的类型和数量。$ F+ M/ h# @+ y5 b. o
   8 ]# i) B9 \( G: ~' G& w
  选择适当的 I/O 标准也可以节省功耗。这些都是简单的决定,如选择最低的驱动强度或较低的电压标准。当系统速度要求使用高功率 I/O 标准时,计划一个缺省状态以降低功耗。有的 I/O 标准(如 GTL/+)需要使用一个上拉电阻才能正常工作。因此如果该 I/O 的缺省状态为高电平而不是低电平,就可以节省通过该终接电阻的直流功耗。对于 GTL+,将50Ω终接电阻的适当缺省状态设置为 1.5V,可使每个 I/O 节省功耗 30 mA。

数据使能

  当总线上的数据与寄存器相关时,经常使用片选或时钟使能逻辑来控制寄存器的使能。进一步来说,尽早对该逻辑进行“数据使能”,以阻止数据总线与时钟使能寄存器组合逻辑之间不必要的转换,如图 1 所示。红色波形表示原设计;绿色波形表示修改后的设计。% l- R" L. J8 o

  另一种选择是在电路板上而不是在芯片上进行这种“数据使能”。以尽可能减小处理器时钟周期。此概念是使用 cpld 从处理器卸载简单任务,以便使其更长时间地处于待机模式。% `1 o4 {6 L4 X! k
  
( \: n+ p/ J3 ~" v  让我们来看一个在状态 7 和状态 8 之间频繁进行状态转换的状态机。如果您为该状态机选择二进制编码,将意味着对于每次状态 7 和状态 8 之间的状态转换,将有四位需要改变状态,如表 1 所示。如果状态机采用格雷码而不是二进制码来设计,则这两个状态之间的转移所需的逻辑转换的数量将降至仅一位。另外,如果将状态 7 和 8 分别编码为 0010 和 0011,也可以达到同样的效果。

  时钟管理  J2 L8 C# B. }7 D) W2 ]
   3 X, x- P5 q3 @
  在一个设计的所有吸收功耗的信号当中,时钟是罪魁祸首。虽然一个时钟可能运行在 100 MHz,但从该时钟派生出的信号却通常运行在主时钟频率的较小分量(通常为 12% ~ 15%)。此外,时钟的扇出一般也比较高——这两个因素显示,为了降低功耗,应当认真研究时钟。
9 h+ b5 v1 _. K0 }   * ?8 ~" m* R( J# Y% \6 h
   如果设计的某个部分可以处于非活动状态,则可以考虑使用一个 BUFG-MUX 来禁止时钟树翻转,而不是使用时钟使能。时钟使能将阻止寄存器进行不必要的翻转,但时钟树仍然会翻转,消耗功率。不过采用时钟使能总比什么措施也没有强。
* C; k) k* ^) q# j, O' m8 J2 y  
0 j& m! T# C4 l, `; @  t- L  隔离时钟以使用最少数量的信号区。不使用的时钟树信号区不会翻转,从而降低该时钟网络的负载。仔细布局可以在不影响实际设计的情况下达到此目标。/ W+ n' l, c/ X, S/ C
  
/ V' J! B  n1 t  对 FPGA 显然也可以使用同一概念。虽然 FPGA 不一定拥有待机模式,但使用一个 CPLD 中途栏截总线数据并有选择地将数据馈送到 FPGA 也可以省去不必要的输入转换。% J2 k6 \% ~1 N+ ~. Q6 u9 O2 H
  
: L  y# w  S7 m* P) u3 E+ x  CoolRunner-II CPLD 包含一种称为“数据门控”的功能,可以禁止引脚上的逻辑转换到达 CPLD 的内部逻辑。该数据门控使能可通过片上逻辑或引脚来控制。

状态机设计
* d6 M, y$ r& }; Y
  
! Y% U/ g. x$ c  根据预测的下一状态条件列举状态机,并选择常态之间转换位较少的状态值。这样,您就能够尽可能减少状态机网络的转换量(频率)。确定常态转换和选择适当的状态值,是降低功耗且对设计影响较小的一种简单方法。编码形式越简单(一位有效编码或格雷码),使用的解码逻辑也会越少。


& m5 ]: f- N% ~) k; M1 O

该用户从未签到

2#
发表于 2020-4-29 11:26 | 只看该作者
当总线上的数据与寄存器相关时,经常使用片选或时钟使能逻辑来控制寄存器的使能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-21 01:27 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表