I am trying to make a calibre extraction of the R+C+CC parasitics and I am getting some strange results. The layout is DRC and LVS clean and when I extract the layout without parasitics, my simulations work well. When I extract C+CC it also works well, but then when I include the R parasitics, the simulation starts to behave strange.
To try to simplify and detect the problem, I only extracted one of the 2 nodes that are generating problems. The circuit contains 2 "pseudoresistor" connected in series, that is, 2 PMOS transistors with the BULK and SOURCE shorted. I have extracted the R parasitics (no cap) in the middle node.What is strange is that when I extract the R parasitics without any kind of parasitic reduction, the simulation of the cicuits does not work. But when I perform some reduction by combining several series resistor, the simulation works well.
I do not understand what is going on. It seems the problem is from Spectre, because the netlists for both cases seem correct to me. Please see the relevan extract of my netlist:
MM25 (MM25_d VhpP net020 net020) pch l=2e-07 w=3.5e-07 m=1 nf=1 \ sd=620.0n ad=2.114e-13 as=2.198e-13 pd=1.88e-06 ps=1.92e-06 \ nrd=1.72571 nrs=1.79429 sa=5.2e-07 sb=1.06e-06 sca=6.58985 \ scb=0.00296926 scc=1.34332e-05
MM29 (OUT VhpP MM29_s MM29_b) pch l=2e-07 w=3.5e-07 m=1 nf=1 sd=620.0n \ ad=2.114e-13 as=2.198e-13 pd=1.88e-06 ps=1.92e-06 nrd=1.72571 \ nrs=1.79429 sa=5.2e-07 sb=1.06e-06 sca=6.58985 scb=0.00296926 \ scc=1.34332e-05 rnet028_11 (net028_2 net028_7) resistor r=0.0206471 rnet028_10 (net028_2 net028_10) resistor r=0.0431024 rnet028_9 (net028_3 net028_7) resistor r=0.112412 rnet028_8 (net028_3 net028_5) resistor r=10 rnet028_7 (net028_5 MM29_s) resistor r=6.08436 rnet028_6 (net028_5 net028_16) resistor r=4.24952 rnet028_5 (net028_7 MM29_b) resistor r=11 rnet028_4 (MM29_b net028_16) resistor r=4.2219 rnet028_3 (net028_10 net028_11) resistor r=0.798652 rnet028_2 (net028_11 net028_13) resistor r=0.0345872 rnet028_1 (net028_13 net028) resistor r=10 rnet028_0 (MM25_d net028) resistor r=6.09418
MM25 (MM25_d VhpP net020 net020) pch l=2e-07 w=3.5e-07 m=1 nf=1 \ sd=620.0n ad=2.114e-13 as=2.198e-13 pd=1.88e-06 ps=1.92e-06 \ nrd=1.72571 nrs=1.79429 sa=5.2e-07 sb=1.06e-06 sca=6.58985 \ scb=0.00296926 scc=1.34332e-05 MM29 (OUT VhpP MM29_s MM29_b) pch l=2e-07 w=3.5e-07 m=1 nf=1 sd=620.0n \ ad=2.114e-13 as=2.198e-13 pd=1.88e-06 ps=1.92e-06 nrd=1.72571 \ nrs=1.79429 sa=5.2e-07 sb=1.06e-06 sca=6.58985 scb=0.00296926 \ scc=1.34332e-05 rnet028_5 (MM25_d net028) resistor r=0.01 rnet028_4 (net028_5 net028_7) resistor r=10.1124 rnet028_3 (net028_5 MM29_s) resistor r=6.08436 rnet028_2 (net028_5 MM29_b) resistor r=8.47143 rnet028_1 (net028_7 net028) resistor r=16.9912 rnet028_0 (net028_7 MM29_b) resistor r=11
For me the 2 circuits should simulate in the same way because the only difference is the combination of resistors in series. But how to make sure that it is a problem of my circuit or a problem of spectre?
Have someone seen something like that before?
Thanks and best regards,
I have checked for multiple operating points and I have not detected any problem. The circuit only have one operating point, but it is wrong after the extraction.
However, my circuit is sensitive to leakage current in the 2 transistors. As these transistor are implementing a very big resistor in the order of the TOhm, then any small current flowing through the transistors can cause a large voltage drop. I have put gmin=0 to have a more accurate simulation.
When I increase the gmin to 1e-12 (default value), my simulation works again. So, my simulation works either for a "big" gmin or for bigger parasitic resistors (obtained after combining several small resistors).
So, my questions are: Is the leakage current of the transistors not well modeled in the schematic? How does the leakage current change with the parasitic resistors? Is there a gmax value specified somewhere that depends on the gmin?