デザインに階層パスを表すプリプロセッサマクロがあります。プリプロセッサマクロから文字列を作成する方法
例:
`define HPATH top.chip.block
私は`HPATH
の値を保持しているので、私の例では文字列がtop.chip.block
を等しくなければならない文字列を構築する必要があります。
このような文字列を作成する方法はありますか?私はhpath
はこの割り当てhpath = "top.chip.block"
を行うことと等価になりたい
string hpath;
hpath = "`HPATH"; // Results in hpath = "`HPATH"
hpath = \"``HPATH\"; // Doesn't compile
hpath = `HPATH; // Doesn't compile
が、`HPATH
を使用しての代わりに、再びパスを指定して、次の試行の
どれも働きました。
モジュール内ではなく、トップレベルのUVM環境内で文字列が必要なので、私は%m
を使用できません。
もう少し背景:私がこれをやりたい理由は、私がUVMクラスライブラリでバックドアレジスタアクセスを使用しているからです。バックドアAPIでは、hdl_pathをデザイン内のブロックに文字列として設定する必要があります。私はすでに階層パスを定義しており、hdl_pathsを指定するときにそれらを再利用しようとしているので、同じパスが2回定義されていません。私のテストベンチは、階層パスと文字列パスの両方を使用します。
とは何あなたはそれを持っていたら、文字列をどうする予定ですか? '%m '指定子はあなたを助けるでしょうか? – toolic
@toolic - もう少し詳しく質問を更新しました。パスは、文字列(UVMバックドアアクセスの場合)と階層パス(他の機能の場合)の両方として必要です。 '%m'は助けになりません。なぜなら私はモジュールの外側のスコープにパスを必要とするからです。 – dwikle