相关阅读Power Compilerhttps://blog.csdn.net/weixin_45791458/category_13013065.html?spm1001.2014.3001.5482到2000年代中后期SoC一边在追求更高集成度和更多功能一边又要服务手机、手持和电池供电设备结果就是“更长续航和更多功能”同时变成硬要求。与此同时多电压域(MultiVoltage)、电源门控(Power Gating)、保持触发器(Retention Register)、隔离单元(Isolation Cell)、电压转换器(Level Shifter)这些低功耗技术开始大量进入实际芯片设计功耗不再只是电路级的小优化而是贯穿系统、RTL、验证、实现全流程的大问题。硬件描述语言缺少一种一致、简洁的方法去表达设计中不同供电区域及其状态。早期做法往往是各家工具各有各的命令比如对于Synopsys而言在RTL代码中添加$power等系统任务并在综合时使用低功耗私有命令infer_power_domains命令推导出电压域同一份低功耗信息要在仿真、综合、布局布线、签核等不同工具里重复输入格式还不统一。这会让工具间共享困难也容易在交付时引入误解和错误。UPF本质上就是为了解决这种“工具各说各话”的问题。UPF的出现其实还带着很强的“标准竞争”色彩。2006年Cadence联合产业伙伴发起了功耗前锋倡议(Power Forward Initiative, PFI)目标是推动更省电电子产品的设计与生产并在之后捐给了硅集成倡议组织(Silicon Integration Initiative, Si2)做标准化形成了CPF(Common Power Format)Cadence凭借其在Encounter平台上的统治力试图通过CPF建立事实上的行业标准。同年9月Accellera启动了UPF(Unified Power Format)技术小组启动会上来自Synopsys、Mentor、Magma和Sun等公司的技术捐赠意向都已经出现随后UPF 1.0于2007年发布并于同年捐给了IEEEIEEE在2009年发布了IEEE 1801-2009标准即UPF 2.0。尽管Cadence坚持推行了很久的CPF但随着IEEE 1801标准成为主流为了保证工具的通用性Cadence最终也在其数字后端工具中全面支持了UPF但同时继续兼容CPF。UPF后面逐步演进为IEEE1801-2013(UPF 2.1)、IEEE 1801-2015(UPF 3.0)、IEEE 1801-2018(UPF 3.1)当前最新公开版本是IEEE 1801-2024(UPF 4.0)如图1所示。图1 UPF和CPF的历史图2、图3和图4分别展示了UPF 1.0、UPF 2.0、UPF 2.1的命令更迭情况。图2 UPF 1.0的命令图3 UPF 2.0的命令图4 UPF 2.1的命令