• 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. Avoid exporting .gi signals in Ocean

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 124
  • Views 13172
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Avoid exporting .gi signals in Ocean

zaratustra
zaratustra over 5 years ago

The following working code saves the voltage of all signals from a circuit in a text file:

I0.U94.net0158 0.999999
ADDR_OUT\<0\> -3.61176e-07
ADDR_OUT\<1\> -3.68596e-07
ADDR_OUT\<2\> -0.000613136

The problem is that this script saves a lot of junk like the following (with the .gi internal transistor signals):


I0.U1_RES_reg_2_.GNI 3.04658e-07
I0.U1_RES_reg_2_.MN1.gi 1.00009
I0.U1_RES_reg_2_.net019 0.999994 

In fact, from ~80k lines, more than 55k lines are with "junk" signals.

Question) Is there a way to avoid these ".gi" signals from transistor nodes? I'm missing a flag?

Ocean script:

paths_file_folder = ".../simulator_spectre/"
electrical_simulation_path = .../simulations/"
cell_name = "cell_name"
modelFile_path = '(".../corners.scs" "")
path_psf = strcat(electrical_simulation_path cell_name "/spectre/schematic")
path_netlist = strcat(electrical_simulation_path cell_name "/spectre/schematic/netlist/netlist")
time_hit = 1.8e-08
outputstart_electrical_sim = "1e-08"
stop_electrical_sim = "3e-08"
temperature = 25
vdd_core = 1.0
results_wvspt_folder = ".../waveform/"

simulator( 'spectre )
design( path_netlist )
resultsDir( path_psf )
modelFile( modelFile_path )
analysis('tran ?outputstart outputstart_electrical_sim ?stop stop_electrical_sim ?skipdc "yes")

envOption(
    'cmd64bit  t
    'analysisOrder  list("tran")
)
option( 'dochecklimit "no"
)
option( ?categ 'turboOpts
    'apsplus  t
    'uniMode  "XPS MS"
)

temp( temperature )

saveOption( ?simOutputFormat "psf" )
saveOption( 'currents "none" )
saveOption( 'save "selected")
run()

;Open results from psf
openResults(path_psf)

;Select transient results. Only voltage in this case
all_signals_v = outputs(?result "tran" ?resultsDir path_psf)

;Save operations in the specified file
symmaryFile=outfile(strcat(results_wvspt_folder "all_signals_voltages") "w")

foreach(cell_name all_signals_v
  cell_voltage=value(v(cell_name ?result "tran") time_hit)
  when(cell_voltage
    fprintf(symmaryFile "%s %g \n" cell_name cell_voltage)
  )
)
close(symmaryFile)
ocnCloseSession()
exit()

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 5 years ago

    Dear zaratustra,

    zaratustra said:

    Question) Is there a way to avoid these ".gi" signals from transistor nodes? I'm missing a flag?

    In studying your script, it appears you have selected those ".gi" nodes as you have included the line "saveOption( 'save "selected")". Hence, spectre will only save those nodes you have selected. If you are simulating an RC based extracted view, there may be additional nodes as a node can be fractured with additional trace resistances. Is that a possibility? You have included a command to list the outputs following the simulation and you should see the ".gi" nodes listed in that file. You can specify the outputs to save in a file (presumably only those you want) and include that file in your simulation netlist. You might also check your input.scs file to make sure the save statement includes the "selected" nodes. Of course, you can also just hand edit the input.scs file to remove any listed outputs to save that you do not want to save and re-run the simulation and ocean script - but without the netlist and run statements.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • zaratustra
    zaratustra over 5 years ago in reply to ShawnLogan

    Hello ShawnLogan,

    Thank you for taking the time to analyze the script. I removed the "saveOption( 'save "selected")" but the ".gi" signal are still exported. I can, of course, create a list with all internal nodes based on the circuit netlist. From spectre userguide I understood that if we don't set the "save all" these transistor signals aren't saved, but they are nonetheless. So I was hoping to find a parameter that would allow to save the signals up to a certain sublevel. Aparently I will have to create another script to capture the list of all internal nodes and pass to Ocean.

    Raphael

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • zaratustra
    zaratustra over 5 years ago in reply to ShawnLogan

    Hello ShawnLogan,

    Thank you for taking the time to analyze the script. I removed the "saveOption( 'save "selected")" but the ".gi" signal are still exported. I can, of course, create a list with all internal nodes based on the circuit netlist. From spectre userguide I understood that if we don't set the "save all" these transistor signals aren't saved, but they are nonetheless. So I was hoping to find a parameter that would allow to save the signals up to a certain sublevel. Aparently I will have to create another script to capture the list of all internal nodes and pass to Ocean.

    Raphael

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • FormerMember
    FormerMember over 5 years ago in reply to zaratustra

    Dear zaratusta,

    zaratustra said:
    I removed the "saveOption( 'save "selected")" but the ".gi" signal are still exported.

    Actually, I think I was not clear - sorry! You do want to include the 'save "selected" option as that will only save those nodes that you explicitly include in your input.scs file.

    zaratustra said:
    From spectre userguide I understood that if we don't set the "save all" these transistor signals aren't saved, but they are nonetheless.

    You are correct . Did you inspect your input.scs file to verify the save statement is correct? I might suggest you inspect it as I think it will be very clear what nodes are saved and what nodes are not saved.

    As another possibility, are you using macromodels for transistors (used to add components on top of your basic model to estimate layout paraistics)?

    Sahwn

    • Cancel
    • Vote Up 0 Vote Down
    • 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