Added a quick check on cell defs when running "antennacheck" to

make sure that the cell def's .ext is not marked "abstract".
Otherwise, "antennacheck" appears to run, but no output is
produced, and no reason is given.
This commit is contained in:
Tim Edwards 2022-06-20 12:26:23 -04:00
parent 2b7b12d34c
commit 43d5cc2804
4 changed files with 18 additions and 4 deletions

View File

@ -1 +1 @@
8.3.313
8.3.314

View File

@ -224,7 +224,7 @@ runantennacheck:
}
/* Convert the hierarchical description to a flat one */
flatFlags = EF_FLATNODES;
flatFlags = EF_FLATNODES | EF_WARNABSTRACT;
TxPrintf("Building flattened netlist.\n");
EFFlatBuild(inName, flatFlags);

View File

@ -66,6 +66,7 @@ int efAddOneConn(HierContext *, char *, char *, Connection *, bool);
#define FLATNODE_STDCELL 0x01
#define FLATNODE_DOWARN 0x02
#define FLATNODE_NOABSTRACT 0x04
/*
@ -129,6 +130,10 @@ EFFlatBuild(name, flags)
if (flags & EF_FLATNODES)
{
int flatnodeflags = 0;
if (flags & EF_WARNABSTRACT)
flatnodeflags = FLATNODE_NOABSTRACT;
if (flags & EF_NOFLATSUBCKT)
{
/* The top cell must always have the DEF_SUBCIRCUIT flag cleared */
@ -137,8 +142,8 @@ EFFlatBuild(name, flags)
}
else
{
int flags = FLATNODE_DOWARN; /* No FLATNODE_STDCELL flag */
efFlatNodes(&efFlatContext, (ClientData)flags);
flatnodeflags |= FLATNODE_DOWARN; /* No FLATNODE_STDCELL flag */
efFlatNodes(&efFlatContext, (ClientData)flatnodeflags);
}
efFlatKills(&efFlatContext);
if (!(flags & EF_NONAMEMERGE))
@ -316,6 +321,14 @@ efFlatNodes(hc, clientData)
bool stdcell = (flags & FLATNODE_STDCELL) ? TRUE : FALSE;
bool doWarn = (flags & FLATNODE_DOWARN) ? TRUE : FALSE;
if (flags & FLATNODE_NOABSTRACT)
{
Def *def = hc->hc_use->use_def;
if (def->def_flags & DEF_ABSTRACT)
TxError("Error: Cell %s was extracted as an abstract view.\n",
def->def_name);
}
(void) efHierSrUses(hc, efFlatNodes, clientData);
/* Add all our own nodes to the table */

View File

@ -36,6 +36,7 @@ typedef unsigned char U_char;
#define EF_NOFLATSUBCKT 0x10 /* Don't flatten standard cells */
#define EF_NONAMEMERGE 0x20 /* Don't merge unconnected nets */
/* with the same name. */
#define EF_WARNABSTRACT 0x40 /* Warn if subcell is abstract */
/* Flags to control output of node names. Stored in EFOutputFlags */
#define EF_TRIM_MASK 0x1f /* Mask for handling name trimming */