低功耗设计标准出台多年,为何低功耗设计还是那么难?

描述

  "IEEE 1801或更为业内所熟知的UPF标准,是描述电源意图(power intent)、设计及验证电源管理架构的一套方法学。这个标准自推出以来经历了4次大的更新,而不同版本之间的兼容性问题也使该标准成为EDA领域最难支持的标准之一。"

十年前,低功耗领域的两项标准终于在业界期待下进行了融合,在达成这个结果之前,行业内经过了巨头站队、各自为营的过程,其结果是给用户体验造成了困扰。这个标准就是现在的IEEE 1801标准,现在业界也称为低功耗标准格式(UPF)。

在这个标准出来之前,功耗已经成为最令全行业头痛的问题之一,连续多年来,都是国际会议上的焦点议题。彼时,工艺持续在按照摩尔定律演进,功耗也可以持续改善。虽然晶体管缩小了,但是单位面积上功耗不降反升,甚至有人预测若不对此做出相应的功耗改善,芯片功耗的能量密度将会赶上火箭发动机喷射口的能量密度。

渐渐地业内企业不再寄希望于工艺方面出现奇迹,所以必须进行设计相关的功耗降低,也就是电源管理,这其中包括多电压、电源关断、电压岛等方法。但是其结果就是整个设计流程变得碎片化,流程中每个工具都有不同的文件格式,极难实现自动化。

因此,用户急需一套统一的标准,一个可以描述电源意图的工具成为了市场的需求。诺基亚的全球IC工具经理Mika Naula在当时表示,他对功耗标准的要求就是MISS(make it simple, silly)和KISS(keep it simple, stupid)。希望能有一个可用、可维护和支持验证的标准,这样有助于工具之间的互操作性。

在此背景下,业界第一个低功耗的标准CPF (Common Power Format) 于2007年出炉了。通过CPF,设计师终于可以定义他们的功耗策略和框架了,而且因为是标准规范格式,只需要一次,工程师所定义的功耗意图就可以应用在整个芯片设计开发的流程之中。

这样大大简化了这个流程,真正做到事半功倍的效果。 这个本应给全行业带来更多便利的工具却成为了EDA巨头争夺的战场,与CPF相应的UPF标准也被开发出来。这两个标准语义不同,当时的用户评价CPF和UPF做功耗意图时是一样的,但是在细节上却是各行其道,用户在使用工具时不得不选边站队,让两个标准相互融合的呼声也越来越高。

IEEE 1801发展演进

2007年3月

Silicon Integration Initiative(Si2)组织发布了CPF 1.0,该标准由42条命令组成,可以描述低功耗意图。该标准不仅可以显著有效地降低了芯片的功耗,基于CPF的全流程设计实现了跨团队之间的高效沟通协作。同年,Accellera组织通过了UPF 1.0草案。UPF 1.0由32个命令组成。

2008年

Si2组织发布了CPF 1.1。由于Accellera组织将UPF贡献给IEEE,同年IEEE发布了IEEE 1801-2009标准,也被称为UPF 2.0。该标准向后兼容UPF 1.0,同时吸纳了CPF的一些概念。对比1.0版本,UPF 2.0最大的不同是引入了supply_set的概念,一个supply_set有6个function,从而检查会更加完善。

2011年

CPF 2.0发布。新版本优化了层级流程、增强了验证仿真相关流程,同时提高了与IEEE 1801的互操作性。

2011年5月

促成日后电源格式融合的里程碑事件是Si2宣布对IEEE开放低功耗方法论 (OpenLPM)。方法融合的直接好处是增强了采用混合低功耗格式设计流程中不同格式之间的互操作性。从长远来看,方法论的趋同也成为了标准格式融合的快车道,让两个标准尽快达成一致。

2013年

自Si2把CPF 2.0贡献给IEEE之后,这一年IEEE 1801-2013(UPF 2.1)发布,其中包含11条新的UPF命令,此版本象征了CPF和UPF的正式融合。该版本对先前的命令做了进一步改进、引入了电源模型和中继器策略,以及一些电源管理单元定义命令。UPF 2.1共包含86个命令:46个功耗意图、6个电源管理和34个Query命令。

2014年

此后不久,2014年发布了UPF 2.1的修订版——IEEE 1801a-2014(UPF 2.2)。此修正案中没有引入新命令,也没有弃用或删除任何命令。该版本纠正了UPF 2.1中的错误。改正了与电源状态、电源、优先规则和电源管理单元位置的语义相关的歧义和不一致之处。

2015年

IEEE 1801-2015(UPF 3.0)定稿并获得批准。该标准引入了11条新命令。一共由62条命令组成:51个功耗意图、6个电源管理和5个Query命令。新增内容包括电源状态和状态转换的功能增强,以及对IC设计流程不同阶段电源意图连续改进的支持。该版本还引入了详细的信息模型,作为增强包UPF功能和查询功能的基础。此外,它现在还支持在虚拟原型应用中进行系统级功耗分析的组件功耗建模。

2018年

到目前为止最新IEEE 1801-2018(UPF 3.1)发布。此版本是IEEE 1801的重要里程碑,添加了多项新功能并明确了现有功能,同时保持了先前版本之间一定程度的向后兼容性。 低功耗设计

随着低功耗设计方法学的演进以及越来越多的用户开始使用UPF,UPF标准会持续迭代升级,而这种升级包含但不限于对现有语义不完整或有歧义的地方进行修改,UPF也将满足用户更加多元的需求。

UPF经历了多代更迭才发展到现在,然而用户在使用UPF的时候出于使用习惯等原因未必会使用最新版。

在某些情况下,当设计迁移到新标准时,属性规范可能会导致错误,这表明设计中存在潜在问题,来自Liberty和UPF的信息存在冲突。因此工程师还需要编辑UPF文件并确保在电源意图中指定了正确的信息集。

多版本导致歧义

IEEE 1801虽然一步步趋于完善,但对用户的使用也产生了一定的困扰,尤其是各个版本之间存在语义、语法上的歧义甚至是冲突。

而目前市面上常用的EDA工具往往不能很好地兼容各个UPF版本,这也就使得芯片工程师不得不迁就EDA工具。 下面仅举几例说明UPF各版本之间的差异。

一. UPF语法上的不一致, 但语义都是一样的

1) 对电源状态表(Power State Table)的支持:

UPF1.0 步骤一:定义supply_ports的电源状态

 

add_port_state vdd1 -state {s08 0.8} -state {off off}
add_port_state vdd2 -state {s09 0.9} -state {off off}
add_port_state vss        -state {s0  0}
  步骤二:列出supply_ports之间的状态关系
create_pst PST1 -supplies {vdd1 vdd2 vss}
add_pst_state M1 -pst PST1 -state {s08 s09 s0}
add_pst_state M2 -pst PST1 -state {s08 off s0 }
  UPF2.0 步骤一:定义supply_sets的电源状态
create_supply_set SS1 -function {power vdd1} -function {ground vss}
create_supply_set SS2 -function {power vdd2} -function {ground vss}
add_power_state SS1 -state {on 
     -supply_expr { (power == {FULL_ON 0.8}) && (ground == {FULL_ON 0.0}) }
add_power_state SS2 -state {on 
     -supply_expr { (power == {FULL_ON 0.9}) && (ground == {FULL_ON 0.0}) }
步骤二:列出supply_sets之间的状态关系
add_power_state pd1 -state {m1  -logic_expr {  SS1==on   &&   SS2==on  }}
二. 语义不一致

1)电源域边界(power domain boundary)的定义不一样

UPF 1.0中定义仅是upper boundary,UPF 2.0及以上定义包括upper boundary和lower boundary。如下图, 对于蓝色这个power domain来说,在UPF 1.0的定义中,有效的elements是P1、P3。而在UPF 2.0的定义中,有效的elements是P1、P2和P3。

低功耗设计

2)option -diff_supply_only的默认值不一样

在set_level_shifter的command里面有一个option叫做-diff_supply_only。UPF 2.1及以下版本:默认值是false,表示不管source的电源和sink的电源是否是等价,当有set_level_shifter这个命令的时候,必须在它的elements上加level shifter cell。后来IEEE标准工作委员会认为这不合理,因为只有source和sink的电源不等价时才需要加level shifter cell,因此在UPF 3.0版本里把-diff_supply_only的默认值改成了true。

轻松搞定低功耗设计,让你的产品更COOL

市场对低功耗的需求越来越高,不只是便携设备的电池需要更长的续航时间,非便携设备也要降低冷却装置的成本,不仅如此,功耗近几年还成为了制约大算力芯片发展的重要瓶颈之一。随着社会对环保和可持续发展的重视,越来越多的公司和组织开始采取行动,推动电子设备的能效,这也将促进IEEE 1801标准在芯片设计中的采用和推广。 英诺达作为一家本土EDA公司,自创立之初就在低功耗领域积极布局,目前EnFortius“凝锋”系列低功耗EDA工具已经推出了两款低功耗工具——LPC低功耗设计验证工具GPA门级功耗分析工具

这两款工具采用了全新的产品架构,为业界首个基于UPF 3.1版本信息模型搭建核心电源意图数据结构的EDA工具,该数据库功能丰富,可以有效地访问UPF中描述的任何电源意图信息。 基于一些历史原因,在英诺达的系列低功耗EDA工具面世之前,市场上没有一款工具可以同时支持CPF和早期UPF版本,另外由于标准更新速度快,迄今许多大厂也尚未支持最新版中的一些命令和语义。

而英诺达的系列工具兼容了老版本的命令及语义,保证了最大程度的通用性及灵活性用以支持不同客户的实际需求。 英诺达秉持以客户需求为导向,帮助客户实现价值最大化的理念,将持续在低功耗领域深耕,与客户一起克服低功耗设计的难题,为中国半导体产业提供更为卓越的EDA解决方案。

 





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分