<@U016EM8L91B> how much work would it be to include the device position and orientation in the extra...
m
@Tim Edwards how much work would it be to include the device position and orientation in the extracted spice netlist as a comment? It looks like the information is in the
ext
file, but user units would be preferable over database units. For example
Copy code
.subckt ML_F3_sky130_fd_sc_hd__decap_6 VGND VPWR VNB VPB
X0 VPWR VGND VPWR VPB sky130_fd_pr__pfet_01v8_hvt ad=0.226 pd=2.26 as=0 ps=0 w=0.87 l=1.97 $X=4.45 $Y=4.30 $T="R90"
X1 VGND VPWR VGND VNB sky130_fd_pr__nfet_01v8 ad=0.143 pd=1.62 as=0 ps=0 w=0.55 l=1.97 $X=0.3 $Y=0.1 $T="R0"
.ends
This would allow easier location when debugging LVS results and might also be useful in IR drop calculations. It might even be useful to check for high resistance nets on
li
from parasitic extraction.
t
Actually, it's trivially easy. You just need an extraction style where you add parameters, e.g.,
x=$X y=$Y
to the device extraction line.
Doing the same thing with orientation isn't possible because I don't have orientation as one of the things that magic can output, but it wouldn't be too hard to add to the code, either.
👍 1
m
For IR drop calculations, maybe
x
and
y
are sufficient (orientation might not be needed because the design is flattened). Are the parasitic resistances tagged with the layer? Are well/substrate resistances extracted?
t
@Mitch Bailey: Wells will be extracted properly. Substrates less so; and there is probably unresolved behavior with respect to isolated substrate regions that needs to be dealt with (namely, that isolated substrate regions need to be removed when doing parasitic substrate extraction, since the isolated regions are just a hack idealization of the substrate resistance). Other than that, I would think that the best way to do IR drop analysis would be to take the R-C extracted netlist (or, as Boris said, R-only, which is easy to do with magic by setting
cthresh
to
infinite
), find an operating point, and then read off all of the power supply net subnet nodes and terminals. Parasitic resistances are not tagged with a layer. There may be any number of layers between any two points in a resistive network.
m
@Tim Edwards Thanks for the response. I read about magic’s parasitic extraction; I don’t see how to use the results of that algorithm for IR drop. Have to think of something else.
t
What does the "usual" output of IR analysis look like? I would have assume that you obtain a netlist with parasitic resistances, and given a net name pair like VDDA, VSSA you would run a simple operation point analysis in ngspice, write out all the values of VDDA.t_X,_ and VSSA.t_X_ (the values at device terminals). This would give you static IR drop; dynamic IR drop would have to use a transient analysis. Like transient power analysis, it has to be given a meaningful use-case setup.
m
I’ve only seen results in passing and those were similar to heat maps where the hot spots were regions of high IR drop.