Vengineerの妄想(準備期間)

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

VMM 1.1:vmm_optsクラス

Verification Engineerの戯言

vmm_optsクラスは、std_lib/vmm.svとstd_lib/vmm_opts.svで定義されています。
このvmm_optsクラスは、シミュレータの+オプションの値を獲得するクラスです。
vmm.svvmm_optsクラスの定義は、次のようになっています。
    class vmm_opts;
        static local vmm_opts_info opts_info[string];
        static local bit           opts_extracted;
        static /*local*/ int       _XwidthX = 1;
        static       vmm_log       log;
 
        extern static function bit    get_bit(string name, string doc = "");
        extern static function string get_string(string name,
                                                 string dflt = "",
                                                 string doc  = "");
        extern static function int    get_int(string  name,
                                              int     dflt = 0,
                                              string  doc  = "");
        extern static function void get_help();

        extern static local function bit extract_opts_info();
        extern static local function void add_specified_option(string frmt,
                                                               string fname = "Command Line");
        extern static local function void parse_opts_file(string filename);
        extern static local function vmm_opts_info get_opts_by_name(string name);
        extern static local function bit split(string line,
                                               output string argv[$]);
    endclass
static宣言されているので変数は、クラス変数に、メソッドはクラスメソッドになります。

ユーザガイドでは、vmm_optsクラスでは次の4つの関数について説明しています。
        function bit    get_bit(   string name,                   string doc = "");
        function string get_string(string name, string dflt = "", string doc = "");
        function int    get_int(   string name, int    dflt = 0,  string doc = "");
        function void   get_help();

get_bit関数は、nameで指定したものが+オvmm_オプション名となっていれば、1を返し、なければ、0を返します。
get_string関数は、nameで指定したものが+vmm_オプション名=値の値を返します。オプション名が無い場合は、指定したデフォルト値(dflt)の値が返されます。
get_int関数は、get_string関数と基本的には同じですが、戻り値およびデフォルト値がint型です。
3つの関数には、文字列型のdocという引数があります。このdocは、get_help関数によって使われます。

get_help関数は、すべての実行時オプションを表示します。ユーザガイドでは、次のような例題が載っています。
    if ($test$plusargs("tb_help")) begin
        vmm_opts::get_help();
        $finish;
    end
get_help関数で表示されるオプションは、get_bit関数get_string関数get_int関数
指定したものになります。

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