Sequencer默认不执行任何Sequence。验证工程师可以通过调用start()启动一个Sequence,也可以通过uvm_config_db指定一个自动启动的Sequence。
手动启动Sequence
验证工程师可以实例化,然后随机化一个Sequence,最后调用start()启动这个Sequence。
自动启动Sequence
随着run-time phase的启动,sequencer将检查该phase是否有一个Sequence可以自动启动。这样的“自动启动Sequence”通常在test case中设置。
也可以启动一个Sequence的特定实例
进入指定phase后,该Sequence实例将被启动。sequencer不会对Sequence的实例进行随机化。
覆盖Sequence Items和Sequences
在用户定义的uvm_test中,例如base_test_ubus_demo,你可以通过factory配置uvm验证环境来创建不一样的Sequences和Sequence Items。
a) 扩展基类simple_item,声明一个用户定义的Sequence Items类word_aligned_item。
b) 调用合适的 uvm_factory覆盖方法,类型覆盖或者实例覆盖。假设simple_seq_do sequence由simple_sequencer sequencer执行,你可以选择用word_aligned_item类型来替换simple_item类型。
覆盖生效之后,将创建一个word_aligned_item,而不是一个simple_item。
全部0条评论
快来发表一下你的评论吧 !