设计方法
为使设计消耗最小的动态功耗,可采用优化的算法来降低多余和无意义的开关活动,例如具有许多不同状态的状态机。一个二进制编码的状态机将通过触发器产生多个比特并形成组合逻辑,采用格雷码或One-hot编码可降低从一个状态到另一个状态的开关次数。同时工程师在实现降低功耗的目标时,需要平衡格雷码所需的额外组合逻辑,或One-hot编码所需的附加触发器。
数据保护和操作数隔离是另一种降低功耗的技术。在这种技术中只要没有输出,数据路径算子的输入都会保持稳定。输入的开关行为会波及其它电路,因此即使在忽略输出的情况下也能消耗功率,例如某个集成了基本算术逻辑单元(ALU)的设计。通过保持输入的稳定性(停止开关),开关动作的数量就能得到减少。这种方法为每个模块的输入端提供了保护逻辑(触发器和/或门电路),减少了开关动作,从而降低了系统整体的功耗。
在时钟网络上减少开关动作也可大幅降低功耗。多数可提供独立全局时钟的FPGA是分割为几部分的,若一个设计间歇地采用部分逻辑,就可关掉其时钟以节省功耗。最新FPGA中的PLL可禁止时钟网络并支持时钟转换,因此既可关掉时钟也可转换为更低频率的时钟。更小的逻辑部分能够潜在地使用本地/局域时钟来替代全局时钟,因此不必使用不相称的大型时钟网络。
对易受干扰的设计而言,减少意外的逻辑干扰可大幅降低动态功耗。意外干扰是在组合逻辑输出时产生的暂时性逻辑转换。减少这种效应的一个方法是重新考虑时序设计,以平衡时序关键路径和非关键路径间的延迟。用户可在软件工具的帮助下应用这种方法,例如某软件可通过组合逻辑移动寄存器的位置,以实现平衡时序。另外一种方法是引入流水线结构,以减少组合逻辑深度,流水线还有助于增加速度。第二种方法对无意外干扰设计的效果不明显,相反还可能增加功耗。
功率分析工具
方便快捷的精确功率估算工具,不仅有助于设计工程师对功率进行定量评估,同时也有助于加快产品设计进度。如果在初期功率评估工具和数据表中没有实际数据,设计工程师就不能在设计阶段走得更远。获取初期评估数据工具,可使设计人员在设计开始之前就进行功率估算。此外作为设计规划,工程师可将布局和布线设计加载到更精确的功率评估持续当中,从而得到一个更精准的功耗描述。最好的评估工具可使仿真文件无缝集成到电源工具中,因而能够获得开关功率的精确描述;若不能进行仿真,则该工具也能自动给出FPGA设计的评估参数。