Corrected CalmaWrite behavior to be as was intended for handling vendor

GDS of abstract views, such that if the cellname being dumped is the
same as the library name, then no prefix is added to subcells.  This
behavior may be changed in the future.
This commit is contained in:
Tim Edwards 2020-04-23 14:41:29 -04:00
parent bcb8e9a081
commit 88e23a114e
3 changed files with 22 additions and 3 deletions

16
TODO
View File

@ -14,3 +14,19 @@ I. Bugs to fix
unusual geometry situations. That these situations would be DRC
errors does not excuse the infinite loop behavior. The geometry
required is unusual enough that this is not a high priority item.
4. The LEF read/write should operate from the GDS rules and layers, not
the magic database layers. LEF setup should be put in the cifinput
and cifoutput sections in the techfile, not in its own section.
5. Implement a CRC checksum to replace (or complement) timestamps.
Cells are marked as invalid only if the checksum fails to match, not
if the timestamp is outdated. This helps with two problems: (1)
PDKs which are reinstalled but not changed, and (2) libraries which
are copied from one place to another but not changed.
6. Implement tile planes that can be defined as either maximum horizontal
stripes (default) or maximum vertical stripes. The latter, if applied
to vertically oriented route layers, vastly speeds up searches on
those layers. The code for manipulating tile planes with maximum
vertical stripes exists but is used only in by the maze router.

View File

@ -1 +1 @@
8.3.4
8.3.5

View File

@ -444,13 +444,15 @@ calmaDumpStructure(def, outf, calmaDefHash, filename)
if (edef != NULL)
{
bool isAbstract, isReadOnly;
char *chklibname;
char *chklibname, *dotptr;
/* Is view abstract? */
DBPropGet(edef, "LEFview", &isAbstract);
chklibname = (char *)DBPropGet(edef, "GDS_FILE", &isReadOnly);
dotptr = strrchr(filename, '.');
if (dotptr) *dotptr = '\0';
/* Is the library name the same? */
/* Is the library name the same as the filename (less extension)? */
if (isAbstract && isReadOnly && !strcmp(filename, chklibname))
{
/* Same library, so keep the cellname and mark the cell */
@ -473,6 +475,7 @@ calmaDumpStructure(def, outf, calmaDefHash, filename)
HashSetValue(he, (char *)newnameptr);
}
}
if (dotptr) *dotptr = '.';
}
else
{