Vengineerの妄想(準備期間)

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

OVM : An OVM Register Package V 1.1(その4)

Verification Engineerの戯言

例題の変換ツールで出力されるコードでは、つぎのようなクラスが出力されます。

    class xbus_data_reg extends rgm_reg;
    class xbus_config_reg extends rgm_reg;
    class xbus_rf_type extends rgm_reg_file;
    class xbus_am extends  rgm_address_map;
    class rgm_example_rdb extends rgm_rdb;

この中でrgm_ref_file, rgm_address_map, rgm_rdbは、
1.2.4 reg_mem Architecture and Date FlowFigure 1-2 reg_mem Architecture Exampleになんとなく説明があるのだが、
rgm_regが無い。。。。。。

例題の変換後のコード(ipxact_xbus_rgm_simple_model.sv)をよーく見ると、
rgm_reg_fileの中にrgm_regがたくさんあります。
つまり、レジスタファイルのクラスであるrgm_reg_fileの中にレジスタクラスのrgm_regがあるんですよ!

例題のコードでは、
    // Line Number: 28 
    rand xbus_data_reg data_reg; 
    // Line Number: 53 
    rand xbus_config_reg config_reg;  
の2つのレジスタクラスのインスタンス(data_reg, config_reg)が宣言されています。
この2つのレジスタは、IP-XACTファイル(xbus_simple_model.spirit)内の
<spirit:register>
  <spirit:name>data_reg</spirit:name>

<spirit:register>
  <spirit:name>config_reg</spirit:name>
レジスタ部分に対応します。

IP-XACTファイルと生成されたOVMコードを比較しながら見ると、
IP-XACTファイル内の各キーワードを使って、OVMコードを生成していることになります。
また、vendorExtensionsをうまく使って、OVMコードに必要な情報を渡しています。

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