event_pool
動かすと、こんなログが出ます。
# ----------------------------------------------------------------
# UVM-1.1d
# (C) 2007-2013 Mentor Graphics Corporation
# (C) 2007-2013 Cadence Design Systems, Inc.
# (C) 2006-2013 Synopsys, Inc.
# (C) 2011-2013 Cypress Semiconductor Corp.
# ----------------------------------------------------------------
#
# *********** IMPORTANT RELEASE NOTES ************
#
# You are using a version of the UVM library that has been compiled
# with `UVM_NO_DEPRECATED undefined.
# See http://www.eda.org/svdb/view.php?id=3313 for more details.
#
# You are using a version of the UVM library that has been compiled
# with `UVM_OBJECT_MUST_HAVE_CONSTRUCTOR undefined.
# See http://www.eda.org/svdb/view.php?id=3770 for more details.
#
# (Specify +UVM_NO_RELNOTES to turn off this notice)
#
# -------------------------------------------------
# Name Type Size Value
# -------------------------------------------------
# ep uvm_obj_str_pool - -
# pool aa_object_string 2 -
# [fred] uvm_event - -
# num_waiters int 32 'd0
# on bit 1 'b0
# trigger_time time 64 0
# trigger_data object - -
# [george] uvm_event - -
# num_waiters int 32 'd0
# on bit 1 'b0
# trigger_time time 64 0
# trigger_data object - -
# -------------------------------------------------
#
# --- UVM Report Summary ---
#
# ** Report counts by severity
# UVM_INFO : 0
# UVM_WARNING : 0
# UVM_ERROR : 0
# UVM_FATAL : 0
# ** Report counts by id
# ** UVM TEST PASSED **
# quit
これはuvm-1.1dでの動作結果ですが、uvm-1.2とのコード差分を見ると
< initial begin
---
> initial begin static uvm_coreservice_t cs_ = uvm_coreservice_t::get();
>
49c50
< svr = _global_reporter.get_report_server();
---
> svr = cs_.get_report_server();
となっており、uvm-1.2で uvm_coreservice_t というのが追加された、と見ることができます。
また、ソースコードを見ていくと、上記のオブジェクトの中身を表示したものは
ep.print()
が該当しており、
svr.summarize()
はよくわかりません。
このサンプルから読み取れることは
- uvm_eventを使うときは、uvm_event_poolを生成して使用するのがよさそう
- uvm_report_xxxの発行カウントを読み取る仕組みが例示されており、これを使えば、UVMのみの環境であればSIMの実行結果を外部バッチに頼ることなく判定できますよ、と読める
くらいでしょうか。