0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

英诺达EnnoCAD 来源:英诺达EnnoCAD 2023-06-02 09:02 次阅读

"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的重要里程碑,添加了多项新功能并明确了现有功能,同时保持了先前版本之间一定程度的向后兼容性。 ee13389a-009f-11ee-90ce-dac502259ad0.png

随着低功耗设计方法学的演进以及越来越多的用户开始使用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_statevdd1-state{s080.8}-state{offoff}
add_port_statevdd2-state{s090.9}-state{offoff}
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。

ee299860-009f-11ee-90ce-dac502259ad0.png

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解决方案。





审核编辑:刘清

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

    关注

    112

    文章

    6015

    浏览量

    141109
  • 晶体管
    +关注

    关注

    76

    文章

    9056

    浏览量

    135225
  • 低功耗设计
    +关注

    关注

    0

    文章

    78

    浏览量

    16106
  • UPF
    UPF
    +关注

    关注

    0

    文章

    47

    浏览量

    13344

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

文章出处:【微信号:gh_387c27f737c1,微信公众号:英诺达EnnoCAD】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    低功耗蓝牙技术的特点 低功耗蓝牙如何实现低功耗

    低功耗蓝牙技术是一种优化的蓝牙技术,专为满足低功耗需求而设计。它通过采用一系列节能措施和技术,实现了更低的功耗消耗,延长了设备的续航时间。
    的头像 发表于 02-07 16:49 777次阅读

    ESP32-S3模组是怎么配置低功耗模式的?低功耗模式下功耗大概是多少?

    经常有人问S3模组是怎么配置低功耗模式的?低功耗模式下功耗大概是多少?下面小启就跟大家讲下S3模组低功耗情况。01ESP32S3系列模组三种低功耗
    的头像 发表于 01-26 08:03 1101次阅读
    ESP32-S3模组是怎么配置<b class='flag-5'>低功耗</b>模式的?<b class='flag-5'>低功耗</b>模式下<b class='flag-5'>功耗</b>大概是多少?

    stm低功耗单片机推荐

    在选择低功耗单片机时,有许多不同的选择可供考虑。本文将详细介绍一些流行的低功耗单片机,并提供其特点、应用领域和优点。 Nordic Semiconductor nRF51822: Nordic
    的头像 发表于 01-08 14:43 442次阅读

    低功耗PR设计简析

    低功耗设计前,功耗为27.9mW。
    的头像 发表于 01-03 10:05 209次阅读
    <b class='flag-5'>低功耗</b>PR设计简析

    一文读懂低功耗蓝牙的应用

    蓝牙技术联盟于2010年推出了蓝牙4.0规范,其中低功耗蓝牙的出现满足了小型电池供电设备进行低功耗无线连接的需求,因此得到广泛应用。本文章将带你深入了解低功耗蓝牙的应用。低功耗蓝牙简介
    的头像 发表于 12-28 08:24 419次阅读
    一文读懂<b class='flag-5'>低功耗</b>蓝牙的应用

    嵌入式软件的低功耗设计

    电子产品尤其是电池供电的都要求低功耗,究竟怎样才算低功耗?脱离应用场合的数值没有意义,低功耗是一种看情况而定、只可意会的标准
    的头像 发表于 12-13 09:14 292次阅读

    FSMs低功耗设计

    低功耗设计是当下的需要!这篇文章:低功耗设计方法论的必要性让我们深入了解了现代设计的意图和对功耗感知的需求。在低功耗方法标签下的时钟门控和电源门控的后续文章中,讨论了一些SoC
    的头像 发表于 10-17 10:41 343次阅读
    FSMs<b class='flag-5'>低功耗</b>设计

    低功耗应用是用RTOS还是裸机,哪个省电?

    低功耗应用是用RTOS还是裸机,哪个省电?
    发表于 09-20 07:43

    STM32Lx低功耗实战设计

    ST低功耗MCU产品介绍• STM32Lx 低功耗产品特性• STM32Lx 低功耗模式对比• 低功耗MCU ULPBench• 低功耗市场
    发表于 09-11 06:04

    《SoC底层软件低功耗系统设计与实现》基于Linux专门讲解软件低功耗框架和设计的书籍

    本书内容 选材不错 在众多的Linux技术书籍中,专门讲低功耗这一部分细分技术的书籍非常少,本书专注于该部分技术分析,从内容看是一本值得一看的书。物联网行业尤其对功耗敏感,所以本书的众多实现技术
    发表于 09-08 23:38

    FreeRTOS如何降低功耗

    1、如何降低功耗? 一般的简单应用中处理器大量的时间都在处理空闲任务,所以我们就可以考虑当处理器处理空闲任务的时候就进入低功耗模式,当需要处理应用层代码的时候就将处理器从低功耗模式唤醒
    的头像 发表于 07-30 11:18 696次阅读

    N76E003的低功耗为何降到几个mA就不降了?

    好多人问过N76E003的低功耗为何降到几个mA就不降了,跟手册不一样啊。咋回事呢?
    发表于 06-21 07:06

    低功耗技术(三)UPF的使用

    UPF是一个统一的,被广泛应用的低功耗实现标准。它用一些标准的语言描述用户的低功耗设计意图。
    发表于 06-05 17:48 1500次阅读
    <b class='flag-5'>低功耗</b>技术(三)UPF的使用

    开发低功耗应用

    介绍低功耗的概述
    的头像 发表于 06-03 12:43 850次阅读

    什么是低功耗设计呢?

    想必各位ICer们在招聘JD上专门看到低功耗设计经验的要求,什么是低功耗设计呢?对于后端工程 师来讲,在物理实现方面就是引入多条电源线
    的头像 发表于 05-15 11:42 768次阅读
    什么是<b class='flag-5'>低功耗</b>设计呢?