罗风 · 2021年03月03日

论形式验证 | Blackbox 跟 Graybox

什么是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.

WeChat Image_20210303093744.jpg

  • add\_notranslate\_module

在读lib 跟 design 之前设置该命令,用于显示地告知工具,这些module 要当做blackbox 处理,不用对其做解析, 从而节省runtime 跟memory. 用该命令设置成的black box 不能unblack-boxed. 通常用该命令对RAM, ROM, Analog IP 等做设置。

WeChat Image_20210303093801.jpg

  • add\_balck\_box

LEC 将设计解析之后,可以用该命令将某个module 或instance 设置成black box, 用该命令设置的black box 可以unbalck-boxed. LEC 在做hier compare 时把比过的sub module 设成black box 用的就是该命令。

WeChat Image_20210303093804.jpg

  • 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 进行分类,每一类的含义为:

WeChat Image_20210303093809.jpg

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.

WeChat Image_20210303093811.jpg

在LEC 中,如果某个lib cell 被当成了gray box, 会有RTL9.10a 的警告,Gray box 的名字格式为:

WeChat Image_20210303093814.jpg


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

相关文章推荐

论功耗:低功耗检查
Innovus Mixed Placer

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