微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 求助:关于VMM验证

求助:关于VMM验证

时间:10-02 整理:3721RD 点击:
小弟关于VMM验证方法一直有些疑问。我在测试中自认为是这个验证方法,但是对比规范的测试平台自己的测试又欠缺很多,先将疑问提出:
1.是否所有的测试平台都需要完整的“测试层,场景层,功能层,指令层,信号层”?我一直对其中各层主要负责的任务没有搞清楚。比如,场景层中的测试案例,具体指的是什么?场景层和功能层中的生成器和驱动器,我觉得完成的功能相同,都是为DUT提供激励,其差异在哪呢?
2.针对测试测试平台的定义:测试平台产生受约束的随机激励,并收集功能覆盖数据。假如我为了测试一个模块,比如一个浮点乘法部件。没有完整的测试平台中这些层和部件,只有受约束的随机激励和一个对比模型,也有功能覆盖率模型,来观察最后的覆盖率情况。请问这样的一个验证过程是否也可以成为VMM的验证方法?
3.对于测试人员,关于systemverilog中的具体语法和结构是否都必须掌握,或者说掌握到何种程度?
4.完整的测试平台中,是否其是针对SOC设计,假如针对一个小得设计并不需要完整的测试平台。
大概就这些,自己一直都搞不清楚。还望大家各抒己见,畅所欲言!
谢谢!

自己顶一下,希望不要沉了!

对于测试平台,我觉得不需要严格搭建完整的验证平台,重点是为了项目进行验证服务的,而不是为了搭建验证平台而搭建的,这个可以有一定的灵活调整~

首先你好像对验证和测试划分的不是很清楚,我也没做多长时间,但我觉得验证主要是指流片前的一些debug,也叫EDA验证,对于你所说的那个验证结构,应该不算VMM,只是一个简单验证平台,但对于验证这个模块已经足够了。
至于SV和验证的关系,其实SV是为验证服务的,但验证不一定用SV,比如以前就可以用verilog写浮点模块,但以前没有SV,不是照样设计出来验证完成。方法学之类的东西个人认为不是浮云,但也不一定非得用,它只是建立在SV基础上的一种验证方法,我们用这个方法能更好的发挥SV在验证方面的优势。但你要在验证方向长远发展还是得会一些的。换句话说,你做验证还不学方法学,那你打算学什么呢?靠你那个平台走天下可不现实。
见解比较粗浅,网上可以找到很多介绍。

1.是否所有的测试平台都需要完整的“测试层,场景层,功能层,指令层,信号层”?我一直对其中各层主要负责的任务没有搞清楚。比如,场景层中的测试案例,具体指的是什么?场景层和功能层中的生成器和驱动器,我觉得完成的功能相同,都是为DUT提供激励,其差异在哪呢?
这些层次的分类更多是基于抽象层面,不是所有的环境都需要完整的实现这些层次,但是一般来说,除了场景层其他层应该都有: 信号层必须有(DUT所在的就是信号层), 指令层也必然有,你不可能基于时序去验证,总得把数据抽象出来。功能层就是针对抽象数据的各种操作,例如比对两个数据流的ScoreBoard。测试层也总是有的,testcase就是测试层么。所以除了场景层不是所有环境都有,其他的层一般都是有的。

2.针对测试测试平台的定义:测试平台产生受约束的随机激励,并收集功能覆盖数据。假如我为了测试一个模块,比如一个浮点乘法部件。没有完整的测试平台中这些层和部件,只有受约束的随机激励和一个对比模型,也有功能覆盖率模型,来观察最后的覆盖率情况。请问这样的一个验证过程是否也可以成为VMM的验证方法?

当然可以…… vmm书的前言说了,工程师可以根据自己的需要,选择使用书中接受的全部或者一部分方法用于自己的实践。
BTW:我认为纠结于这个名分似乎没啥意义。

3.对于测试人员,关于systemverilog中的具体语法和结构是否都必须掌握,或者说掌握到何种程度?
基本的控制语句,class建模,constraint, coverage,assertion语法相关熟悉了就差不多了,其他的用到了再学。
4.完整的测试平台中,是否其是针对SOC设计,假如针对一个小得设计并不需要完整的测试平台。
那得看有多小了,一个乘法器这种,直接写个嵌入式的自测试语句也许都更快……

谢谢。这两天看有关资料,也发现实用的测试平台中,并不是将所有模块都陈列出来。具体难易程度,需要是项目具体而定。

谢谢您的回复。近几天我在看一些例子,发现的确如您所说。测试平台的复杂度需要根据DUT的难易程度而定。
但是还有一个问题,我想问您。
关于基类,VMM的库函数,对于一般的测试平台搭建有什么帮助呢?

上面的都不是专业的验证人员,
如果你按着VMM user guide来搭, 这些层都有了.
vmm_test---测试层
vmm_senario---场景层
vmm_xactor -> 扩展出功能层和指令层-> driver和generator
interface -> 信号层.
不管模块大小, 层次必须清楚, 这个对于reuse非常有用. 而且基本代码可以用vmmgen产生出来, 然后往里填东西即可.
SV的语法必须完全, 清楚掌握, 当然太corner的可以了解, 不然你做什么验证.
小模块也要标准化, 不然怎么集成到SoC里? 或者大模块里?

liaojieliaojie

学习了。谢谢!

en ,了解了,谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top