|
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.