CPF, UPF, IEEE1801 这些名称的渊源可参阅《一文读懂power intent的历史:从CPF/UPF到IEEE1801》,1801的内容其实十分简明,概括来说一个完整的1801 文件可以分成三部分:
- 区域划分,上帝的归上帝,凯撒的归凯撒,包括supply set 跟power domain 两个东西。
- 策略定义,没有清规戒律,何以服众,包括isolation, level shifter, retention, power switch 四种策略。
- 模式定义,宿命就是划定的圈,听天由命也是宿命,只有power state.
在实际项目中,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 的定义如下图:
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.
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
作者微信公众号
相关文章推荐
• clock gating | Gating的插入与验证
• 论形式验证 | 撸 LEC flow
更多IC设计技术干货请关注IC设计技术专栏。