Corrected issues in the extresist function found after the previous

commit, mostly relating to the scale of values in the ".nodes" file
produced by ext2sim.  Making this file CIF syntax seemed unnecessary,
so I removed the CIF syntax and scaling.  "extresist" can now produce
an apparently valid output on a standard cell layout.  Even with the
change, the extresist output is still only pseudo-hierarchical, so
this does not preclude the need for eliminating the .sim format file
in favor of the .ext file, but it provides a working intermediate
form.
This commit is contained in:
Tim Edwards
2021-04-21 13:03:26 -04:00
parent abb3c3b98b
commit 59fc24729c
11 changed files with 142 additions and 284 deletions
+52
View File
@@ -33,6 +33,10 @@
#include "utils/hash.h"
#endif /* _HASH_H */
#ifndef _STACK_H
#include "utils/stack.h"
#endif /* _STACK_H */
#ifndef _BPLANE_H
#include "bplane/bplane.h"
#endif /* _BPLANE_H */
@@ -658,6 +662,54 @@ typedef struct treeFilter
/* To do: Make the tpath entries dynamically allocated */
#define FLATTERMSIZE 4096 /* Used for generating flattened labels */
/* ------------ Information used in connectivity searches --------------*/
/* The following structure is used to hold several pieces of information
* that must be passed through multiple levels of search function. This
* structure is used by DBSrConnect, DBTreeCopyConnect, SimTreeCopyConnect,
* and DBTreeCopyConnectDCS.
*/
struct conSrArg
{
CellDef *csa_def; /* Definition being searched. */
int csa_pNum; /* Index of plane being searched */
TileTypeBitMask *csa_connect; /* Table indicating what connects
* to what.
*/
int (*csa_clientFunc)(); /* Client function to call. */
ClientData csa_clientData; /* Argument for clientFunc. */
bool csa_clear; /* FALSE means pass 1, TRUE
* means pass 2.
*/
Rect csa_bounds; /* Area that limits search. */
};
typedef struct
{
Rect area; /* Area to process */
TileTypeBitMask *connectMask; /* Connection mask for search */
TileType dinfo; /* Info about triangular search areas */
} conSrArea;
struct conSrArg2
{
CellUse *csa2_use; /* Destination use */
TileTypeBitMask *csa2_connect; /* Table indicating what connects
* to what.
*/
SearchContext *csa2_topscx; /* Original top-level search context */
int csa2_xMask; /* Cell window mask for search */
Rect *csa2_bounds; /* Area that limits the search */
Stack *csa2_stack; /* Stack of full csa2_list entries */
conSrArea *csa2_list; /* List of areas to process */
int csa2_top; /* Index of next area to process */
int csa2_lasttop; /* Previous top index */
};
#define CSA2_LIST_SIZE 65536 /* Number of entries per list */
/* -------------- Undo information passed to DBPaintPlane ------------- */
typedef struct