1、sequence item中get*函数的使用
2. set*系列函数
成员变量声明
local int m_sequence_id = -1;
protected bit m_use_sequence_info;
protected int m_depth = -1;
protected uvm_sequencer_base m_sequencer;
protected uvm_sequence_base m_parent_sequence;
static bit issued1,issued2;
bit print_sequence_info;
set_sequence_id
该函数对m_sequence_id
进行设置, get_sequence_id对m_sequence_id
进行读取
function void set_sequence_id(int id);
m_sequence_id = id;
endfunction
set_use_sequence_info
function void set_use_sequence_info(bit value);
m_use_sequence_info = value;
endfunction
set_sequencer
该函数对m_sequencer
进行设置, get_sequencer对m_sequencer
进行读取
virtual function void m_set_p_sequencer();
return;
endfunction
virtual function void set_sequencer(uvm_sequencer_base sequencer);
m_sequencer = sequencer;
m_set_p_sequencer();
endfunction
set_parent_sequence
该函数对m_parent_sequence
进行设置, get_parent_sequence对m_parent_sequence
进行读取
function void set_parent_sequence(uvm_sequence_base parent);
m_parent_sequence = parent;
endfunction
set_depth
深度从item开始算,所以,上面get_depth函数返回的是2,即my_sequence.my_trans
function void set_depth(int value);
m_depth = value;
endfunction
set_item_context
该函数的作用就是为调用此函数的sequence_item设置其所在sequence以及挂载的sequencer。
function void set_item_context(uvm_sequence_base parent_seq,
uvm_sequencer_base sequencer = null);
set_use_sequence_info(1);
if (parent_seq != null) set_parent_sequence(parent_seq);
if (sequencer == null && m_parent_sequence != null) sequencer = m_parent_sequence.get_sequencer();
// protected uvm_sequence_base m_parent_sequence;
set_sequencer(sequencer);
if (m_parent_sequence != null) set_depth(m_parent_sequence.get_depth() + 1);
reseed();
endfunction