Modifed the handling of parallelized no-connects so that the behavior
can be turned on or off from the setup using "property parallel open" to allow parallelizing devices with no-connect pins vs. "property parallel connected" to only allow parallelizing of devices with all pins connected.
This commit is contained in:
parent
a21ba820e9
commit
20077d3d56
|
|
@ -50,6 +50,7 @@ int NextNode;
|
||||||
int Composition = NONE;
|
int Composition = NONE;
|
||||||
int QuickSearch = 0;
|
int QuickSearch = 0;
|
||||||
int GlobalParallelNone = FALSE;
|
int GlobalParallelNone = FALSE;
|
||||||
|
int GlobalParallelOpen = TRUE;
|
||||||
|
|
||||||
int AddToExistingDefinition = 0; /* default: overwrite cell when reopened */
|
int AddToExistingDefinition = 0; /* default: overwrite cell when reopened */
|
||||||
|
|
||||||
|
|
@ -3164,10 +3165,13 @@ int CombineParallel(char *model, int file)
|
||||||
/* can be treated as equivalent for the purpose of parallelization. */
|
/* can be treated as equivalent for the purpose of parallelization. */
|
||||||
|
|
||||||
nodecount = (int *)CALLOC((tp->nodename_cache_maxnodenum + 1), sizeof(int));
|
nodecount = (int *)CALLOC((tp->nodename_cache_maxnodenum + 1), sizeof(int));
|
||||||
for (ob = tp->cell; ob; ob = ob->next) {
|
|
||||||
if (ob->node >= 0)
|
if (GlobalParallelOpen) {
|
||||||
if (ob->type != NODE)
|
for (ob = tp->cell; ob; ob = ob->next) {
|
||||||
nodecount[ob->node]++;
|
if (ob->node >= 0)
|
||||||
|
if (ob->type != NODE)
|
||||||
|
nodecount[ob->node]++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lob = NULL;
|
lob = NULL;
|
||||||
|
|
|
||||||
|
|
@ -149,6 +149,7 @@ extern int NoOutput; /* set this to 1 to disable stdout output */
|
||||||
extern int Composition; /* direction of composition */
|
extern int Composition; /* direction of composition */
|
||||||
extern int UnixWildcards; /* TRUE if *,?,{},[] only; false if full REGEXP */
|
extern int UnixWildcards; /* TRUE if *,?,{},[] only; false if full REGEXP */
|
||||||
extern int GlobalParallelNone; /* If TRUE, don't parallel combine any cells */
|
extern int GlobalParallelNone; /* If TRUE, don't parallel combine any cells */
|
||||||
|
extern int GlobalParallelOpen; /* If TRUE, parallel combine cells w/no-connects */
|
||||||
/* magic internal flag to restrict searches to recently placed cells */
|
/* magic internal flag to restrict searches to recently placed cells */
|
||||||
extern int QuickSearch;
|
extern int QuickSearch;
|
||||||
/* does re"CellDef"ing a cell add to it or overwrite it??? */
|
/* does re"CellDef"ing a cell add to it or overwrite it??? */
|
||||||
|
|
|
||||||
|
|
@ -3417,9 +3417,15 @@ _netcmp_property(ClientData clientData,
|
||||||
GlobalParallelNone = FALSE;
|
GlobalParallelNone = FALSE;
|
||||||
SetParallelCombine(TRUE);
|
SetParallelCombine(TRUE);
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(Tcl_GetString(objv[2]), "connected")) {
|
||||||
|
GlobalParallelOpen = FALSE;
|
||||||
|
}
|
||||||
|
else if (!strcmp(Tcl_GetString(objv[2]), "open")) {
|
||||||
|
GlobalParallelOpen = TRUE;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
Tcl_SetResult(interp, "Bad option, should be property parallel none|all",
|
Tcl_SetResult(interp, "Bad option, should be property parallel "
|
||||||
NULL);
|
"none|all|connected", NULL);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
}
|
}
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue