本文共 683 字,大约阅读时间需要 2 分钟。
1.使用全局变量不好,event。
2.实现同步的最好方式就是用virtual sequence。虚拟的意思是他根本就不发送transaction,只是控制其它的sequence,起统一调度的作用。
3.为了使用virtual sequence,一般需要一个virtual sequencer。里面包含指向其它真实sequencer 的指针:
4.base_test:例化sequencer,并给两个指针赋值
5.virtual sequence 示意图:
6.my_case0:
1)virtual sequence 是uvm_do_on宏用的最多的地方。
2)虽然seq0 是在case0_vseq 中启动,但是他最终会被交给p_sequencer.p_sqr0。
3)它们不产生transaction,只是控制其他的sequence 为相应的sequencer 产生transaction。起调度的作用。
4)由于根本不直接产生transaction,所以定义virtual sequence 和 virtual sequencer 时无需指明要发送的transaction 类型。
7.如果不使用uvm_do_on,可以手工启动sequence。优势是可以向其中传递一些值:
1)手工启动可以指定string 类型的值。因为string 前不能rand,这是手工的优势。
8.virtual sequence 作为一种特殊sequence,可以在其中启动其他的sequence:
1)cfg_vseq 是另外一个已经定义好的virtual sequence。