UVM SV テスト ベンチでメールボックスを使用していますが、メールボックスに書き込もうとしているときに問題に直面しています。私のコードは次のようになります。
class my_seqyuence extends uvm_sequence;
mailbox data;
some_user_defined_type mydata;
function new(string name = "my_sequence");
super.new(name);
data=new();
endfunction
task body();
forever begin
// blocking-get. program is blocked here... not why get is not returning...!
data.get(mydata);
decode_mydata_and_do_something_here;
end
endtask
function void writetrans(some_user_defined_type trans);
// I used print statements with mailbox size and i can see that valid trans is arriving here and successfully writing to mailbox.
data.try_put(trans)
endfunction
endclass
何がうまくいかなかったのかよくわかりません...データは writetrans(*) 関数までずっと到着しており、最終的にはメールボックスにスペースがあるにもかかわらず書き込みに失敗しています。