ModelSim®のSignalSpy機能をアルデックのシミュレータのSignalAgentに移行する

概要

SignalSpyはMentor Graphics®のModelSimに組込みのツールです。アルデックのActive-HDLとRiviera-PROには、同等の機能を持つSignalAgentというツールがあります。SignalAgentはVHDLブロックからのVHDL信号を観測し、さらに任意のブロックの信号を駆動させることができます。混合言語のデザインでは、SignalAgentでデザイン階層内部のVerilogオブジェクトをVHDLから直接駆動することができます。また、SignalAgentではVerilogネットやレジスタから読んだ値でVHDL信号を駆動することもできます。

使用法

アルデックのSignalAgentの使用法はModelSimのSignalSpyと似ていますが、以下が必要となります。

  • 所定のパッケージを宣言します。

    library aldec;
    use aldec.signal_agent_pkg.all;
    
  • VHDLコードでは、プロシージャsignal_spyの代わりにsignal_agentを指定します。

Active-HDLとRiviera-PROに付属するSignalAgentの例もご参照ください。

SignalSpyの関数をSignalAgentに移行する

SignalSpyの関数を編集してSignalAgentに移行することができます。SignalAgentの関数とSignalSpyの関数の対応を次の表に示します。

SignalSpy

SignalAgent

init_signal_spy

signal_agent

signal_force

force_signal

signal_release

noforce_signal

さらに詳しい説明については、Active-HDLRiviera-PROのヘルプウィンドウをご参照ください。検索タブでforce_signalまたはsignal_agentを指定すれば該当部分のヘルプが表示されます。

もとのソースコードを変更せずにSignalAgentを使用する

ModelSim用に作成したソースコードを変更したくない場合は、アルデックのsignal_agentの上位にプロシージャsignal_spyを作成します。

package signal_spy_pkg is
 procedure signal_spy ( source_signal: string; destination_signal: string; verbose: integer );
  attribute foreign of signal_spy: procedure is "VHPI systf; call_vhpi_signal_agent";
 end package signal_spy_pkg;

 package body signal_spy_pkg is  
  procedure signal_spy ( source_signal: string; destination_signal: string; verbose: integer ) is
 begin
 end procedure signal_spy;
 end package body signal_spy_pkg;

この方法では、パッケージを作業ライブラリなどにコンパイルしてから、次のようなライブラリ・コードを書きます。

use work.signal_spy_pkg.all;

元のファイルに必要な修正はこれだけです。

Ask Us a Question
x
Ask Us a Question
x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.