Changed the behavior of GDS writing to halt with an error if an

attempt is made to write an abstract view to GDS.  This behavior can
be overridded with the new command option "gds abstract [enable|disable]".
Also:  Corrected extraction to allow split tiles to be set as the
reference tile for a node.  Previously this was allowed only if the
tile was the first to be searched, but that can cause different tiles to
be marked as the reference depending on where the search starts,
resulting in different names for the same node in .ext files, which is
bad.  Also:  Modified the LEF annotation to avoid bad entries in the LEF
that would create layers in the layout where none exist.
This commit is contained in:
Tim Edwards
2022-11-02 09:40:20 -04:00
parent 5aee1dcb5a
commit 0dac37cb46
12 changed files with 149 additions and 51 deletions
+11 -4
View File
@@ -65,6 +65,7 @@ bool CalmaFlattenArrays = FALSE; /* If TRUE, output arrays as individual uses *
bool CalmaAddendum = FALSE; /* If TRUE, do not output readonly cell defs */
time_t *CalmaDateStamp = NULL; /* If non-NULL, output this for creation date stamp */
bool CalmaAllowUndefined = FALSE; /* If TRUE, allow calls to undefined cells */
bool CalmaAllowAbstract = FALSE; /* If TRUE, allow abstract views to be written */
/* Experimental stuff---not thoroughly tested (as of Sept. 2007)! */
bool CalmaContactArrays = FALSE; /* If TRUE, output contacts as subcell arrays */
@@ -925,12 +926,18 @@ calmaProcessDef(def, outf, do_library)
if (isReadOnly && hasContent && CalmaAddendum) return (0);
/* Give a strongly-worded statement about writing abstract views */
if (isAbstract && !isReadOnly)
TxError("Warning: Writing abstract view of \"%s\" to GDS. This is"
" probably not what you want to do.\n",
{
if (CalmaAllowAbstract)
TxError("Warning: Writing abstract view of \"%s\" to GDS.\n",
def->cd_name);
else
{
TxError("Error: Cell \"%s\" is an abstract view; cannot write GDS.\n",
def->cd_name);
return 1;
}
}
/*
* Output the definitions for any of our descendants that have