org.opencores.placement
Class PrePlacement

java.lang.Object
  |
  +--org.opencores.placement.PrePlacement

public class PrePlacement
extends java.lang.Object

This algorithm tries to arrange graph nodes similarly to graph drawing algorithms. Nodes may overlap and they are placed in RxR space. Also this class contains some preplacement functions, that are based on RxR placement. After preplacement we have valid placement. Annealing uses two forces - temperature and distancing force. First nets acts like elastics and tries to approach nodes together, on the other hand nodes are distanced by the power of distancing force. Preplacement consist of three steps: - preplacement of SPCs - preplacement of GPCs - preplacement of ports


Field Summary
private  Graph g
          graph representation we are working on
 int nGPC
          Number of GPCs detected by preplacement
 int nInputs
          Number of total LUT inputs.
 int nIOC
          Number of Ports detected by preplacement
private  int[] pos
          position array, knowing number of LUTs at that position
 java.util.Vector vnl
          vector, that contains all GPCs
 
Constructor Summary
PrePlacement(Graph g)
          Initializes RxR placement.
 
Method Summary
private  float portDist(float x, float y, int pi)
          returns manhattan distance between specified position (x,y) and port with index pi.
 void prePlacement()
          Does preplacement.
 void prePlacementGPC()
          Assigns valid positions for GPCs.
 void prePlacementIOC()
          Assigns valid positions for IOC.
 void setGraph(Graph g)
          Changes working graph.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

g

private Graph g
graph representation we are working on

nGPC

public int nGPC
Number of GPCs detected by preplacement

nIOC

public int nIOC
Number of Ports detected by preplacement

nInputs

public int nInputs
Number of total LUT inputs.

vnl

public java.util.Vector vnl
vector, that contains all GPCs

pos

private int[] pos
position array, knowing number of LUTs at that position
Constructor Detail

PrePlacement

public PrePlacement(Graph g)
Initializes RxR placement.
Parameters:
g - graph to do placement on.
Method Detail

setGraph

public void setGraph(Graph g)
Changes working graph.
Parameters:
g - graph to work on
See Also:
Graph

prePlacementGPC

public void prePlacementGPC()
Assigns valid positions for GPCs. This placement is improved by main SA placement.

prePlacementIOC

public void prePlacementIOC()
Assigns valid positions for IOC. This placement is improved by main SA placement.

portDist

private float portDist(float x,
                       float y,
                       int pi)
returns manhattan distance between specified position (x,y) and port with index pi. Ports are arranged: {(0..X-1,0),(0..X-1,Y-1),(0,0..Y-1),(X-1,0..Y-1)}
Parameters:
x - x position
y - y position
pi - port index
Returns:
manhattan distance

prePlacement

public void prePlacement()
Does preplacement.
See Also:
prePlacementGPC, NOTE: Netlist must be mapped first.