cadence vmanager(十) vplan与vmanager结合使用的例子
0赞下面,用vplan与vmanager结合使用,来对一个验证环境,实现MDV的验证。
所验证的DUT,以及搭建的验证环境,是根据testbench.in网站上的systemverilog的demo来搭建的。demo的网站如下:
http://www.testbench.in/SL_00_INDEX.html
本demo,是使用vmanager的本地模式,如果使用CS模式,去掉相应选项即可。
一、目录结构
目录结果如下:
- filelist: rtl以及tb源文件列表
- Makefile: 实现环境编译与仿真
- source目录:存放DUT和验证环境的代码
- vmanager目录:包含两个2个目录
- vplan:存放vplan.csv,verification feature的csv文件,用来制作vplan的project。将来vplanner工具的启动目录。
- vmanager:存放setup.csh和vm_test.vsif,将来vmanager工具的启动目录。setup.csh是建立环境的脚本,vm_test.vsif,是启动session的必备文件
Makefile内容,使用irun工具,2步仿真法,第一步编译,第二步仿真。对于每次仿真,生成coverage。
首先,make,生成coverage数据,便于和之后的vplan进行关联。coverage数据包括ucm和ucd文件。
ucm是model文件,记录metric中的层次关系。
ucd是数据文件,记录环境中收集到的coverage数据。
二、vmanager环境建立
在使用vmanager之前,需要进行环境的建立,主要是文件的建立,以及一些环境变量的设置,环境建立,在setup.csh中。
MY_WORK_AREA: vmanager工具工作目录
MY_SESSIONS_AREA: vmanager的session的工作目录
MY_SOURCE_DIR : rtl和tb代码目录
这些环境变量,将来vmanager工具会用到。
三、vplan导入
在vmanager/vmanager目录下,启动vmanager工具,vplan工具可以从vmanager工具中启动。因为是本地模式,所以要加 –local 选项。
vmanager –local
将来,都是在vmanager中进行操作的。
vmager软件的启动界面,如下:
在Analysis Center界面中,选择New vPlan,启动vplanner工具。
打开的vplanner软件,打开vmanager/vplane下的csv文件。
载入之后,工具就会自动生成vplan。
四、关联vplan
制定好vplan之后,就需要将vplan的feature,关联到验证环境中的coverage,或者checker上。
在右边的Implementation->Import manger中,选择Load run directory。
选择刚刚,生成coverage的目录。
在Implementaton->Metrics,就会显示层次关系。
将右边input_interface的toggle coverage关联到左边的input_interface上。
左边的input_intf的图标就会发生变化,并且在左下角显示框中,也会显示该feature关联的metric。
依次,将其他的feature,和环境中的coverage进行关联。
关联完毕之后,另存为该vplan,格式为vplanx。将来vmanager,会用到这个vplan。
五、vsif文件
vplan制定好之后,就可以使用vmanager工具,来工作了。
在vmanager工作之前,需要编写vsif文件,vsif文件,是指导vmanager工具如何工作的。
以下是 vm_test.vsif 内容。定义了一个session,定义了一个group,在group中,定义了3个test,因此会run 3次,而又指定了count参数,因此会run 9次。
六、vmanager设置
在vmanager工具运行之前,需要先设置下。主要是设置下,DRM的参数。
在View->Configuration。
选择Runner->Drm,将Drm,改为LSF,这样多个RUN,是可以通过bsub提交到lsf服务器,并且运行的。
七、运行session
选择vmanager界面中的Launch,启动运行session。
session运行,需要加载vsif文件,选择之前的vsif文件。
会弹出一个终端,显示执行结果。
执行完毕后,vmanager的regression center,会显示run的结果。
总共有9次run,9次run的结果都是passed的。
八、分析runs
对session,右键,选择Analyze All Runs。
会进入到 Analysis center。
在这个界面中,可以查看各个run的结果。
九、分析metrics
对session,右键,选择Analyze Metrics。
可以查看,metrics数据。vmanager工具,会自动将9个run的metrics结果,merge成一个,显示在这里。这样,就不需要我们去写脚本,合并各个run的metrics。
可以查看具体的,code coverage,FSM, function coverage。和IMC工具,查看是一样的。
十、分析vplan
对vplan的各个feature分析,并且提供可视化的结果,这个我觉得是vmanager亮点的地方。
对session,右键,选择Analyze vPlan。
加载之前制定好的vplan。
然后就是见证奇迹的时候了,可以看到,vplan的各个feature,被vmanager工具进行了可视化,从分析结果可以看出,哪些feature,已经被验证到了,哪些feature验证比较少,以及各个feature的进度。
十一、合并session
vmanager不能合并session,只能将session下的run进行合并,组成一个新的session。
选择要合并的session,右键选择Analyze All Runs。
会切换到Analysis界面,选择所有的run,右键compact selected runs。
指定session保存的目录,以及session的名字。要注意,保存的目录,需要具备写权限,因为会创建目录,以及文件。
合并完成后,会弹出成功合并的对话框。
在session中,就会出现刚刚合并得到的session。
十二、删除session
选择要删除的session,右键Delete。
会弹出删除确认对话框,如果勾选delete session directory from file system,那么该session在磁盘中的文件,均会被删除掉。否则,不会被删除掉。