Vengineerの妄想(準備期間)

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

UVM : Command Line Interface (その1)


UVM 1.0では、Command Line Interface (CLI)が導入されました。
今回は、このCommand Line Interfaceについて、見ていきます。

Command Line Interfaceは、uvm_cmdline_processorクラスのインスタンスを次のように生成します。
    uvm_cmdline_processor cmdline_processor = uvm_cmdline_processor::get_inst();
uvm_cmdline_processorクラスのget_inst関数は、次のようになっています。
    static local uvm_cmdline_processor m_inst;

    static function uvm_cmdline_processor get_inst();
        if(m_inst == null) 
            m_inst = new("uvm_cmdline_proc");
        return m_inst;
    endfunction
staticが付いていますので、クラス関数です。クラス変数(m_inst)がnull(初期化されていない)ときは、
newでインスタンスを生成し、n_instに代入します。そして、m_instを戻り値にします。

実は、uvm_cmdline_processorクラス内部でget_inst関数を呼んでいる部分(440行)があります。
    const uvm_cmdline_processor uvm_cmdline_proc = uvm_cmdline_processor::get_inst();
でも、このuvm_cmdline_procは、uvm_cmdline_processorクラス内では使っていません。

次回に続く。

検証、Verification、SystemVerilog、UVM、Unified Verification Methodology