デザインへの階層パスを表すプリプロセッサ マクロがあります。
例:
`define HPATH top.chip.block
の値を保持する文字列を作成する必要がある`HPATHため、この例では文字列は と等しくなるはずtop.chip.blockです。
そのような文字列を作成する方法はありますか?
次の試みはどれもうまくいきませんでした:
string hpath;
hpath = "`HPATH";     // Results in hpath = "`HPATH"
hpath = \"``HPATH\";  // Doesn't compile
hpath = `HPATH;       // Doesn't compile
hpathこの割り当てを行うのと同等にしたいのですが、パスを再度指定する代わりにhpath = "top.chip.block"使用します。`HPATH
%mモジュール内ではなく、トップレベルの UVM 環境内で文字列が必要なため、使用できません。
もう少し背景: これを行う理由は、UVM クラス ライブラリでバックドア レジスタ アクセスを使用しているためです。バックドア API では、hdl_path をデザイン内のブロックに文字列として設定する必要があります。私はすでに階層パスの定義を持っており、hdl_paths を指定するときにそれらを再利用しようとしているので、同じパスが 2 回定義されることはありません。私のテストベンチは、階層パスと文字列パスの両方を使用します。