Quantcast
Channel: Cadence Custom IC Design Forum
Viewing all articles
Browse latest Browse all 4906

Ocean: exporting internal circuit signals taking more than 1h

$
0
0

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()


Viewing all articles
Browse latest Browse all 4906

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>