magic/drc
R. Timothy Edwards d157eea7f3 Fixed an error that was discovered with the drcCanonicalMaxwidth()
routine, which in turn affects various DRC rules like maxrect,
widespacing, and runlength spacing.  drcTile() was computing
the drcCanonicalMaxwidth() result for the tile and reusing it,
failing to account for the fact that within the loop over
DRCCookies, other rules might require calling drcCanonicalMaxwidth()
on a neighboring tile, or on the same tile with a different width
requirement.  Implemented a cached version, in which three results
are kept:  One for neighboring tiles (which can never be reused on
the same edge), one for the first required use of the routine for
the tile, and one for any other use required for the tile.  If
there are one or two such rules for an edge, then the routine will
work at maximum efficiency.  If there are three rules, then one
will always be a cache hit and reduce the total amount of
computation, although it will still be doing a massive amount of
redundant computation.  If this seems to be something that
occurs regularly, then it can be revisited.  The existing
implementation works fine for all the open PDKs.  Some more
advanced PDKs with a number of staged wide-spacing rules could
have issues.
2026-04-14 17:37:10 -04:00
..
DRCarray.c Implemented the new feature discussed in the github discussion #492. 2026-03-08 20:12:58 -04:00
DRCbasic.c Fixed an error that was discovered with the drcCanonicalMaxwidth() 2026-04-14 17:37:10 -04:00
DRCcif.c First cut of pulling the TT_SIDE bit out of the tile database 2026-01-09 12:05:03 -05:00
DRCcontin.c First cut of pulling the TT_SIDE bit out of the tile database 2026-01-09 12:05:03 -05:00
DRCextend.c Fixed an error that was discovered with the drcCanonicalMaxwidth() 2026-04-14 17:37:10 -04:00
DRCmain.c Reworked the way that magic displays measurement values (both linear 2026-01-24 16:19:12 -05:00
DRCprint.c database: DBTypeShortName() return const char * 2025-10-04 20:50:31 -04:00
DRCsubcell.c Implemented the new feature discussed in the github discussion #492. 2026-03-08 20:12:58 -04:00
DRCtech.c Yet another pass at the problem caused by implementing DRC 2026-03-24 09:37:50 -04:00
Makefile Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00
drc.h I admit I was juggling with too many balls in the air yesterday 2026-03-25 14:07:54 -04:00