54 int maxConnections = 1;
61 bool incremental =
false;
88 p = ++cell_numTerms[c];
90 cell_terms[c][
p-1] = net;
95 printf(
"QMAN-10 : \t\t%d large nets ignored\n", ignoreNum);
105 sizeof(
float)*maxConnections);
107 sizeof(
int)*maxConnections);
113 printf(
"QMAN-10 :\tperforming incremental placement\n");
139 last_index = nextIndex;
140 for(n=0; n<cell_numTerms[c]; n++) {
141 net = cell_terms[c][n];
145 if (c2 == c)
continue;
146 if (seen[c2] < last_index) {
150 seen[c2] = nextIndex;
187 int numConstraints = 0;
193 int next_index = 0, last_constraint = 0;
194 bool isTrueConstraint =
false;
201 while(stackPtr >= 0) {
202 p = stack[stackPtr--];
207 stack[++stackPtr] =
p->m_sub1;
208 stack[++stackPtr] =
p->m_sub2;
218 cgx =
p->m_bounds.x +
p->m_bounds.w*0.5;
219 cgy =
p->m_bounds.y +
p->m_bounds.h*0.5;
220 COG_rev[cogRevNum].
x = cgx;
221 COG_rev[cogRevNum].
y = cgy;
222 COG_rev[cogRevNum].
part =
p;
223 COG_rev[cogRevNum].
delta = 0;
237 for(m=0; m<
p->m_numMembers; m++)
if (
p->m_members[m]) {
238 cell =
p->m_members[m];
242 isTrueConstraint =
true;
250 if (totarea == 0.0) {
251 isTrueConstraint =
false;
253 if (isTrueConstraint) {
256 last_constraint = next_index;
259 next_index = last_constraint;
265 return --numConstraints;
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
ConcreteCell ** g_place_concreteCells
ConcreteNet ** g_place_concreteNets
float getCellArea(const ConcreteCell *cell)
ABC_NAMESPACE_IMPL_START int g_place_numCells
void solveQuadraticProblem(bool useCOG)
Calls quadratic solver.
ABC_NAMESPACE_IMPL_START qps_problem_t * g_place_qpProb
int generateCoGConstraints(reverseCOG COG_rev[])
Generates center of gravity constraints.
void constructQuadraticProblem()
Constructs the matrices necessary to do analytical placement.
float splitPenalty(int pins)
Returns a weight for all of the edges in the clique for a multipin net.
ABC_NAMESPACE_IMPL_START int g_place_numPartitions
Partition * g_place_rootPartition
void qps_init(qps_problem_t *p)
void qps_solve(qps_problem_t *p)
void qps_clean(qps_problem_t *p)
struct qps_problem qps_problem_t