刚开始看VMM,请教~
求高人指点一二!
your understanding are right!
为什么是are不是is?
Callbacks are used to add user specified actions for selected events, for example if we have memory, we can add pre_put callback to inject error data to be written in memory and post_put callback, to see the final contents beign written to memory. Callback functions are organized in classes so we can have array of callback objects, each object with it's own behavior. For specified example, the transactor calls the pre_put function of the head ellement of callback object's array, then transactor calls pre_put of the 2nd object e.t.c.
Factory is a class specified for customizing the vmm_data objects in a way, user wants, for example, adding special constraints.
我也在学习vmm这是我的QQ号有空可以交流交流
995114082
我也正在学这个,对这两个也是感觉很困惑
学习学习
顶一个!
是在之前,还是在之后调用,不是取决于它的名字,是PRE,还是POST,要看你插入callback的位置
xiexie
vmm的一个理念是,通过test case去修改testbench的行为而不是直接修改testbench本身。callback和factory都是为了这个理念而提出来的。
举个例子,在testbench里面有一个transactor会根据输入产生对应的crc,在一个corner case里面需要这个transactor产生错误的crc来测试dut的响应。以前的做法是修改这个tr来支持这种模式,这样一来随着corner case的增加,这个tr的行为会越来越复杂,甚至新增加的代码会影响以前的代码。
现在的做法是,通过事先植入的callback,test case可以直接修改这个transactor的行为而不去修改testbench本身。
通常callback只加在输入输出端上,修改能力非常有限。个人认为通过factory模式去直接替换tr更有效。
VMM?有什么用的,不懂。