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.