Corrected errors in LEF output syntax (missing semicolons at

statement ends on properties imported from a LEF file).  Never
noticed before because writing LEF after reading LEF was unusual.
This commit is contained in:
Tim Edwards 2019-04-01 12:23:48 -04:00
parent f6d4da56ce
commit 7e738576bc
2 changed files with 8 additions and 6 deletions

View File

@ -2004,8 +2004,8 @@ enum lef_sections {LEF_VERSION = 0,
LEF_NAMESCASESENSITIVE, LEF_NAMESCASESENSITIVE,
LEF_PROPERTYDEFS, LEF_UNITS, LEF_SECTION_LAYER, LEF_PROPERTYDEFS, LEF_UNITS, LEF_SECTION_LAYER,
LEF_SECTION_VIA, LEF_SECTION_VIARULE, LEF_SECTION_NONDEFAULTRULE, LEF_SECTION_VIA, LEF_SECTION_VIARULE, LEF_SECTION_NONDEFAULTRULE,
LEF_SECTION_SPACING, LEF_SECTION_SITE, LEF_PROPERTY, LEF_NOWIREEXTENSIONATPIN, LEF_SECTION_SPACING, LEF_SECTION_SITE,
LEF_NOISETABLE, LEF_CORRECTIONTABLE, LEF_IRDROP, LEF_PROPERTY, LEF_NOISETABLE, LEF_CORRECTIONTABLE, LEF_IRDROP,
LEF_ARRAY, LEF_SECTION_TIMING, LEF_EXTENSION, LEF_MACRO, LEF_ARRAY, LEF_SECTION_TIMING, LEF_EXTENSION, LEF_MACRO,
LEF_END}; LEF_END};
@ -2037,6 +2037,7 @@ LefRead(inName, importForeign)
"VIA", "VIA",
"VIARULE", "VIARULE",
"NONDEFAULTRULE", "NONDEFAULTRULE",
"NOWIREEXTENSIONATPIN",
"SPACING", "SPACING",
"SITE", "SITE",
"PROPERTY", "PROPERTY",
@ -2097,6 +2098,7 @@ LefRead(inName, importForeign)
LefEndStatement(f); LefEndStatement(f);
break; break;
case LEF_NAMESCASESENSITIVE: case LEF_NAMESCASESENSITIVE:
case LEF_NOWIREEXTENSIONATPIN:
LefEndStatement(f); LefEndStatement(f);
break; break;
case LEF_PROPERTYDEFS: case LEF_PROPERTYDEFS:

View File

@ -741,18 +741,18 @@ lefWriteMacro(def, f, scale, hide)
propvalue = (char *)DBPropGet(def, "LEFclass", &propfound); propvalue = (char *)DBPropGet(def, "LEFclass", &propfound);
if (propfound) if (propfound)
{ {
fprintf(f, " CLASS %s\n", propvalue); fprintf(f, " CLASS %s ;\n", propvalue);
class = propvalue; class = propvalue;
} }
else else
{ {
/* Needs a class of some kind. Use BLOCK as default if not defined */ /* Needs a class of some kind. Use BLOCK as default if not defined */
fprintf(f, " CLASS BLOCK\n"); fprintf(f, " CLASS BLOCK ;\n");
} }
propvalue = (char *)DBPropGet(def, "LEFsource", &propfound); propvalue = (char *)DBPropGet(def, "LEFsource", &propfound);
if (propfound) if (propfound)
fprintf(f, " SOURCE %s\n", propvalue); fprintf(f, " SOURCE %s ;\n", propvalue);
fprintf(f, " FOREIGN %s ;\n", def->cd_name); fprintf(f, " FOREIGN %s ;\n", def->cd_name);
@ -787,7 +787,7 @@ lefWriteMacro(def, f, scale, hide)
propvalue = (char *)DBPropGet(def, "LEFsymmetry", &propfound); propvalue = (char *)DBPropGet(def, "LEFsymmetry", &propfound);
if (propfound) if (propfound)
fprintf(f, " SYMMETRY %s\n", propvalue); fprintf(f, " SYMMETRY %s ;\n", propvalue);
/* Generate cell for yanking obstructions */ /* Generate cell for yanking obstructions */