IPPlaceBinPack:
CEDAR
DEFINITIONS =
BEGIN
-- Intro: This is some sample heuristics on 'BIN-PACKING'
-- Assumes no netlength and no notion of types; components can be non-rectangular
Components: TYPE = IPPlaceKit.Components;
--Ordering Functions:
OrderingFn1: IPPlaceKit.OrderingFn;
--Order by bounding area
-- VARS: (I) of1Depth: PUBLIC NAT ← 3;
(II) of1Breadth: PUBLIC NAT ← 3;
(iii) of1EnumIncreasing: PUBLIC BOOL ← TRUE;
OrderingFn2: IPPlaceKit.OrderingFn;
-- Uses OrderingFn1
-- VARS: (i) of2DepthN and (ii) of2BreadthN N = [1..5]
-- (III) of2EnumIncreasing: BOOL
--Place Evaluator
PlaceEvaluator1: IPPlaceKit.PlaceEvaluator;
-- Just use assembly area, NO pruning
PlaceEvaluator2: IPPlaceKit.PlaceEvaluator;
-- vaue is assembly are
-- simple prunning by including in area of unplaced components
PlaceEvaluator3: IPPlaceKit.PlaceEvaluator;
--value is assembly area
--Use exact prunning. ie. prune => with high probablity of not being good
-- Also incorp method of precomputing the area once only
--PlaceComp Trial generator
PlaceCompTGen1: IPPlaceKit.PlaceCompTGen;
--Generate all grow position:
-- (i) Grow and Grow1
-- (ii) Do Various IPPlaceKit.CompactComp0
--VAR: Number generated controlled by: pctgX1Keep: PUBLIC NAT ← 10
PlaceCompTGen2: IPPlaceKit.PlaceCompTGen;
-- (i) Grow and Grow1
-- (ii) and IPPlaceKit.CompactComp1
--VAR: Number generated controlled by: pctgX2Keep: PUBLIC NAT ← 10
--RemoveComp Evaluator
RemoveEvaluator1: IPPlaceKit.RemoveEvaluator;
-- Use area of assembly.
--NO prunning. Havent figure out how to
--RemoveComp Trial generator
RemoveCompsTGen1: IPPlaceKit.RemoveCompTGen;
--Actually removes each component, exhaustively.
--value of removal = active area + (bounding area of comp removed ← more thought)
--VARS: (i) rctg1Keep: PUBLIC NAT ← 3, and(ii) rctg1ShrnkDn: PUBLIC IPCTG.ChType ← hor;
END.