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 1) Is there a way to avoid these ".gi" signals from transistor nodes?
Question 2) It's taking more than 1h to export these ~80k signals after the simulation. Is this normal?
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()