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[$]);
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_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