Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

OVM/VMM : factory(ファクトリ)

Verification Engineerの戯言 : SystemVerilogの世界へようこそ

OVMとVMMのファクトリは、
    OVM => type_name::type_id::create(string name, ovm_component parent)
    VMM => type_name::create_instance(vmm_object parent, string name)
です。

2つを覚えるのは面倒なので、次のようなマクロを定義するというのはどうでしょう!
`ifdef VMM
`define my_instance(classname, name, parent) classname::create_instance(parent,name)
`endif

`ifdef OVM
`define my_instance(classname, name, parent) classname::type_id::create(name,parent)
`endif

    my_class instance

    instance = `my_instance(my_class, "my", parent);


検証、Verification、SystemVerilog、OVM、Open Verification Methodology、VMM、Verification Methodology Manual