Search the Community
Showing results for tags 'sub-sequencer'.
-
Hi, all, I met one problem when i configure sub-sequencers of virtual sequencer using uvm_config_db. Here are the codes and VCS reports: -------codes------- class my_subenv extends uvm_env; ... function void build_phase(uvm_phase phase); ... v_sqr = vsequencer::type_id::create($sformatf("v_sqr%0d", subenv_ID), this); // configuration, set default_sequence as the virtual sequencer uvm_config_db#(uvm_object_wrapper)::set(this, "v_sqr.run_phase", "default_sequence", vsequence::type_id::get()); ... endfunction : build_phase function void connect_phase(uvm_phase phase); ... uvm_config_db#(uvm_sequencer)::set(this, "v_sqr", "cfg_sqr", this.cfg_agt.cfg_sqr); uvm_config_db#(uvm_sequencer)::set(this, "v_sqr", "str_sqr", this.str_agt.str_sqr); ... endfunction : connect_phase ... endclass : my_subenv -------VCS reports-------- Error-[iCTTFC] Incompatible complex type usage ../sv/00_top/my_subenv.sv, 101 Incompatible complex type usage in task or function call. The following expression is incompatible with the formal parameter of the function. The type of the actual is 'class my_pkg::my_config_sequencer', while the type of the formal is 'class uvm_pkg::uvm_sequencer#(class uvm_pkg::uvm_sequence_item,class uvm_pkg::uvm_sequence_item)'. Expression: this.cfg_agt.cfg_sqr Source info: vcs_paramclassrepository::__vcs_dummy_uvm_pkg_uvm_config_db_3133241903_.set(this, "v_sqr", "cfg_sqr", this.cfg_agt.cfg_sqr) Error-[iCTTFC] Incompatible complex type usage ../sv/00_top/my_subenv.sv, 102 Incompatible complex type usage in task or function call. The following expression is incompatible with the formal parameter of the function. The type of the actual is 'class my_pkg::my_str_sequencer', while the type of the formal is 'class uvm_pkg::uvm_sequencer#(class uvm_pkg::uvm_sequence_item,class uvm_pkg::uvm_sequence_item)'. Expression: this.str_agt.str_sqr Source info: vcs_paramclassrepository::__vcs_dummy_uvm_pkg_uvm_config_db_3133241903_.set(this, "v_sqr", "str_sqr", this.str_agt.str_sqr) By the way, my_config_sequencer and my_str_sequencer are classes derived from uvm_sequencer, so I think the complex type should be compatible. And the codes are wriiten according chapter 4.8 of the uvm_users_guide_1.1.pdf document. Should there be some phrases like uvm_config_db#(uvm_sequencer)::get() in my_subenv or other places? Thanks regards mrforever
- 2 replies
-
- sub-sequencer
- virtual sequencer
-
(and 1 more)
Tagged with: