diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2008-01-30 08:01:00 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2008-01-30 08:01:00 -0800 |
commit | 4d30a1e4f1edecff86d5066ce4653a370e59e5e1 (patch) | |
tree | 366355938a4af0a92f848841ac65374f338d691b /src/phys/place/place_qpsolver.h | |
parent | 6537f941887b06e588d3acfc97b5fdf48875cc4e (diff) | |
download | abc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.tar.gz abc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.tar.bz2 abc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.zip |
Version abc80130
Diffstat (limited to 'src/phys/place/place_qpsolver.h')
-rw-r--r-- | src/phys/place/place_qpsolver.h | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/src/phys/place/place_qpsolver.h b/src/phys/place/place_qpsolver.h deleted file mode 100644 index 08771d6b..00000000 --- a/src/phys/place/place_qpsolver.h +++ /dev/null @@ -1,140 +0,0 @@ -/*===================================================================*/ -// -// place_qpsolver.h -// -// Philip Chong -// pchong@cadence.com -// -/*===================================================================*/ - -#if !defined(_QPS_H) -#define _QPS_H - -#include <stdio.h> - -#if defined(__cplusplus) -extern "C" { -#endif /* __cplusplus */ - - typedef float qps_float_t; - - typedef struct qps_problem { - - /* Basic stuff */ - int num_cells; /* Total number of cells (both fixed and - floating) to be placed. */ - int *connect; /* Connectivity array. Must contain at least - num_cells elements with value -1. The - entries which precede the first element - with value -1 are the indices of the cells - which connect to cell 0; the entries - which lie between the first and second - elements with value -1 are the indices of - the cells which connect to cell 1; etc. - Example: cells 0 and 1 are connected - together, and 1 and 2 are connected as - well. *connect = { 1, -1, 0, 2, -1, 1, -1 - }. */ - qps_float_t *edge_weight; /* Same structure as connectivity array, but - giving the weights assigned to each edge - instead. */ - qps_float_t *x; /* num_cells element array which contains the - x-coordinates of the cells. This is used - for the initial values in the iterative - solution of floating cells, and for the - fixed location of fixed cells. */ - qps_float_t *y; /* num_cells element array of - y-coordinates. */ - int *fixed; /* num_cells element array with value 1 if - corresponding cell is fixed, 0 if - floating. */ - qps_float_t f; /* return value for sum-of-square - wirelengths. */ - - /* COG stuff */ - int cog_num; /* Number of COG constraints. */ - int *cog_list; /* Array indicating for each COG constraint - which cells belong to that constraint. - Format is similar to c array: there must - be at least cog_num elements with value - -1. The entries of cog_list preceding the - first -1 element are the indices of the - cells which belong to the first COG - constraint; etc. Example: cells 0 and 1 - belong to one COG constraint, cells 4 and - 5 belong to another. *cog_list= { 0, 1, - -1, 4, 5, -1 }. */ - qps_float_t *cog_x; /* cog_num element array whose values are the - x-coordinates for the corresponding COG - constraints. */ - qps_float_t *cog_y; /* cog_num element array whose values are the - y-coordinates for the corresponding COG - constraints. */ - qps_float_t *area; /* num_cells element array whose values are - the areas for the corresponding cells; - only useful with COG constraints. */ - - /* Loop constraint stuff */ - int loop_num; /* Number of loop constraints. */ - int *loop_list; /* Array with list of cells for each loop - constraint. Format is similar to cog_list. - */ - qps_float_t *loop_max; /* loop_num element array indicating maximum - distance for each loop. */ - qps_float_t *loop_penalty; /* loop_num element array indicating penalty - for each loop. */ - int loop_k; /* Current iteration for loop optimization. */ - int loop_done; /* Done flag for loop optimization. */ - int loop_fail; - - /* max_x/max_y stuff */ - qps_float_t max_x; /* max x location; only used in - constrained optimization. */ - qps_float_t max_y; /* max y location; only used in - constrained optimization. */ - int max_enable; /* Set to 1 after qps_init() to enable - max_x/max_y. */ - int max_done; /* Done flag for max optimization. */ - - /* Private stuff */ - int *priv_ii; - int *priv_cc, *priv_cr; - qps_float_t *priv_cw, *priv_ct; - int priv_cm; - int *priv_gt; - int *priv_la; - int priv_lm; - qps_float_t *priv_gm, *priv_gw; - qps_float_t *priv_g, *priv_h, *priv_xi; - qps_float_t *priv_tp, *priv_tp2; - int priv_n; - qps_float_t *priv_cp; - qps_float_t priv_f; - qps_float_t *priv_lt; - qps_float_t *priv_pcg, *priv_pcgt; - qps_float_t priv_fmax; - qps_float_t priv_fprev; - qps_float_t priv_fopt; - qps_float_t priv_eps; - int priv_pn; - qps_float_t *priv_mxl, *priv_mxh, *priv_myl, *priv_myh; - int priv_ik; - FILE *priv_fp; - - } qps_problem_t; - - /* call qps_init() as soon as the qps_problem_t has been set up */ - /* this initializes some private data structures */ - extern void qps_init(qps_problem_t *); - - /* call qps_solve() to solve the given qp problem */ - extern void qps_solve(qps_problem_t *); - - /* call qps_clean() when finished with the qps_problem_t */ - /* this discards the private data structures assigned by qps_init() */ - extern void qps_clean(qps_problem_t *); - -#if defined(__cplusplus) -} -#endif /* __cplusplus */ -#endif /* _QPS_H */ |