README 1.54 KB
Newer Older
Alan Mishchenko committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
/*===================================================================*/
//  
// 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