I'm doing a transient simulation in HSPICE with an input vector file of N values (N>100).
I would like to get at each rising edge of the clock (i.e. timing of the shape kT, T period, k integer) a measure of a value of the current. My goal is then to process those values through a script.
Does anyone know how to do that please?
I can't use N times the .MEAS statements as N is really huge…
Best Answer
Hspice .MEASURE Continuous Results
This is from the 2014.09 Hspice command reference:
Examples from the documentation:
The output will be in a separate continuous measures file
Hspice .MEASURE generation
Make a perl/python/whatever script that generates a .measure for each edge. Include the .measure statements into your hspice deck. The ostensible advantage of this is that the results will reside with the rest of the measurements.
VerilogA block
One can write a VerilogA piece of code which can be triggered by edges to output the time into a file. In Cadence there should be a sample library with some sample VerilogA widgets. The VerilogA code should be included into the hspice deck with a .hdl command and should be instantiated like any other subcircuit. Possible VerilogA code (in this case connect the signal of interest to the 'in' of this sampler:
PyOPUS post-processing
If you're looking for a more general post-procesing Python environment use PyOPUS. PyOPUS will open Hspice POST_VERSION=9601 binary data into numpy data structures. A post-processing script might look like: