Verification Engineerの戯言 : SystemVerilogの世界へようこそ
processは、OVM 2.1の中でも使われています。使われている場所は、
ovm-2.1/src/methodology/sequences/ovm_sequence_base.svhの49行目です。
48: `ifndef INCA 49: protected process m_sequence_process; 50: `else 51: protected bit m_sequence_started = 0; 52: protected event m_kill_event; 53: `endif
INCAマクロが定義されていない場合のみ使われます。
ハンドルが生成される場所は、ovm_sequence.svhの165行目です。
fork/join内で使われています。
fork/join内で使われています。
161: `ifndef INCA 162: 163: fork 164: begin 165: m_sequence_process = process::self(); 166: body(); 167: m_sequence_state_ended = 1; 168: m_sequence_state = ENDED; 169: #0; // Allow external waiter to be activated 170: end 171: join 172: 173: `else
ハンドル(m_sequence_process)は、ovm_sequence_base.svhの次の場所で使われています。
657: `ifndef INCA 658: if (m_sequence_process != null) begin 659: m_sequence_process.kill; 660: m_sequence_process = null; 661: end 662: `else
kill関数が呼ばれています(kill関数は引数が無いので、()は無くてもOKです)
検証、Verification、SystemVerilog