« Prev | Next » 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-HDLやRiviera-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; 元のファイルに必要な修正はこれだけです。 Previous article Next article