« Prev | Next » 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. Previous article Next article