Verification Engineerの戯言
vmm_optsクラスは、std_lib/vmm.svとstd_lib/vmm_opts.svで定義されています。
このvmm_optsクラスは、シミュレータの+オプションの値を獲得するクラスです。
vmm.svのvmm_optsクラスの定義は、次のようになっています。
このvmm_optsクラスは、シミュレータの+オプションの値を獲得するクラスです。
vmm.svのvmm_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[$]); endclassstatic宣言されているので変数は、クラス変数に、メソッドはクラスメソッドになります。
ユーザガイドでは、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_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; endget_help関数で表示されるオプションは、get_bit関数、get_string関数、get_int関数で
指定したものになります。
検証、Verification、SystemVerilog、VMM、Verification Methodology Manual