I get the following error when i implemented Virstual sequencer and connect it to the Agent
Field/method name (p_sequencer) not in ‘uhdsdi_agent_h’
I have the following code :
// Virtual sequencer class:
class uhdsdi_virtual_sequencer extends uvm_virtual_sequencer;
`uvm_component_utils(uhdsdi_virtual_sequencer)
// give the sub-sequencers inside the virtual sequence a name
// that respresents the interface that they are associated with,
// this makes life easier for the test writer
uhdsdi_sequencer tx_sqr;
uhdsdi_rx_slv_sequencer rx_sqr;
function new(string name = "uhdsdi_virtual_sequencer", uvm_component parent = null);
super.new(name, parent);
endfunction
endclass: uhdsdi_virtual_sequencer
and this virtual sequencer is used in env
uhdsdi_virtual_sequencer uhdsdi_v_sqr_h;
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction: new
function void build_phase(uvm_phase phase);
uhdsdi_agent_h = uhdsdi_agent ::type_id::create("uhdsdi_agent_h", this);
uhdsdi_subscriber_h = uhdsdi_subscriber::type_id::create("uhdsdi_subscriber_h", this);
uhdsdi_rx_slv_agent_h = uhdsdi_rx_slv_agent ::type_id::create("uhdsdi_rx_slv_agent_h", this);
uhdsdi_scoreboard_h = uhdsdi_scoreboard::type_id::create("uhdsdi_scoreboard_h", this);
// Creating Virtual Sequencer
uhdsdi_v_sqr_h = uhdsdi_virtual_sequencer::type_id::create("uhdsdi_v_sqr_h", this);
endfunction: build_phase
function void connect_phase(uvm_phase phase);
uhdsdi_agent_h.aport.connect( uhdsdi_subscriber_h.analysis_export );
uhdsdi_agent_h.aport.connect( uhdsdi_scoreboard_h.uhdsdi_tx_export );
uhdsdi_rx_slv_agent_h.rx_slv_aport.connect( uhdsdi_scoreboard_h.uhdsdi_rx_export );
// Connect the Virtual Sequencer to Agent
uhdsdi_v_sqr_h.tx_sqr = uhdsdi_agent_h.m_sequencer;
uhdsdi_v_sqr_h.rx_sqr = uhdsdi_rx_slv_agent_h.m_sequencer;
endfunction: connect_phase
I appreciate if somebody could tell the reason why i get this error.
Thanks