A few minor changes to message reporting, plus some additional
support for compressed formats, specifically when given on the command line (which is handled in a Tcl script, not in the C code).
This commit is contained in:
parent
00c692b140
commit
97134848ab
|
|
@ -828,6 +828,7 @@ dbcConnectLabelFunc(scx, lab, tpath, csa2)
|
||||||
CellDef *orig_def = scx->scx_use->cu_def;
|
CellDef *orig_def = scx->scx_use->cu_def;
|
||||||
Label *slab;
|
Label *slab;
|
||||||
int lidx = lab->lab_port;
|
int lidx = lab->lab_port;
|
||||||
|
bool foundOne;
|
||||||
const TileTypeBitMask *connectMask;
|
const TileTypeBitMask *connectMask;
|
||||||
|
|
||||||
/* Check for equivalent ports. For any found, call */
|
/* Check for equivalent ports. For any found, call */
|
||||||
|
|
@ -839,6 +840,7 @@ dbcConnectLabelFunc(scx, lab, tpath, csa2)
|
||||||
/* are more equivalent ports, they will be found when */
|
/* are more equivalent ports, they will be found when */
|
||||||
/* processing this label's area. */
|
/* processing this label's area. */
|
||||||
|
|
||||||
|
foundOne = FALSE;
|
||||||
for (slab = orig_def->cd_labels; slab != NULL; slab = slab->lab_next)
|
for (slab = orig_def->cd_labels; slab != NULL; slab = slab->lab_next)
|
||||||
if ((slab->lab_flags & PORT_DIR_MASK) && (slab != lab))
|
if ((slab->lab_flags & PORT_DIR_MASK) && (slab != lab))
|
||||||
if (slab->lab_port == lidx)
|
if (slab->lab_port == lidx)
|
||||||
|
|
@ -899,6 +901,20 @@ dbcConnectLabelFunc(scx, lab, tpath, csa2)
|
||||||
csa2->csa2_list[csa2->csa2_top].connectMask = connectMask;
|
csa2->csa2_list[csa2->csa2_top].connectMask = connectMask;
|
||||||
csa2->csa2_list[csa2->csa2_top].dinfo = 0;
|
csa2->csa2_list[csa2->csa2_top].dinfo = 0;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* This warning is useful but currently is generating
|
||||||
|
* multiple messages per instance and so its more of
|
||||||
|
* an annoyance than an aid.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (foundOne == FALSE)
|
||||||
|
TxError("Warning: Port %s at location (%d %d) connects"
|
||||||
|
" a net across multiple disconnected areas!\n",
|
||||||
|
lab->lab_text, lab->lab_rect.r_xbot,
|
||||||
|
lab->lab_rect.r_ybot);
|
||||||
|
#endif
|
||||||
|
foundOne = TRUE;
|
||||||
|
|
||||||
/* See above: Process only one equivalent port at a time */
|
/* See above: Process only one equivalent port at a time */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -1247,7 +1263,8 @@ DBTreeCopyConnect(scx, mask, xMask, connect, area, doLabels, destUse)
|
||||||
if (DBTreeSrLabels(scx, newmask, xMask, &tpath, searchtype,
|
if (DBTreeSrLabels(scx, newmask, xMask, &tpath, searchtype,
|
||||||
dbcConnectLabelFunc, (ClientData) &csa2) != 0)
|
dbcConnectLabelFunc, (ClientData) &csa2) != 0)
|
||||||
{
|
{
|
||||||
TxError("Connection search hit memory limit and stopped.\n");
|
TxError("Connection search was interrupted or hit "
|
||||||
|
"memory limit and stopped.\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3318,7 +3318,8 @@ dbFindPropGCFFunc(key, value, ggcf)
|
||||||
break;
|
break;
|
||||||
else if (numvals != 4)
|
else if (numvals != 4)
|
||||||
{
|
{
|
||||||
TxError("Error: Cannot parse %s property value!\n", key);
|
TxError("Error: Cannot parse %s property value at \"%s\"!\n",
|
||||||
|
key, vptr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -3337,7 +3338,7 @@ dbFindPropGCFFunc(key, value, ggcf)
|
||||||
/* Skip forward four values in value */
|
/* Skip forward four values in value */
|
||||||
for (n = 0; n < 4; n++)
|
for (n = 0; n < 4; n++)
|
||||||
{
|
{
|
||||||
while (!isspace(*vptr)) vptr++;
|
while (!isspace(*vptr) && (*vptr != '\0')) vptr++;
|
||||||
while (isspace(*vptr) && (*vptr != '\0')) vptr++;
|
while (isspace(*vptr) && (*vptr != '\0')) vptr++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -373,7 +373,13 @@ if {[info commands magic::openwrapper] != {}} {
|
||||||
|
|
||||||
foreach cellname $celllist {
|
foreach cellname $celllist {
|
||||||
set fext [file extension $cellname]
|
set fext [file extension $cellname]
|
||||||
puts stdout "handling file entry $cellname extension $fext"
|
switch $fext {
|
||||||
|
.gz {}
|
||||||
|
"" {}
|
||||||
|
default {
|
||||||
|
puts stdout "Handling file entry $cellname extension $fext"
|
||||||
|
}
|
||||||
|
}
|
||||||
switch $fext {
|
switch $fext {
|
||||||
.lef -
|
.lef -
|
||||||
.LEF {lef read $cellname}
|
.LEF {lef read $cellname}
|
||||||
|
|
@ -390,6 +396,16 @@ if {[info commands magic::openwrapper] != {}} {
|
||||||
.tcl {source $cellname}
|
.tcl {source $cellname}
|
||||||
.mag -
|
.mag -
|
||||||
"" {magic::load $cellname}
|
"" {magic::load $cellname}
|
||||||
|
.gz {
|
||||||
|
set rootname [file root $cellname]
|
||||||
|
set fext [file extension $rootname]
|
||||||
|
puts stdout "Handling compressed entry $cellname extension $fext"
|
||||||
|
switch $fext {
|
||||||
|
.gds {gds read $cellname}
|
||||||
|
.mag {magic::load $cellname}
|
||||||
|
default {puts stderr "only compressed .mag and .gds are handled."}
|
||||||
|
}
|
||||||
|
}
|
||||||
default {puts stderr "don't know how to load file $cellname"}
|
default {puts stderr "don't know how to load file $cellname"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue