Modelsim's® SignalSpy functionality migration to SignalAgent in Aldec's simulators

Overview

SignalSpy is the name of a tool inside Mentor Graphics's® Modelsim software. With Active-HDL and Riviera-PRO, Aldec provides equivalent tool called SignalAgent. SignalAgent allows users to monitor and drive VHDL signals from any VHDL block. Within mixed designs, SignalAgent can be used to drive Verilog objects within the design hierarchy directly from VHDL. SignalAgent can also drive VHDL signals with values read from Verilog nets or registers.

Usage

Aldec's SignalAgent usage is analogical to Modelsim's, i.e. you have to:

  • declare the appropriate package:

    library aldec;
    use aldec.signal_agent_pkg.all;
    
  • use the procedure called signal_agent instead of signal_spy in your VHDL code.

Please also refer to the SignalAgent example distributed with Active-HDL and Riviera-Pro software.

Migrating SignalSpy functions to SignalAgent

Users can modify SignalSpy functions for migration to SignalAgent. The table below shows the SignalAgent equivalent of the SignalSpy functions:

SignalSpy

SignalAgent

init_signal_spy

signal_agent

signal_force

force_signal

signal_release

noforce_signal

For a more detailed description, please refer to the Active-HDL or Riviera-PRO help window. Use force_signal or signal_agent within the Search tab to optimize results.

Using SignalAgent without modifying the original code

If you do not want to modify your original source files created for Modelsim, you can create a procedure called signal_spy on top of Aldec's signal_agent functionality:

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;

Using this approach you can compile such package to a work or other library and then use the following library clause only:

use work.signal_spy_pkg.all;

No further changes to your original files will be necessary.

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.