デザインへの階層パスを表すプリプロセッサ マクロがあります。
例:
`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 回定義されることはありません。私のテストベンチは、階層パスと文字列パスの両方を使用します。