罗风 · 2021年03月15日

论功耗 | IEEE1801 Coding Part I

CPF, UPF, IEEE1801 这些名称的渊源可参阅《一文读懂power intent的历史:从CPF/UPF到IEEE1801》,1801的内容其实十分简明,概括来说一个完整的1801 文件可以分成三部分:

  • 区域划分,上帝的归上帝,凯撒的归凯撒,包括supply set 跟power domain 两个东西。
  • 策略定义,没有清规戒律,何以服众,包括isolation, level shifter, retention, power switch 四种策略。
  • 模式定义,宿命就是划定的圈,听天由命也是宿命,只有power state.

WeChat Image_20210315103724.jpg

在实际项目中,power domain 的划分有时候会极其复杂,会有多个1801 文件相互调用,但再复杂的设计都是上述三部分内容的集合,在面对复杂设计时,简单有效的办法是:一张图 + 一张表。

  • 一张图:将power domain 及boundary 的关系画出来,就可以十分明确地知道需要定义多少个power domain, 每个power domain 有哪些供电电压,哪些power domain 之间需要isolation 或level shifter, 哪些power domain 需要power switch 跟retention cell. 有了图之后,剩下的事情就是用1801 的命令进行描述。
  • 一张表:用表来描述power state, 先将每一个supply set 的power state 列出,再将系统的power mode 列出。

区域划分

Supply set:从1801 开始引入supply set 的概念,supply set 很像C++ 里的"类",它将所有相关的supply nets "封装"起来,一个supply set 包含某个instance 或power domain 所有的supply nets。1801 的标准一直在更新,现在最新的应该是IEEE1801-2015, supply set 的定义如下图:

WeChat Image_20210315103833.jpg

Power Domain:在逻辑上看,power domain是一组instance 的集合,集合中所有的instance 共用相同的supply set. 从物理上看,一个power domain 对应一个voltage area, 这个area 内部所有的std cell 用同一组电源和地。

需要特别说明一下 -available\_supply 这个option,  默认在"本power domain" 或 "父power domain" 区域定义的supply set 都可供该power domain 所用,但实际项目中,并不能也不需要将所有的power 都拉到该区域,所以需要给工具指明该power domain 需要哪些supply set, 此时就需要用到这个 option:

  • 如果没有指定-available\_supply,则在"本power domain" 或 "父power domain" 区域定义的supply set 都可为该power domain 所用;
  • 如果指定-available\_supply 且其值为空字符串,如 {} , 那只有-supply 指定的supply set 才可以为本power domain 所用;
  • 如果用-available\_supply 指定了某个具体的 supply set, 则该power domain 除了可以用由-supply 指定的supply set 也可以用由该option 指定的supply set.

WeChat Image_20210315103852.jpg
Supply set in Power domain:每创建一个power domain 都会自动创建三个supply sets:

  • Primary:定义该power domain 中所有instance 的primary power 和 primary ground。
  • Default retention: 用于retention cells.
  • Default isolation:用于isolation cells

也同C++ 中对象的访问类似,可以用 "句柄" 来访问power domain 的supply set, 如:"DomainName**.**Supply\_set"。创建power domain时自动创建的supply sets 需要同电路中的supply net 正确关联起来方可。有如下两种方式:

  • Style1:

create\_supply\_set SS1 -function {power VDD}

create\_power\_domain PD1 –supply {primary SS1}

  • Style2:

create\_power\_domain PD1

create\_supply\_set SS1 -function {power VDD}

associate\_supply\_set SS1 –handle PD1.primary

作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/5wxJn9AIokFteLsdpAhhZw
作者微信公众号
捕获.PNG

相关文章推荐

clock gating | Gating的插入与验证
论形式验证 | 撸 LEC flow

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
11258
内容数
1222
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息