Aldecには、Signal Agentという類似の機能があります。この機能は、VHDL、Verilogの、または混在言語デザインに用いることができます。
Signal Agentは、プレインストールされたアルデックライブラリのsignal_agent_pkgパッケージ内でsignal_agentプロシジャーとして実装されています。
signal_agentプロシジャーを使用するには、アルデックライブラリを使用しuse宣言を行ってください。
library aldec; use aldec.signal_agent_pkg.all;
Signal Agentが接続する信号とソース信号を接続します。signal_agentプロシジャーは一度だけ呼び出す必要があります。
参考:aldecライブラリ節はsignal_agentプロシジャーを用いる、ブロックかデザイン単位に設定する必要があります。
VHDLでSignal Agentを使用すると、任意のVHDLブロックからVHDLの信号をモニタし、ドライブすることができます。
signal_agent(<source>,<destination>,<verbose>)
<source> ソース信号の名前を指定する引用符で囲まれた文字列。相対パスまたは絶対パスを使用します。階層の区切り文字は、スラッシュ(/)やドット(.)があります。
<destination> 接続する信号の名前を指定する引用符で囲まれた文字列。相対パスまたは絶対パスを使用します。 階層の区切り文字は、スラッシュ(/)やドット(.)があります。
<verbose> $signal_agentタスクが実行した際に、メッセージをコンソールウィンドウに出力するかどうかを指定します。1設定時はメッセージを出力、0設定時はメッセージを非表示
例:
signal_agent("/uut/u1/signal_name", "signal_name",1);
$signal_agentタスクはVerilogコードからVerilogまたはVHDLオブジェクトを更新するために使用することができます。これは、Verilog-VHDL混合デザインでVHDLのオブジェクトを参照する場合に便利です。
$signal_agent(<source>,<destination>,<verbose>)
<destination> 接続する信号の名前を指定する引用符で囲まれた文字列。相対パスまたは絶対パスを使用します。
<verbose> $signal_agentタスクが実行した際に、メッセージをコンソールウィンドウに出力するかどうかを指定します。1設定時はメッセージを出力、0設定時はメッセージを非表示
例:
$signal_agent("uut.u1.signal_name", "local_signal_name", 1);
参考:VHDLおよびVerilogの信号エージェント宣言の構文の違いに注意してください。 VHDLは階層のため"/"を使用しており、Verilogでは使用"."
Riviera-PRO
VHDL: User's Guide | VHDL Simulation | Utility Routines | Signal Agent.
Verilog: User's Guide | Verilog Simulation | Tasks and Functions | Signal Agent.
Active-HDL
VHDL: Active-HDL Help | Using Active-HDL | Compilation | VHDL Compilation | Utility Routines | Signal Agent.
Verilog: Active-HDL Help | Using Active-HDL | Compilation | Verilog Compilation | Signal Agent.