https://open-source-silicon.dev logo
Title
t

Thomas Figura

03/22/2023, 7:39 PM
I have been trying to run a simulation on an extracted layout of an amplifier and in the simulation I have been getting a singular matrix error, that might be messing up the simulation. I have looked through my magic files and the extracted spice list for the offending node, x2.m2_n2210_5890#, that is causing the error and I have only found it in the extracted spice file. @Tim Edwards do you know how to potentially fix this? I have passed LVS with this circuit. The original schematic, testbenchs, layout, etc are in the zip file for this amplifier circuit.
t

Tim Edwards

03/22/2023, 7:42 PM
It's probably caused by a piece of metal that isn't connected to anything and ends up generating a floating parasitic capacitance. The easiest way to fix this is to use
.option RSHUNT=1e20
or something of the sort. The point is to keep nodes from floating by having ngspice put a shunt resistor from every node. The shunt resistance can be as high as you want, so it doesn't affect the simulation, but it will prevent the matrix from becoming singular.
j

Jon Ho

03/22/2023, 7:43 PM
@Tim Edwards would LVS not catch this random piece of metal that's floating around?
t

Tim Edwards

03/22/2023, 7:44 PM
@Jon Ho: No, LVS doesn't care about floating bits of metal.
j

Jon Ho

03/22/2023, 7:46 PM
@Tim Edwards So in this case, m2_n2210_5890 would imply that there is some small m2 metal floating out there in the layout? Thomas hid all other metals and only showed M2 in an attempt to see if there was any metal hanging out there where it shouldn't. But we'll definitely give it another couple scans to double-check.
t

Tim Edwards

03/22/2023, 7:47 PM
Don't need to search; the node name is constructed from the position (in internal coordinates) (-2210, 5890).
t

Thomas Figura

03/22/2023, 7:47 PM
@Tim Edwards thank very much.