mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-09-05 00:50:50 +02:00
Made a correction to the last commit, which is that when searching
a shielded substrate area for devices with terminals connecting to substrate, search the entire cell hierarchy down to the bottom in that area, not just the immediate child cell. Also: Reduced the number of types being searched to ignore types in non-substrate areas like nwell, although it should not make a practical difference because those areas should not be searched.
This commit is contained in:
+33
-4
@@ -2356,8 +2356,6 @@ ExtTechLine(sectionName, argc, argv)
|
||||
}
|
||||
|
||||
TTMaskSetMask(&ExtCurStyle->exts_deviceMask, &types1);
|
||||
if (!TTMaskIsZero(&subsTypes))
|
||||
TTMaskSetMask(&ExtCurStyle->exts_subsDevTypes, &types1);
|
||||
|
||||
for (t = TT_TECHDEPBASE; t < DBNumTypes; t++)
|
||||
if (TTMaskHasType(&types1, t))
|
||||
@@ -2872,8 +2870,6 @@ ExtTechLine(sectionName, argc, argv)
|
||||
}
|
||||
|
||||
TTMaskSetMask(&ExtCurStyle->exts_deviceMask, &types1);
|
||||
if (!TTMaskIsZero(&subsTypes))
|
||||
TTMaskSetMask(&ExtCurStyle->exts_subsDevTypes, &types1);
|
||||
|
||||
for (t = TT_TECHDEPBASE; t < DBNumTypes; t++)
|
||||
{
|
||||
@@ -3590,6 +3586,39 @@ extTechFinalStyle(style)
|
||||
int p, p1, missing, conflict;
|
||||
int indicis[NP];
|
||||
|
||||
/* Collect list of all device types that have a substrate connection
|
||||
* to substrate types, and all material types not in the substrate
|
||||
* plane and which are not substrate shields that connect to the
|
||||
* substrate.
|
||||
*/
|
||||
|
||||
for (r = TT_TECHDEPBASE; r < DBNumTypes; r++)
|
||||
{
|
||||
ExtDevice *devptr;
|
||||
|
||||
if (TTMaskHasType(&ExtCurStyle->exts_subsDevTypes, r)) continue;
|
||||
|
||||
for (devptr = ExtCurStyle->exts_device[r]; devptr; devptr = devptr->exts_next)
|
||||
{
|
||||
if (TTMaskIntersect(&devptr->exts_deviceSubstrateTypes,
|
||||
&ExtCurStyle->exts_globSubstrateTypes))
|
||||
TTMaskSetType(&ExtCurStyle->exts_subsDevTypes, r);
|
||||
}
|
||||
}
|
||||
|
||||
if (ExtCurStyle->exts_globSubstratePlane >= 0)
|
||||
{
|
||||
for (r = TT_TECHDEPBASE; r < DBNumTypes; r++)
|
||||
{
|
||||
if ((TTMaskHasType(&ExtCurStyle->exts_globSubstrateTypes, r)) &&
|
||||
(!TTMaskHasType(&ExtCurStyle->exts_globSubstrateShieldTypes, r))
|
||||
&& (DBPlane(r) != ExtCurStyle->exts_globSubstratePlane))
|
||||
TTMaskSetType(&ExtCurStyle->exts_subsDevTypes, r);
|
||||
}
|
||||
}
|
||||
|
||||
/* Prepare resistance classes */
|
||||
|
||||
for (r = TT_TECHDEPBASE; r < DBNumTypes; r++)
|
||||
{
|
||||
maskBits = style->exts_nodeConn[r];
|
||||
|
||||
Reference in New Issue
Block a user