Open d-m-bailey opened 2 years ago
The isosub
layer can be a bit of a pain, because it needs to be in multiple subcells of the hierarchy, and it needs to match up exactly from top down. But I'll take a look at this.
Thanks, Tim. I didn't realize that the isosub
layer had to be on the top layer too. I'll add it and retry.
I may be wrong, but it seems to me that the top level extract is where the problem occurs (and not ext2spice).
@RTimothyEdwards I added isosub
in the top cell chip_io
exactly as I added it in each of the IO pad cells, but got unexpected results. magic 8.3.260. Now the IO pad cells don't pass LVS either.
How does substrate extraction work in magic? It seems that if there are no substrate connections, VSUBS
is assigned. Is the substrate connection then passed from abutting pwells in the parent hierarchy?
magic 8.3.260
mpw-3 caravel chip_io.
By changing resistor and diode recognition layers and flattening the subcells (
chip_io_5.gds
) and making some changes to the netlists, LVS passes for all the chip_io pads. However, even addingisosub
to totally enclose each of the io cells, the substrates (including some pwell inside dnwell) are merged at the chip_io level.The reference directory in the tarfile contains the results I got.
To duplicate,
tar xzf substrate-issue.tar.gz
cd substrate-issue
./run_test
To find the pins that have been merged
awk -f merge_short.awk chip_io.ext
You should get"vssd1" "vssa1" "vssio" "vssd2" "vssa2" "vssd" "vssa"
Here are the pwell inside dnwell nets that are also merged with the above ground nets. These nets correspond to
mid
andmid1
ofsky130_fd_io__gpiov2_amux_switch
. In the extracted layout, these nets arew_9674_19062#
,w_12765_19062#
,w_12765_16948#
, andw_9674_16846#
. The shorted nets have 528 connection count.