黑盒验证:
大多数基于仿真的验证环境都是黑盒验证。验证工程师学习设计的规格,然后编写验证环境中的 drivers, monitors, checkers,和scoreboard。整个过程中,验证工程师对设计的内部实现知之甚少。
黑盒验证有利也有弊。有利的一方面是,DUT内部的结构变化对验证环境影响很小,比如设计内部增加打拍逻辑对验证几乎没有影响,设计和验证相对比较独立。
白盒验证:
和黑盒验证的优缺点正好相反,白盒验证需要验证工程师充分理解DUT的内部结构。验证工程师可以观察设计内部信号,预测内部FIFO、流水线、状态机等微架构行为,并添加相应的检查。也就是说,白盒验证常常能够在设计源头上发现bug,而不用等到bug已经体现到了接口上。
白盒验证和设计微结构紧密联系在一起,仅仅是设计内部信号名的修改,验证环境也要同步修改,维护成本比较高。因此,我们应该只在低层次等级上进行白盒验证,尽量对微架构有足够的了解,但是也不要被设计的verilog代码所引导。
灰盒验证:
灰盒验证介于白盒验证和黑盒验证之间,这个“灰”也可以理解为灰度吧,每个验证工程师所负责的模块是应该更黑一点还是更白一点,这也是无法考究的。 灰盒验证存在的另一个原因是作为黑盒验证的助手,对于cache这样的设计,我们无法从端到端实时预测输出结果,这时候就需要借助一些设计内部信号。当然,需要强调的是,这个内部信号需要经过充分的验证和检视确认。
END
作者:验证哥布林
原文链接:https://mp.weixin.qq.com/s/LBOAdkMWOd2bRsUvFkM0LA
微信公众号:
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。