Systems & Design
SPONSOR BLOG

Use Tcl To Save Signals More Efficiently In AMS Simulations

It’s not always practical to save all signals during simulation.

popularity

Saving signal waveforms during a simulation is one of the basic ways to check the simulation results. However, with large SoC designs, it’s not always practical to save all signals during simulation, and the simulation performance might also be impacted by the number of signals being saved. Therefore, a crucial part of the simulation setup is to specify the expected and essential signals to save.

Here are some examples of using TCL commands in Cadence Spectre AMS Designer to save signals more efficiently:

Saving a single signal

Save the voltage of net3 in the hierarchy i1.i2.
probe -create top.i1.i2.net3

Save the current through port portA in the hierarchy i1.i2.
probe -create -flow top.i1.i2.portA

Saving multiple signals in an instance

Save the voltages of all ports and nets in instance i2 in hierarchy i1.
probe -create -noaicms top.i1.i2

Save the currents of all ports of instance i2 in the hierarchy i1.
probe -create -noaicms -flow -ports top.i1.i2

Saving selected signals in an instance

Using the -depth option, save the voltages of all ports and nets in instance i1, one level down the hierarchy.
probe -create -noaicms -depth 2 top.i1

Using the -ports option, save all currents through the ports of instance i1, one level down the hierarchy.
probe -create -noaicms -depth 2 -flow -ports top.i1

Saving selected signals in a module with multiple instances (applicable for analog scope in Verilog-AMS format)

Using with find command, save the voltages of all ports with the suffix out in the scope i1, one level down the hierarchy.
probe -create -noaicms [find -rec 1 -scope top.i1 -ports *out]

For more advanced usage, save the voltages of all ports with the suffix out that exist in instances whose names begin with i, in the current scope, one level down the hierarchy.
set inst_scope [find -instances -rec 1 -absolute -newline i*]
foreach {inst} $inst_scope { catch {probe -create -noaicms [find -scope $inst -ports *out]}}

As shown in the later examples, by combining probe and find commands, you will be able to precisely select the signals you need to save so that there is no redundant data in your waveform database and minimal impact on simulation performance.

Related resources



Leave a Reply


(Note: This name will be displayed publicly)