• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Signals not saved properly using "Save by Subckt"

Stats

  • Replies 4
  • Subscribers 125
  • Views 224
  • Members are here 0

Signals not saved properly using "Save by Subckt"

dtodorov
dtodorov 1 day ago

Hi, 

I am using  cadence IC23.1-64b.ISR12.37 , Spectre (R) Circuit Simulator - Version 23.1.0.722.isr15 64bit -- 14 Jan 2025

Using ADE Assembler (maestro view), I run a spectre (+aps) simulation, where I want to limit the number of saved signals to only a particular subcircuit in the hierarchy.  Therefore, from the "Save all..." menu I do the following selections (typing it in because cannot update screeenshot...). On "Basic" tab:
Select signals to output (save) : selected
Select power signals to output (pwr) : none 
Select device currents (currents) : selected
Select AC terminal currents (useprobes): no
Subcircuit Probe Level (subcktprobelvl) : empty
Select AHDL variables (saveahdlvars): selected 

On "Save by Subckt" tab:
/dut Vdepth = 1 

 I get proper netlist creation, at the end of input.scs I read :

simulatorOptions options psfversion="1.4.0" reltol=1e-3 vabstol=1e-6 \
iabstol=1e-12 temp=27 tnom=27 scalem=1.0 scale=1.0 compatible=spice2 \
gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 digits=5 cols=80 pivrel=1e-3 \
sensfile="../psf/sens.output" checklimitdest=psf
tran tran stop=200u write="spectre.ic" writefinal="spectre.fc" \
annotate=status maxiters=5
finalTimeOP info what=oppoint where=rawfile
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts where=rawfile
save dut.* sigtype=all depth=1
saveOptions options save=selected pwr=none currents=selected useprobes=no \
saveahdlvars=selected

But when I run the simulation I see in the log that the wildcard expression is not reported at all and all design nets are indeed saved. 

Notice from spectre during transient analysis `tran'.
No outputs were found. Loosening output filter criterion to `allpub'.


Opening the PSFXL file ../psf/tran.tran.tran ...
Important parameter values:
start = 0 s
outputstart = 0 s
stop = 200 us
step = 200 ns
maxstep = 4 us
ic = all
useprevic = no
skipdc = no
reltol = 1e-03
abstol(V) = 1 uV
abstol(I) = 1 pA
abstol(Temp) = 100 uC
abstol(Pwr) = 1 nW
temp = 27 C
tnom = 27 C
tempeffects = all
errpreset = moderate
method = traponly
lteratio = 3.5
relref = sigglobal
cmin = 0 F
gmin = 1 pS


Wildcard match summary:
save dut.* : 0

Output and IC/nodeset summary:
save 30 (current)
save 14568 (voltage)

So my question is what am I doing wrong and how can I save all voltages on a specific hierarchical level? 

  • Sign in to reply
  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett 1 day ago

    First thing to check is what the instance line of the "dut" is in the netlist. Is the instance name actually "dut" or does it have other characters before it (e.g. Xdut or Idut)?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • dtodorov
    dtodorov 1 day ago in reply to Andrew Beckett

    Hi Andrew,

    thanks for the swift response. The instance in the `input.scs` is indeed named "dut" (not Xdut, Idut, etc)  

    dut (B FG GND OUT1 OUT2 VDD net06) ab12345cd


    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • dtodorov
    dtodorov 1 day ago in reply to Andrew Beckett

    Hi Andrew,

    thanks for the swift response. The instance in the `input.scs` is indeed named "dut" (not Xdut, Idut, etc)  

    dut (B FG GND OUT1 OUT2 VDD net06) ab12345cd


    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett 1 day ago in reply to dtodorov

    I just realised what's wrong - I should have spotted this. You need to specify the depth as 2 not 1, because it's a wildcarded name and it's relative to the top of the design, not within dut. You might also want to change the sigtype on the right side of the Save By Subckt tab to node rather than all, so that it saves voltages and not terminal currents for instances within dut.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • dtodorov
    dtodorov 1 day ago in reply to Andrew Beckett

    Hi Andrew, 

    that worked! Moving "depth" to 2 seems to have solved it. 
    I was misinterpreting the `depth` parameter in the save statement. In documentation it says: 

    depth

    Depth of expression matching, i.e. if X:param is a wildcard expression, depth(X:param)=depth(X)=(number of . in X)+1.

    I was expecting a depth to specify the number of levels to save _after_ a match has occurred, which is clearly not the case. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information