TNT.mesa
Copyright Ó 1985, 1987 by Xerox Corporation. All rights reserved.
Giordano Bruno Beretta, October 17, 1985 4:37:14 pm PDT
gbb March 28, 1987 6:19:22 pm PST
Defines The Neighbourhood Table for Genista.
Gli uomini vollero piuttosto le tenebre che la luce (Giovanni, III, 19.)
DIRECTORY
CD USING [Object, Transformation],
Core USING [Wire],
PrincOpsUtils USING [];
TNT: CEDAR DEFINITIONS
~ BEGIN
The neighbourhood table
TNT: TYPE = REF TNTRep; -- The Neighbourhood Table.
TNTRep: TYPE;
InitTNT: PROC RETURNS [t: TNT];
To be called for each design rule check.
BlowTNT: PROC [t: TNT];
To be called after each design rule check.
RememberTNT: PROC [t: TNT, o1, o2: CD.Object, t1, t2: CD.Transformation, a1, a2: Core.Wire];
Puts the two objects in the neighbourhood table.
InTNT: PROC [t: TNT, o1, o2: CD.Object, t1, t2: CD.Transformation, a1, a2: Core.Wire] RETURNS [BOOL];
Asserts that a combination of two cells was already checked.
UpdateTNT: PUBLIC PROC [t: TNT, o1, o2: CD.Object, t1, t2: CD.Transformation, a1, a2: Core.Wire] RETURNS [wasThere: BOOL];
Asserts that a combination of two cells was already checked. The new combination is remembered.
SweepTNT: PROC [t: TNT]
If the neighbourhood table is almost full and sufficient time has elapsed, the entries never accessed are removed from the table. To be called periodically by the main Core traversal mechanism.
END.