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:
parent
bcb8e9a081
commit
88e23a114e
16
TODO
16
TODO
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue