/*===================================================================*/
//  
// GORDIAN-like placement package
//
//              Aaron P. Hurst (ahurst@eecs.berkeley.edu)
//              Addl code from Philip Chong (pchong@cadence.com)
//              hMetis partitioner (www.cs.umn.edu/~metis)
//
/*===================================================================*/

1. Requirements

An i386 Linux system (though others will certainly work with some tweaks).
A standard ANSI C development platform.  

The following are optional, but useful:

- hMetis partitioner.  This can be obtained from (www.cs.umn.edu/~metis)
    Place (links to) the files "libhmetis.a" and "libhtmetis.h" in this directory.
    Otherwise, #define NO_HMETIS in the file "place_gordian.h"
- Java SDK, if compiling BookshelfView is desired.
- Perl, if additional script utilities are desired.

2. Descriptions of contents:

place_base.h contains the basic data structures and "external" API.
place_gordian.h contains the "internal" API and configuration options.

There are also several utilities:

i) place_test 

Reads a netlist description in GSRC Bookshelf format, performs global placement,
and rewrites the placement file.  An example usage:

./place_test ac97_emap.nodes ac97_emap.nets ac97_emap.pl

ii) BookshelfView

A simple Java GUI to view the resulting placements.  It has been tested with
Java 5 and 6.  Usage:

java BookshelfView ac97_emap.nodes ac97_emap.pl

iii) hpwl

A perl script to print the half-perimeter wirelength of a placement.  Usage:

./hpwl ac97_emap.nets ac97_emal.pl

