Skip to content

Commit

Permalink
Added a quick check on cell defs when running "antennacheck" to
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
RTimothyEdwards committed Jun 20, 2022
1 parent 2b7b12d commit 43d5cc2
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 4 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.3.313
8.3.314
2 changes: 1 addition & 1 deletion extflat/EFantenna.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ CmdAntennaCheck(w, cmd)
}

/* Convert the hierarchical description to a flat one */
flatFlags = EF_FLATNODES;
flatFlags = EF_FLATNODES | EF_WARNABSTRACT;
TxPrintf("Building flattened netlist.\n");
EFFlatBuild(inName, flatFlags);

Expand Down
17 changes: 15 additions & 2 deletions extflat/EFflat.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ int efAddOneConn(HierContext *, char *, char *, Connection *, bool);

#define FLATNODE_STDCELL 0x01
#define FLATNODE_DOWARN 0x02
#define FLATNODE_NOABSTRACT 0x04


/*
Expand Down Expand Up @@ -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 */
Expand All @@ -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))
Expand Down Expand Up @@ -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 */
Expand Down
1 change: 1 addition & 0 deletions extflat/extflat.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit 43d5cc2

Please sign in to comment.