UVM1.2与UVM1.1的不同

UVM-1.2在2014年5月发布,相比于之前的UVM-1.1改变了一些东西,这里分两部分,逐步总结UVM-1.2和UVM-1.1的不同。

1. UVM-1.2增加的内容

2. UVM-1.2取消的内容

2.1 取消在sequence中控制objection

在1.1中可以通过raise_objection drop_objection 来控制tb的执行,而在1.2中取消了这种写法,改成了。

1
set_automatic_phase_objection(1);

在sequence的new函数中添加上面这一句就行了,自动控制sequence开始和结束。

原来在1.1中在sequence中

1
2
3
4
5
if(starting_phase!=null)
starting_phase.raise_objection(this);
....
if(starting_phase!=null)
starting_phase.drop_objection(this);

其中starting_phase是sequence中的一个变量,uvm_phase类型。sequencer自动将phase传给req变量的startiing_phase。(req指向sequencer发送的sequence)。

在1.2中用户不能访问starting_phase这个变量,不能传递phase,所以这个方法不行了。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!