I'm facing kind of an issue here. I'm using Spectre-APS and noticed APS changes the instance name of iterated instances.
For example, let's say you have 4 instances in parallel, it's then called I1<3:0>. If I want to measure some OP param inside it, my OCEAN syntax would be:
pv("I1\\<2\\>.M1 "vth" ?result "dcOpInfo")
Problem is using APS, I1<2> gets renamed in I1<2>_turbo_m4 (note: m_N depend on the number of iterated instances...)hence, the OCEAN syntax to do the measurement has to change to:
pv("I1\\<2\\>_turbo_m4.M1 "vth" ?result "dcOpInfo")
Then, I can't swap APS option without changing my post-processing.
Is there some option to disable this ?
I tried with ++aps enabled or disabled, it doesn't change anything.
APS optimizes parallel devices to simulate them with m-factor because it is more efficient (and equally accurate). However, getting back operating point data is then not so simple - because you have to deal with the collapsed device (and split the result somehow).
Anyway, this can be done with the Preserve Instance option on the Setup->High Performance Simulation form in ADE - set it to the specific instance in question, or set it to "All".
In OCEAN this would be:
option(?categ 'turboOpts 'preserveOption "All")
Or if it is just selected instances, it would be:
option( ?categ 'turboOpts 'preserveInst list("/I7/M3" "/I7/M1") 'preserveOption "Selected")
This corresponds to the preserve_inst=all or preserve_inst=[I7.M3 I7.M1] option in the spectre netlist (see "spectre -h options" for more details).
Note that this will adversely affect the simulation performance (probably not much though, unless you have massive parallelization of devices).
In reply to Andrew Beckett:
Thank you very much