| abc-master
    | 
#include <stdlib.h>#include <math.h>#include <string.h>#include <stdio.h>#include <limits.h>#include <assert.h>#include "place_base.h"#include "place_gordian.h"#include "libhmetis.h"Go to the source code of this file.
| Data Structures | |
| struct | FM_cell | 
| Typedefs | |
| typedef struct FM_cell | FM_cell | 
| Functions | |
| void | FM_updateGains (ConcreteNet *net, int partition, int inc, FM_cell target[], FM_cell *bin[], int count_1[], int count_2[]) | 
| void | initPartitioning () | 
| Initializes data structures necessary for partitioning.  More... | |
| void | presortNets () | 
| Sorts nets by corner positions.  More... | |
| bool | refinePartitions () | 
| Splits large leaf partitions.  More... | |
| void | reallocPartitions () | 
| Reallocates the partitions based on placement information.  More... | |
| bool | refinePartition (Partition *p) | 
| Splits any large leaves within a partition.  More... | |
| void | repartitionHMetis (Partition *parent) | 
| Repartitions the two subpartitions using the hMetis min-cut library.  More... | |
| void | repartitionFM (Partition *parent) | 
| Fiduccia-Matheyses mincut partitioning algorithm.  More... | |
| void | partitionEqualArea (Partition *parent) | 
| Splits a partition into two halves of equal area.  More... | |
| void | partitionScanlineMincut (Partition *parent) | 
| Scans the cells within a partition from left to right and chooses the min-cut.  More... | |
| void | reallocPartition (Partition *p) | 
| Reallocates a partition and all of its children.  More... | |
| void | resizePartition (Partition *p) | 
| Recomputes the bounding boxes of the child partitions based on their relative areas.  More... | |
| void | incrementalSubpartition (Partition *p, ConcreteCell *newCells[], const int numNewCells) | 
| Adds new cells to an existing partition. Partition sizes/locations are unchanged.  More... | |
| void | incrementalPartition () | 
| Adds new cells to an existing partition. Partition sizes/locations are unchanged.  More... | |
| Variables | |
| ABC_NAMESPACE_IMPL_START Partition * | g_place_rootPartition = NULL | 
| ConcreteNet ** | allNetsR2 = NULL | 
| ConcreteNet ** | allNetsL2 = NULL | 
| ConcreteNet ** | allNetsB2 = NULL | 
| ConcreteNet ** | allNetsT2 = NULL | 
| void FM_updateGains | ( | ConcreteNet * | net, | 
| int | partition, | ||
| int | inc, | ||
| FM_cell | target[], | ||
| FM_cell * | bin[], | ||
| int | count_1[], | ||
| int | count_2[] | ||
| ) | 
| void incrementalPartition | ( | ) | 
Adds new cells to an existing partition. Partition sizes/locations are unchanged.
The function recurses, adding new cells to appropriate subpartitions.
Definition at line 1103 of file place_partition.c.
| void incrementalSubpartition | ( | Partition * | p, | 
| ConcreteCell * | newCells[], | ||
| const int | numNewCells | ||
| ) | 
Adds new cells to an existing partition. Partition sizes/locations are unchanged.
The function recurses, adding new cells to appropriate subpartitions.
Definition at line 1052 of file place_partition.c.
| void initPartitioning | ( | ) | 
Initializes data structures necessary for partitioning.
Creates a valid g_place_rootPartition.
Definition at line 67 of file place_partition.c.
| void partitionEqualArea | ( | Partition * | parent | ) | 
Splits a partition into two halves of equal area.
Definition at line 834 of file place_partition.c.
| void partitionScanlineMincut | ( | Partition * | parent | ) | 
Scans the cells within a partition from left to right and chooses the min-cut.
Definition at line 879 of file place_partition.c.
| void presortNets | ( | ) | 
Sorts nets by corner positions.
Allocates allNetsX2 structures.
Definition at line 105 of file place_partition.c.
| void reallocPartition | ( | Partition * | p | ) | 
Reallocates a partition and all of its children.
Definition at line 988 of file place_partition.c.
| void reallocPartitions | ( | ) | 
Reallocates the partitions based on placement information.
Definition at line 138 of file place_partition.c.
Splits any large leaves within a partition.
Definition at line 150 of file place_partition.c.
| bool refinePartitions | ( | ) | 
Splits large leaf partitions.
Definition at line 126 of file place_partition.c.
| void repartitionFM | ( | Partition * | parent | ) | 
Fiduccia-Matheyses mincut partitioning algorithm.
UNIMPLEMENTED (well, un-C-ified)
Definition at line 435 of file place_partition.c.
| void repartitionHMetis | ( | Partition * | parent | ) | 
Repartitions the two subpartitions using the hMetis min-cut library.
The number of cut nets between the two partitions will be minimized.
Definition at line 258 of file place_partition.c.
| void resizePartition | ( | Partition * | p | ) | 
Recomputes the bounding boxes of the child partitions based on their relative areas.
Definition at line 1022 of file place_partition.c.
| ConcreteNet ** allNetsB2 = NULL | 
Definition at line 37 of file place_partition.c.
| ConcreteNet ** allNetsL2 = NULL | 
Definition at line 36 of file place_partition.c.
| ConcreteNet** allNetsR2 = NULL | 
Definition at line 35 of file place_partition.c.
| ConcreteNet ** allNetsT2 = NULL | 
Definition at line 38 of file place_partition.c.
| ABC_NAMESPACE_IMPL_START Partition* g_place_rootPartition = NULL | 
Definition at line 34 of file place_partition.c.