GCCIG.mesa
Copyright Ó 1986, 1987 by Xerox Corporation. All rights reserved.
Last Edited by: Preas, January 15, 1987 3:48:05 pm PST
Massoud Pedram May 6, 1988 6:50:24 pm PDT
Don Curry December 3, 1987 1:41:52 pm PST
DIRECTORY
CD, GC, CoreRouteFlat, Graphs0, Graphs0Path;
GCCIG:
CEDAR
DEFINITIONS =
BEGIN
Graph: TYPE = REF GraphRec;
GraphRec:
TYPE =
RECORD [
context: GC.Context ← NIL,
graph: Graphs0.Graph ← NIL];
Node: TYPE = Graphs0.Node;
NodeList: TYPE = Graphs0.NodeList;
NodeSetList: TYPE = Graphs0Path.NodeSetList;
Create: PROC[context: GC.Context] RETURNS[cig: Graph];
Destroy:
PROC[cig: Graph];
Invalidates cig and removes circular references
UpdateCIGWeights:
PROC [cig:
GCCIG.Graph] ;
Updates CIG Arc Weights.
ConnectionStrength: TYPE = {goodInternal, power, highImpedance, none};
InsertNet:
PROC[
cig: Graph,
net: CoreRouteFlat.Net,
connectionStrength: ConnectionStrength ← goodInternal]
RETURNS [nodeSetList: NodeSetList];
Add the net to cig. connectionStrength indicates that connections through a cell may be used as part of the signal path. 1) highImpedance indicates that physical pins on a cell are connected internally bur these internal connections must not be used for carring net current; 2) power indicates that each physical pin should be connected by the net wiring; 3) goodInternal indicates that the internal connections may be used for carrying net current and that not all pins must be connected by net wiring. For example, you might set connectionStrength = power for power supply nets and connectionStrength = goodInternal for all aothers.
RemoveNodes:
PROC[cig: Graph, nodeSetList: NodeSetList];
Remove all additions from cig. Inverse of InsertNet
ShortestPath:
PUBLIC
PROC[cig: Graph, nodeSetList: NodeSetList, net: CoreRouteFlat.Net];
Find shortest path among pins of nodeSetList
Check:
PROC[cig: Graph];
Verify cig
Audit:
PROC[cig: Graph];
Verify that cig has no arcs with cost = 0 and ch = NIL
Length:
PROC[nodeSetList: NodeSetList]
RETURNS [n:
INT];
count members of nodeList
PaintShortestPath:
PROC[cig: Graph, nodeSetList: NodeSetList]
RETURNS [object:
CD.Object];
PaintGraph:
PROC[cig: Graph]
RETURNS [object:
CD.Object];
END.