01. function newの書き方
このツールを使うと、もう少し細かく説明が出てきます。
以下のパターンがあります。
- function new (string name, uvm_component parent);
- super.new(name,parent);
- endfunction
- → 対象:uvm_env, uvm_driver, uvm_monitor, uvm_sequencerなどの、uvm_componentベースで記述されたクラス
- function new (string name="xxx", uvm_component parent=null);
- super.new(name,parent);
- endfunction
- → 対象:uvm_test
- function new (string name="xxx");
- super.new(name);
- endfunction
- → 対象:uvm_sequence, uvm_object
理解の仕方:
- 1番のケースは、どこかのクラスで、
- aaa_inst = aaa::type_id::create("aaa_inst", this);
- と書いているものです。createのarg0がname, arg1がparentです。
- 2番のケースがuvm_testなのは、上記の type_id::createすることがないので、nameは決めておく必要があり、parentはいないからです。
- 3番のケースは、uvm_componentベースで「ない」クラスが対象となります。
UVMクラスライブラリのHTMLヘルプより抜粋。