It looks like you're new here. If you want to get involved, click one of these buttons!
Currently I am trying to get all of the nets from a layout for analysis, however, I haven't found a good way to distinguish between chips. The chip isn't contained in a single cell, so when creating a spice file the nets are extracting into different subcircuits.
Is there a way to use a layer, that is the bounding box of a chip, and create a new cell/subcircuit with all shapes/objects and/or nets within it?
Comments
Hi @blueman_44,
sorry, I don't get it ... so does you chip have a single top cell? So there is one circuit with multiple subcircuits and you want them to become combined?
You're saying you want to distinguish, but then you say you want to combine ... so you basically want to select some circuits? You can try deleting all the circuits you're not interested in in that case.
Some example was helpful.
Matthias
Thank you for the response @Matthias,
Here is an example and I'll also include my GDS/LVS deck:
In the example I have arrays for both the pads and devices with each being labeled respectively.
When I run the LVS deck flat the output spice file basically tells me some pads connect to some devices as shown here:
However, I would like some way to map the nets back to a specific 'chip' it represents. Say net 92 with Device, Pad as the components are actually 'Chip_C'.
I've mostly done custom MEMs devices so working with connectivity and LVS is new for me lol
Hi @blueman_44,
Thanks for the test case. I had to remove the "deep" statement to see the comments you mention, but then it is getting pretty slow ...
I don't know if that the right approach, as the netlist is made from nodes only. There is nothing "functional" (no active devices like FETs).
Usually you would attach a label (here chip name) to net by placing it on the net. In that case, that would be on the "routing" line. Now it is placed on a separate marker on layer 11.
If your "chip" contains a single net, you can include this marker in the connectivity and transfer the label this way. But caution: this will short all nets within one marker area:
This gives me in deep mode:
So net 1 is connecting Pad at 0,0 with routing at 0, 0 and device at 0,-150 and corresponds to Chip_A.
Matthias
Thanks @Matthias!
There are multiple nets per chip so I added a bit of code to map the chip text to the appropriate pad text:
For this example:
I get this result:
I see.
But then you can't differentiated the two pads and dev's of Chip_C, right?
Matthias
Oops I didn't include everything - I still can: (I'll include output file for reference)
This example was simplified - normally the pads are written uniquely as "PAD_#" and devices are "DEVICE_TYPE_#". That way I only need to parse out the nets to see which pads are connected to which devices.