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 FlowのFigure 1-2 reg_mem Architecture Exampleになんとなく説明があるのだが、
rgm_regが無い。。。。。。
1.2.4 reg_mem Architecture and Date FlowのFigure 1-2 reg_mem Architecture Exampleになんとなく説明があるのだが、
rgm_regが無い。。。。。。
例題の変換後のコード(ipxact_xbus_rgm_simple_model.sv)をよーく見ると、
rgm_reg_fileの中にrgm_regがたくさんあります。
つまり、レジスタファイルのクラスであるrgm_reg_fileの中にレジスタクラスのrgm_regがあるんですよ!
rgm_reg_fileの中にrgm_regがたくさんあります。
つまり、レジスタファイルのクラスであるrgm_reg_fileの中にレジスタクラスのrgm_regがあるんですよ!
例題のコードでは、
この2つのレジスタは、IP-XACTファイル(xbus_simple_model.spirit)内の
// 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コードに必要な情報を渡しています。
IP-XACTファイル内の各キーワードを使って、OVMコードを生成していることになります。
また、vendorExtensionsをうまく使って、OVMコードに必要な情報を渡しています。
検証、Verification、SystemVerilog、OVM、Open Verification Methodology