I use `rgm_write_send to run my sequence associated with reg_seqr.
No. I’m not using seq_item_port.put(rsp) in driver.
Here is how the layering is made in my code.
reg_seqr ( higher )
|
ahb_mseqr ( lower )
|
driver
Here is my short sequence code
**class reg_sequence extends reg_base_sequence;
reg_transfer reg_item = new;// upper item
`ovm_sequence_utils(reg_sequence,reg_sequencer)
function new(string name ="reg_sequence");
super.new(name);
endfunction : new
virtual task body();
repeat(`NO_PKT)begin
populate_regs_local_copies();
p_sequencer.seq_item_reg_port.get_next_item(reg_item);
:
:
reg_ctl.set_field_value("reg_enable",reg_item.reg_en);
:
:
`rgm_write_send(reg_ctl);
get_response(rsp) ;
p_sequencer.seq_item_reg_port.item_done(reg_item);
end // repeat
endtask : body
endclass : reg_sequence**
and in my reg_sequencer,
**class reg_sequencer extends ovm_rgm_sequencer;
// OVM Macros
`ovm_sequencer_utils(reg_sequencer)
// Port to Higher-Layer Sequencer (reg_sequencer)
ovm_seq_item_pull_port #(reg_transfer,
reg_transfer) seq_item_reg_port;
// Constructor
function new(input string name, input ovm_component parent);
super.new(name, parent);
`ovm_update_sequence_lib
seq_item_reg_port = new(“seq_item_reg_port”, this);
endfunction : new
endclass: reg_sequencer
**
I suspect that whenever there is any ahb side transaction takes place while
no reg_sequence is running, reg_seqr is dropping the response since it has been connected in such way in sve.
Hope you would have understand what I’m trying to do. Thanks in advance
-Muthu