無効な階層的なアクセス

詳細

テストベンチはVerilog、それ以外のデザインのVHDLで設計しています。VHDLの部分に信号値をforceを行いたいが、下記エラーが発生しました。

RUNTIME: Fatal Error: RUNTIME_0119 Invalid hierarchical access from Verilog instance "/" to non-Verilog object "/module_name/signal name".

解決法

VHDLはVerilogと異なり、階層参照を許可していません。そのためVerilogでの階層参照はVHDLオブジェクトを指すことはできません。
VerilogコードからVHDL信号にアクセスするには$signal_agentタスクを使用する必要があります。

$signal_agentタスク構文は次のとおりです:

$signal_agent (<source>, <destination>, <verbose>)>

Arguments:

<source> ソース信号の名前を指定する引用符で囲まれた文字列。相対パスまたは絶対パスを使用します。

<destination> 接続する信号の名前を指定する引用符で囲まれた文字列。相対パスまたは絶対パスを使用します。

<verbose> $signal_agentタスクが実行した際に、メッセージをコンソールウィンドウに出力するかどうかを指定します。1設定時はメッセージを出力、0設定時はメッセージを非表示

注意:$signal_agentタスクはsystf.dllライブラリにあります。$signal_agentタスクを使用する環境で参照するためにPLIアプリケーションのリストにライブラリをインクルードする必要があります。systf.dllライブラリは、Active-HDLのインストールフォルダの\Binサブディレクトリにあります。



Printed version of site: www.aldec.com/jp/support/resources/documentation/faq/1108