SCNetUtil.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
last changed by Preas June 17, 1986 2:06:41 pm PDT
Jean-Marc Frailong October 11, 1987 5:23:18 pm PDT
net utility routines
DIRECTORY Core, CoreFlat, SC, SCPrivate;
SCNetUtil: CEDAR DEFINITIONS =
BEGIN
Global data structure maintenance
DefineNet: PROC [handle: SC.Handle, flatWire: CoreFlat.FlatWire] RETURNS [net: SCPrivate.Net];
Create a net corresponding to a canonical flat wire & scream if already defined
FindNet: PROC [handle: SC.Handle, flatWire: CoreFlat.FlatWire] RETURNS [net: SCPrivate.Net];
Locate a net by its canonical flat wire name & scream if not found
FindPublicNet: PROC [handle: SC.Handle, wire: Core.Wire] RETURNS [net: SCPrivate.Net];
Locate a public net by its public wire & scream if not found
EachNetProc: TYPE = PROC [net: SCPrivate.Net] RETURNS [quit: BOOLFALSE];
EnumerateNets: PROC [handle: SC.Handle, eachNet: EachNetProc] RETURNS [quit: BOOL];
Enumerate all nets that have pins on them
Nets and instances
NetsOnInst: PROC[insts: SCPrivate.InstanceList] RETURNS [nets: SCPrivate.NetList];
Find nets attached to component
InstsOnNets: PROC[nets: SCPrivate.NetList] RETURNS [insts: SCPrivate.InstanceList];
Determine Instances on net
EachInstProc: TYPE = PROC [instance: SCPrivate.Instance] RETURNS [quit: BOOLFALSE];
EnumerateInstsOnNets: PROC [nets: SCPrivate.NetList, eachInst: EachInstProc] RETURNS [quit: BOOL];
Nets and pins
EachPinProc: TYPE = PROC [netPin: SCPrivate.NetPin] RETURNS [quit: BOOLFALSE];
EnumeratePinsOnNet: PROC [net: SCPrivate.Net, eachPin: EachPinProc] RETURNS [quit: BOOL];
Connections
AddConnection: PROC [handle: SC.Handle, net: SCPrivate.Net, instance: SCPrivate.Instance, pin: SCPrivate.ObjectPin, pinIndex: NAT, pinClass: SCPrivate.PinType];
RemoveConnections: PROC [handle: SC.Handle, instance: SCPrivate.Instance];
Utilities
RemoveFtsOnNet: PROC[handle: SC.Handle, net: SCPrivate.Net];
Remove the fts on a net list
ExitOnSide: PROC [handle: SC.Handle, net: SCPrivate.Net, side: SC.Side] RETURNS [onThisSide: BOOLEAN];
Return TRUE if net has an exit on the indicated side
END.