FPGA低功耗设计的小提示
利用FPGA的结构来降低功耗还有赖于所使用的软件工具。用户可以从众多综合工具经销商那里进行选择,那些能够使用专用模块电路并智能地设计逻辑功能的综合工具,将有助于用户降低动态功耗。此外,根据自己的设计,用户可以尝试以面积驱动来替代时序驱动的综合,以降低逻辑电平。不同综合工具的选项有所差别,因此应当了解哪个“开关”或“按钮”是必需的。同样重要的还有布局与布线工具,一旦用户选择了某种特殊的FPGA,他就必须采用该供应商的布局布线工具。由于互连会潜在地增加功耗,因而仔细进行布局规划和设计尤为重要。即便设计不需要很快完成,设计者也希望尽可能地加快进度。诸如Altera LogicLock之类的工具所增加的设计功能可使用户在器件定制区域内进行逻辑分组布局,因而一旦用户找到一种高效布局,就能很快改编为他用。为使设计消耗最小的动态功耗,可采用优化的算法来降低多余和无意义的开关活动,例如具有许多不同状态的状态机。一个二进制编码的状态机将通过触发器产生多个比特并形成组合逻辑,采用格雷码或One-hot编码可降低从一个状态到另一个状态的开关次数。同时工程师在实现降低功耗的目标时,需要平衡格雷码所需的额外组合逻辑,或One-hot编码所需的附加触发器。
数据保护和操作数隔离是另一种降低功耗的技术。在这种技术中只要没有输出,数据路径算子的输入都会保持稳定。输入的开关行为会波及其它电路,因此即使在忽略输出的情况下也能消耗功率,例如某个集成了基本算术逻辑单元(ALU)的设计。通过保持输入的稳定性(停止开关),开关动作的数量就能得到减少。这种方法为每个模块的输入端提供了保护逻辑(触发器和/或门电路),减少了开关动作,从而降低了系统整体的功耗。
在时钟网络上减少开关动作也可大幅降低功耗。多数可提供独立全局时钟的FPGA是分割为几部分的,若一个设计间歇地采用部分逻辑,就可关掉其时钟以节省功耗。最新FPGA中的PLL可禁止时钟网络并支持时钟转换,因此既可关掉时钟也可转换为更低频率的时钟。更小的逻辑部分能够潜在地使用本地/局域时钟来替代全局时钟,因此不必使用不相称的大型时钟网络。
对易受干扰的设计而言,减少意外的逻辑干扰可大幅降低动态功耗。意外干扰是在组合逻辑输出时产生的暂时性逻辑转换。减少这种效应的一个方法是重新考虑时序设计,以平衡时序关键路径和非关键路径间的延迟。用户可在软件工具的帮助下应用这种方法,例如某软件可通过组合逻辑移动寄存器的位置,以实现平衡时序。另外一种方法是引入流水线结构,以减少组合逻辑深度,流水线还有助于增加速度。第二种方法对无意外干扰设计的效果不明显,相反还可能增加功耗。
方便快捷的精确功率估算工具,不仅有助于设计工程师对功率进行定量评估,同时也有助于加快产品设计进度。如果在初期功率评估工具和数据表中没有实际数据,设计工程师就不能在设计阶段走得更远。获取初期评估数据工具,可使设计人员在设计开始之前就进行功率估算。此外作为设计规划,工程师可将布局和布线设计加载到更精确的功率评估持续当中,从而得到一个更精准的功耗描述。最好的评估工具可使仿真文件无缝集成到电源工具中,因而能够获得开关功率的精确描述;若不能进行仿真,则该工具也能自动给出FPGA设计的评估参数。
- 基于μC/OS-II嵌入式系统的低功耗开发(07-08)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- AVR单片机介绍(07-09)
- 基于WinCE5.0的嵌入式设备休眠唤醒技术研究(09-27)
- DSP电源系统的低功耗设计(11-13)
- 基于DSP的低功耗接收机单边带解调方法(01-10)
