Mitch Bailey
09/23/2022, 2:51 PMTim Edwards
09/23/2022, 2:54 PMgetcell
and drop a new instance on the same location as another of the same cell. However, there are ways to place cells that do not have such a check (obviously, or you wouldn't have seen it). I'd have to look in the code for GDS read and DEF read at least. My best guess is that this came from GDS?Mitch Bailey
09/23/2022, 3:06 PMuser_analog_project_wrapper
->`main`->`rosc` is the block and ro_inv_lvt
is the cell at (57.14500, 2.24500)
Extracted rosc.ext
has
use ro__inv_lvt ro__inv_lvt_1 1 0 11429 0 1 449
use ro__inv_lvt ro__inv_lvt_0 1 0 11429 0 1 449
Tim Edwards
09/23/2022, 3:11 PMMitch Bailey
09/23/2022, 3:31 PMTim Edwards
09/23/2022, 3:33 PMDBPlaceCell()
):
/* To do: Check non-duplicate placement, check non-duplicate ID */
Tim Edwards
09/23/2022, 3:41 PMDBCellFindDup()
. So I think there just needs to be a call to DBCellFindDup()
where I put that comment. Note that if you search for DBCellFindDup()
in the code base, there's one for the getcell
command and one for selection operations. Putting it in DBPlaceCell()
would handle both of those cases. Note, however, that without a full hierarchical survey, this will not guarantee that there are no duplicate instances in an entire design; only that there are no duplicate instances in the same cell. The more general case would be much more problematic to support, so I'd just go with adding the check to DBPlaceCell()
.Mitch Bailey
09/23/2022, 3:46 PM