ovm virtual sequences求助
时间:10-02
整理:3721RD
点击:
class simple_virt_seq extends ovm_sequence;
... // Constructor and OVM automation macros
// See “Creating and Adding a New Sequence” on page 82.
// A sequence from the cpu sequencer library
cpu_config_seq conf_seq;
// A sequence from the ethernet subsequencer library
eth_large_payload_seq frame_seq;
// A virtual sequence from this sequencer's library
random_traffic_virt_seq rand_virt_seq;
virtual task body();
// Invoke a sequence in the cpu subsequencer.
`ovm_do_on(conf_seq, p_sequencer.cpu_seqr)
// Invoke a sequence in the ethernet subsequencer.
`ovm_do_on(frame_seq, p_sequencer.eth_seqr)
// Invoke another virtual sequence in this sequencer.
`ovm_do(rand_virt_seq)
endtask : body
endclass : simple_virt_seq
上面的这段代码摘自OVM user guider,定义了一个ovm virtual sequence,但是可以在其中访问p_sequencer吗?类内部并没有例化这个组件啊?
user guider多次出现这种代码?表示不理解求高手指教。
... // Constructor and OVM automation macros
// See “Creating and Adding a New Sequence” on page 82.
// A sequence from the cpu sequencer library
cpu_config_seq conf_seq;
// A sequence from the ethernet subsequencer library
eth_large_payload_seq frame_seq;
// A virtual sequence from this sequencer's library
random_traffic_virt_seq rand_virt_seq;
virtual task body();
// Invoke a sequence in the cpu subsequencer.
`ovm_do_on(conf_seq, p_sequencer.cpu_seqr)
// Invoke a sequence in the ethernet subsequencer.
`ovm_do_on(frame_seq, p_sequencer.eth_seqr)
// Invoke another virtual sequence in this sequencer.
`ovm_do(rand_virt_seq)
endtask : body
endclass : simple_virt_seq
上面的这段代码摘自OVM user guider,定义了一个ovm virtual sequence,但是可以在其中访问p_sequencer吗?类内部并没有例化这个组件啊?
user guider多次出现这种代码?表示不理解求高手指教。
通过宏实现的,
`ovm_sequence_utils -> `ovm_declare_p_sequencer
谢谢,加你好友了,希望以后多指教。