<<--File: IPPlaceBinPack.mesa>> <> <<>> DIRECTORY OrderedRefArray, IPCTG, IPCoTab, IPTop, IPPlaceKit; 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.