Functional Safety 是汽车电子的独特之处,在P&R 阶段有以下几点需要特别处理:
- placement 时,要对特定寄存器特别处理,要保证这些寄存器之间保持一定距离,而且这些寄存器不可以共用同一个『井』,如TMR <Triple mode/ modular redundancy> 寄存器。
- Routing 时,要保证绕线不能跨越Safety Island, 只能在岛内胡搞。
针对这一需求,Innovus 提供了一套以『 instance space group 』为核心的解决方案,该解决方案即可处理寄存器也可处理组合逻辑,相关命令:
- create\_inst\_space\_group, 用于创建instance space group, 其中-checking\_box 是Innovus 19.1 的新功能,当值为all 时,如果-spacing\_x 或 -spacing\_y 有violation 就会认为place 违规;当值为cross\_only 时,如果-spacing\_x 且 -spacing\_y 有violation 才会认为place 违规。
- delete\_inst\_space\_group, 用于删除某个已创建的instance space group.
- report\_inst\_space\_group, 用于report 某个已创建的instance space group.
创建好了instance space group 后只需要在Innovus 里使能instance space group aware placement 即可,LUI 用第一个命令,CUI 用第二个命令。
place 完之后,需要将下面两个变量设成TRUE 用命令checkPlace/check\_place检查instance space group 是否满足要求。
Instance space group 只是对placer 的约束,在database 里并没有对应的object, 所以不可以用dbGet 或get\_db 抓出来。如果想要在GUI 中highlight 出某个instance space group 可以用如下proc:
可以用如下proc check 选定的cell 是否满足指定的instance space 如果不满足就标个marker.
一个栗子:
创建instance space group:
report instance space group:
Highlight instance space group:
参考文献:
- https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000007MqMBUA0&pageName=ArticleContent
- https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000006DdEpUAK&pageName=ArticleContent
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/-rsUn0AMEdYM-Ja9Hh3_GQ
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。