请教几个验证的问题
2:基本的写验证平台的过程是什么,我理解是这样的
首先是写一个stimulate,然后写个driver,然后写他们两个之间连接关系
然后再写个scorboard,然后写它和stimulate的连接关系
然后再吧把自己要测试的dut和driver连接起来
然后再写个monitor,再写个连接把它和dut连接起来。
最后再吧monitir和scoreboard连接起来
也就是说每两个部分之间的接口都要写是吗?分别用哪个函数哪个类来写?
假如用一个简单的1位全加器来说stimulate就是指写个时钟的意思吗?那driver又该怎么写?它表达个什么意思?
scoreboard的意思就是说再同样的激励下对比我用rtl级代码写的全加器,和我理想
所得到的结果(如c=a+b)是不是一样的意思吗?
monitor在这里边又是什么意思是监视我的rtl级别的结果出来没有的意思吗?就是
说看看我的dut一次计算的结果出来没有~出来的话就和记分板上的理
论结果比较一下的意思是吗?
3 好像avm机制里头写接口的有很多形式~比如说*_pins_if,*_put/get_*,*_port之类的~分别怎么用~可以的话请详细说一下
4 还有slave master 模块又是干什么用的~
先问这几个~看了3个星期的《高级验证方法学》没看明白。
请高人不吝赐教~
也来学习 等高人给意见
1:各个层次之间是通过new来连接的吗;同层次之间是同过put/get来连接的吗;那写interface又是为什么呢~和上述两种连接方式有什么不同吗。还有pins_if这些东西又是干什么的哦
你说的这些都是一些TLM的概念,可以去看看SYSTEMC的资料。
一般来说,为了降低模块之间的耦合度,模块之间的通讯需要借助一个第三方资源,比如channel/fifo等,
然后在每个模块内部维护一个指向此第三方资源的指针,如果两个模块的指针都指向了同一个资源,
则此两个模块便可通过此第三方资源完成通讯。
你所谓的new只是完成参数的传递功能,至于能不能连接上,要看你传的是什么参数
而put/get则是对第三方资源的访问接口
interface接口,顾名思义就是定义一些基本的接口功能,但不实现其具体细节,类似于空架子。
不懂,帮顶了。
我也来学习学习
刚入门,什么都不懂,好专业啊
也来学习 等高人给意见
用什么啊?VMM?
基本的写验证平台的过程是什么,我理解是这样的
首先是写一个stimulate,然后写个driver,然后写他们两个之间连接关系
然后再写个scorboard,然后写它和stimulate的连接关系
然后再吧把自己要测试的dut和driver连接起来
然后再写个monitor,再写个连接把它和dut连接起来。
最后再吧monitir和scoreboard连接起来
其实无所谓先后顺序,一般是由不同的人同时编写。
假如用一个简单的1位全加器来说stimulate就是指写个时钟的意思吗?那driver又该怎么写?它表达个什么意思?
scoreboard的意思就是说再同样的激励下对比我用rtl级代码写的全加器,和我理想
所得到的结果(如c=a+b)是不是一样的意思吗?
monitor在这里边又是什么意思是监视我的rtl级别的结果出来没有的意思吗?就是
说看看我的dut一次计算的结果出来没有~出来的话就和记分板上的理
论结果比较一下的意思是吗?
以下只是个人观点,欢迎指正:
就一个1位全加器来说
stimulate是用来产生000(a=0,b=0,cin=0), 001(),....这些输入序列的模块。我们一般叫transaction gen,
driver把这些序列转成物理信号,有点像协议的物理层:)
scoreboard和monitor概念比较模糊,每人理解不一样,这里就不说了。
有点儿混乱