功耗的三个主要来源是启动、待机和动态功耗。器件上电时产生的相关电流即是启动电流。
静态功耗是指一个电路维持在一个或另一个逻辑状态时所需的功率。可以通过观察电路中每个电阻元件的电流I和压降V来计算每个元件的功率VI,并求和得到总功率,这就是没有负载的情况下的静态功耗,也就是我们通常在数据手册上看到的标称值。
FPGA设计中常用的一些可以降低功耗的方法:
1.状态机编码:大量的逻辑资源是由实现的有限状态机的类型来定义的。One-hlt状态机编码创建每个状态的一个触发器的状态机,与Gray和二进制状态机,较少利用one-hot状态机可以获得功效更好的设计。一些综合器软件能自动对状态机进行编码,但最有效的方法是直接在HDL代码中定义状态值。
2.保护赋值:赋值保护的关键在于:若最终的输出不需要更新,则阻止输入信号向下传播到其它逻辑块。对输入信号的赋值保护可确保仅在适当时改变输出值,从而将不必要的输出开关减至最少。
在大型组合逻辑(例如宽总线复用器)的输入端加锁存器,这能抑制无效的开关活动,因为仅当输出需要更新时输入才被锁好。类似地,可利用控制寄存器来打开或关闭低级别的模块(如子模块中的状态机)。使大总线和子模块保持在一个恒定状态有助于减少不相关输出开关的数量。
3.组合环:在不注意的时候,设计师偶尔可能在FPGA设计中创建了组合环。当一组相关的组合逻辑在特定的条件下不断振荡时,就会形成这些组合环。振荡器将消耗FPGA中的许多电流。因此,最好是评估振荡器,或确保在重新评估之前任何反馈逻辑都由一个寄存器来进行门控。
4.门控时钟:对于暂时不使用的模块,系统可以减慢或停止其时钟。在任一给定时间,通过时钟可以节省功耗。门控时钟可以极大地节省功耗,因为有源时钟缓冲器的数目减少,翻转触发器的次数将减少,因而那些触发器的输出端将减少可能反转。门控时钟要求仔细地规划和分割算法,但节省的功耗相当可观。
推荐阅读:http://www.elecfans.com/article/83/116/2016/20160531420946.html
-
FPGA
+关注
关注
1625文章
21663浏览量
601670 -
寄存器
+关注
关注
31文章
5308浏览量
119978 -
功耗
+关注
关注
1文章
808浏览量
31911
发布评论请先 登录
相关推荐
评论