1.产生ip_transaction 的sequence 如下:
2.相应的sequencer 如下:
3.这个sequencer 要在my_agent 例化,此时,my_agent 中有两个sequencer:
4.要使用layer sequence,最关键是如何将ip_transaction 交给产生my_transaction 的sequence。在my_sequencer 中加入一个端口,并例化:
5.在my_agent 中连接:
6.在产生my_transaction 的sequence 中:
1)因为要使用sequencer 中的变量ip_tr_port,所以要使用declare_p_sequencer 宏声明sequencer。
2)无线循环,因为要时刻从ip_tr_port 得到新的ip_transaction。类似driver 的无限循环。所以不能在其中objection。
3)objection 要在ip_sequence 中控制。
7.启动这两个sequence:
8.可以使用default_sequence,前提是vsqr 中已经有成员变量指向相应的sequencer:
1)建立crc 错误时,只需要建立crc_sequence,并在my_sequencer 上启动。
2)构建checksum时,只需建立cks_err_seq,并在ip_sequencer 上启动。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-10 20:23:51