什么是black box
在LEC 中,任何内部逻辑不需要验证的模块都被当做blackbox 处理,如RAM, ROM, analog module, behavioral module 等。LEC 完全不看black box的内部逻辑,但会对black box 的连接进行验证,black box 的输入会被当做compare point 进行比较, black box 的输出会作为其他compare point 的输入。
创建black box
- set\_undefined\_cell black\_box:
在读lib 跟 design 之前设置该命令,LEC 会将所有unresolve instance 当成black box, 这类black box 是不期望的,unresolve 是由于丢失了某些module 的定义导致的,一个完整的compare 应该把所有module 都读入,如果有些module 真没有,那也应该读入一个定义了pin direction 的空module.
- add\_notranslate\_module
在读lib 跟 design 之前设置该命令,用于显示地告知工具,这些module 要当做blackbox 处理,不用对其做解析, 从而节省runtime 跟memory. 用该命令设置成的black box 不能unblack-boxed. 通常用该命令对RAM, ROM, Analog IP 等做设置。
- add\_balck\_box
LEC 将设计解析之后,可以用该命令将某个module 或instance 设置成black box, 用该命令设置的black box 可以unbalck-boxed. LEC 在做hier compare 时把比过的sub module 设成black box 用的就是该命令。
- Black box created by Conformal
LEC 解析设计时,如果遇到不可综合的代码,或代码中有translate\_off 或 synthesis\_off 之类的pragma 时,LEC 也会将其当成black box 处理。
report black box
在解析完设计之后,需要用命令"report\_black\_box -detail" 将所有的black box 都报出来,要保证:
- 所有的black box 都是合理的;
- Golden 跟Revised 侧的black box 一一对应;
LEC 会将black box 进行分类,每一类的含义为:
Gray Box
所谓的gray box 就是比black box 多了一些信息,而又无足够的信息使其成为white box. 在一个lib cell 中,如果某些输出被接成了常值0/1 并且所有输入都不驱动任何输出,LEC 将会把这个lib cell 当成gray box 处理。如果此类cell 被当做普通cell 处理,因为此类cell 的input 未被使用,其对应的input logic cone 将不会被验证到;如果此类cell 被当做black box 处理,那被接成常值0/1 的output pin 的值不会被传递出去,从而导致LEC fail.
在LEC 中,如果某个lib cell 被当成了gray box, 会有RTL9.10a 的警告,Gray box 的名字格式为:
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/RTVUk8I4PLQQalJgxZIFiQ
作者微信公众号
相关文章推荐
•论功耗:低功耗检查
•Innovus Mixed Placer
更多IC设计技术干货请关注IC设计技术专栏。