--File: IPPlaceXamples.mesa
Last Edited by: CSChow, February 2, 1985 2:34:28 am PST
DIRECTORY
IPPlaceKit;
IPPlaceXamples: CEDAR DEFINITIONS = BEGIN
-- This is simply a bunch of sample heuristics. Use them as guide on how to interface with
-- the system. Or simply improve by modifying them.
-- NB: THIS SAMPLE ASSUMES ALL THE COMPONENTS ARE RECTANGLES
Components: TYPE = IPPlaceKit.Components;
--Examples of OrderingFn
OrderingFnX1: IPPlaceKit.OrderingFn;
--uniformly generates LIST OF [depth: ofx1Depth, breadth: ofx1Breadth, VARS =
-- (1) ofx1Depth: PUBLIC NAT ← 3;
-- (2) ofx1Breadth: PUBLIC NAT ← 5;
--Examples of PlaceEvaluator and PlaceCompTGen Functions
PlaceEvaluatorX1: IPPlaceKit.PlaceEvaluator;
-- Use NetLength; NO pruning
PlaceEvaluatorX2: IPPlaceKit.PlaceEvaluator;
-- Use NetLength;
-- Does Simple prunning:
-- (i) number of components yet to place
-- (ii) pex2PruneCoeff: PUBLIC REAL ← 0.1
PlaceCompTGenX1: IPPlaceKit.PlaceCompTGen;
--Generate all grow positions (assuming rectangular blocks only, eg. no Grow1)
--Number generated controlled by: pctgX1Keep: PUBLIC NAT ← 4
PlaceCompTGenX2: IPPlaceKit.PlaceCompTGen;
-- Similar PlaceCompTGenX1 but with prunning by
-- Prune by not enumerating further if grow site generation is in wrong direction
-- Number generated controlled by: pctgX2Keep: PUBLIC NAT ← 4
--Examples of RemoveEvaluator and RemoveCompTGen
RemoveEvaluatorX1: IPPlaceKit.RemoveEvaluator;
-- Use area of assembly. No Prunning
RemoveCompsTGenX1: IPPlaceKit.RemoveCompTGen;
--Try removing each active componen using Shrink. NO prunning
-- value = (assembly area after removal) + IPPlaceKit.GetComponentArea[co, TRUE, FALSE]
--(1) rctgX1Keep: PUBLIC NAT ← 3;
-- (2) rctgX1ShrnkDn: PUBLIC IPCTG.ChType ← hor;
END.