16 ビット幅のレジスタを持つレジスタ マップがあります。幅が 16 ビットを超えるフィールドがあるため、2 つのアドレスにまたがる必要があります。このフィールドへのバックドア アクセスを定義するにはどうすればよいですか?
これは私が自分の分野で試したことですtest_pattern[23:0]
:
register_a.add_hdl_path_slice("path.to.regmap.test_pattern[15:0]", 0, 16);
register_b.add_hdl_path_slice("path.to.regmap.test_pattern[23:16]", 0, 8);
これは次のエラーで失敗します:
エラー: VPI TYPERR vpi_handle_by_name() はパーツ選択へのハンドルを取得できません。
これが私のツールの制約なのか、それとも UVM コードが VPI を使用する方法の制約なのかは明らかではありません。UVM コード内を調べてみると、部分選択を処理する必要があるコードが表示されますが、それは#ifdef QUESTA
ディレクティブ内にあるため、これはツールの制約であると思います。
これに対する良い回避策はありますか?