Closed dan-zilla closed 1 year ago
psf-utils is not recognizing the following line:
"I_14.XI_DUMMIES_19__XR0.r1:subckt_trise__" "-real" PROP(
S 312 471 0 3.2e-07 0 0
"units" "-real"
)
I have no idea what the meaning of S
followed by 6 numbers. Do you?
I am not sure either. For additional context: this is the result of a simulation of a parasitic extracted layout. XI_DUMMIES_19 is a metal resistor in the schematic. Maybe the layout coordinates and/or geometry shape parameters that define the metal resistor? I am attaching the netlist here for reference. input.scs.txt
Another piece of info that may be relevant: this spectre simulation contains a verilogA component. It's called instance I_13 in the netlist. Not sure if that makes a difference in the format of the resulting PSF file.
Any chance you can share the definition of rmxw?
Pasting the excerpt here from the model deck. I've removed process-specific values:
//*********************************** Metal x with W/S=0.XX/0.XXX ***********************************
subckt rmxw ( n1 n2 )
parameters l=length w=width factor=factor_res mf=1
parameters rsh=r_rmxw
parameters dw=0
parameters pvc1=0 pvc2=0 ptc1=X.XXe-03 ptc2=-X.XXe-07
parameters tfac=1.0+ptc1*(pt-25.0)+ptc2*(pt-25.0)*(pt-25.0)
parameters pt=temp
parameters j_max=XXXX
parameters r1_ov=rsh/mf*l*factor/(w*factor-dw)*(1+pvc1*(0/l/factor)+pvc2*(0/l/factor)*(0/l/factor))*tfac
r1 ( n1 n2 ) resistor r=rsh/mf*l*factor/(w*factor-dw)*(1+pvc1*(abs(v(n2,n1))/l/factor)+pvc2*(v(n2,n1)/l/factor)*(v(n2,n1)/l/factor))*tfac
c_soa ( n1 n2 ) capacitor c=1e-60 m=mf bv_max=j_max*w*factor*r1_ov*mf
ends rmxw
Seems like the built-in resistor is creating that line, and I have no idea what that line means. Not sure what do do about this. Since I don't know what the line means I cannot come up with a theory of to how to parse it.
I am not sure about that. Does the PROP() attribute mean anything in PSF format? All of the declarations in the PSF file contain that tuple of values. Even traces that are not for resistors. One clue is that the 4th value after the S is the stop time of the transient simulation (320 ns). The 5th and 6th values seem to match the units specified (Ohms, V, A, etc.). Is there a PSF format specification for these kind of things?
Well, not the resistor per see. What I should have said is that the values seem unrelated to the fact that the netlist was extracted or that there was a Verilog-A model.
You make a good point about PROP. I'm sure it means something to someone, but it currently means nothing to psf_utils, it is simply discarded. Extending the psf_utils parser to handle the unknown and seemingly rather arbitrary syntax for the contents of PROP() would be difficult and fragile. Perhaps the right approach is to simply preprocess the file and remove the PROPs all together. Let me try it.
Well I worked past the issue with PROP only to find that the file is defective. It is a file with names but no values. How did you create it?
Strange. I used the psf utility to convert it from psfbin to psfascii. Let me try that again and see if there is a difference
PSF file is attached. 20220829-psf_debug.zip
Below is the error I am getting
The traceback is below: