之前,无意之中,了解到这软件,开始学习,感受到这软件的强大,并且成功将该软件,用到了我们部门的flow中。因此,准备一系列的博文,来介绍下cadence的vmanager工具。强烈建议,做验证的团队,使用这个工具,并建立相应的flow。
在说,vmanager工具之前,首先要先介绍一下功能验证方法学。
一、功能验证方法学
做IC验证,我们都是基于功能进行验证。针对功能验证,历经了三个方法学。如下图所示:
◾directed-test Drive:直接给dut施加激励,然后判断DUT输出是否正确,来验证DUT的各个功能,但是带来的问题,验证不能完备,会遗漏很多隐藏的bug。
◾coverage drive:基于coverage,施加激励,然后最后收集coverage,来判断功能验证是否完备,但是带来的问题是,编写coverage可能会遗漏,造成验证不能完备,并且很难去预估验证是否完成。
◾metric drive:是目前新提出的功能验证方法学。基于验证计划的各个feature,施加激励,最后收集各个feature的metric,反标到验证计划中,得到可视化结果,从而确定验证是否完备。
下面,就要重点介绍这第三种验证方法学,metric drive verification,简称MDV。
二、MDV
MDV,是一种新的功能验证方法学。核心,还是基于coverage,但是将coverage好久和验证计划进行了结合。
将验证得到的metric,反标到验证计划,得到可视化结果,从这可视化结果,从而确定验证到达了哪一个阶段,下一步的验证方向应该是什么,以及最终判断验证是否完备。保证了验证的快速收敛。
metric,其实就是覆盖率,在cadence工具中,是这样称呼的。
cadence,为了实现MDV,提供了vmanager和vplan工具,并制定了一套MDV流程。
三、MDV流程
cadence将MDV流程,分成了4部分,如下图所示:
◾plan: 制定验证计划,根据验证的testpoint(测试点),利用vplan工具,转化为vplan工程,供后续metric反标使用。
◾construct:根据验证计划,编写coverage和checker。来保证,各个testpoint是否有验证到。
◾execute:利用各个工具,如irun,PXP,formal等工具,对验证环境进行仿真。
◾measure/analyze: coverage收集和分析,反标到vplan,确定验证是否signoff。
其中,最核心的部分,就是中间的部分,负责验证管理和数据管理。这部分,就是由cadence的vmanager工具来负责的。
总之,coverage是MDV的关键,验证中,时时刻刻以coverage为中心,将coverage反标到vplan中,判断vplan中的各个测试点,是否有达到,从而指导下一步的验证方向。
MDV,可以让你知道,下一步你应该怎么做,并且怎么快速的实现他(Know where you are going and get there faster)。
后面,我会逐一的介绍,vmanager工具和vplan工具,以及怎么利用这2个工具,来实现MDV。
更多相关阅读
uvm中获取cmdlind内容
sv的常数数组参数传递
uvm中run_test
原文首发于骏的世界博客
作者:卢骏
更多IC设计相关的文章请关注IC设计极术专栏,每日更新。