coriolis/flute/src/3.1
Jean-Paul Chaput 8f0a8e5a3a Added support for loading user defined global routing in Anabatic.
* New: In Hurricane::NetRoutingProperty, add and change the meaning
    of the following flags:
      - ManualGlobalRoute : now means that a global routing *trunk*
        is present, made of "gmetalh", "gmetalv" & "gcontact".
      - Manualdetailroute : added, get the former meaning of
        ManualGlobalRoute, that is, the detailed routing is
	already present for this net, but can be changed by the
	detailed router. Implies that it respect the Terminal,
	HTee & VTee structuration.
* New: Add Anabatic::Diskstra::loadFixedGlobal(), to account
    a manually global net into the edges capacities.
* New: In Anabatic::Edges::ripup(), exclude manually global routed
    segments from the ripup. Change the segment sorting function
    so that thoses segments are put in head of list (considered
    as "smaller").
* Change: In AnabaticEngine::setupPreRouteds(), now detect manual
    global routed and manual detail routed signals, and tag them
    accordingly.
* New: In AnabaticEngine::Configuration & Session, add proxies
    for the global routing layers ("gmetalh", "gmetalv", "gcontact").
* New: In Anabatic::Constants, add flags for global fixed and
    detail routed nets.
* Change: In KatanaEngine::updateEstimateDensity(), now use int64_t
    for flute coordinates.
* New: Add CRL::RoutingGauge::hasLayer(), to know if a layer is
    managed by the gauge (comparison by mask).
2020-09-30 11:55:39 +02:00
..
CMakeLists.txt Added Python for FLUTE (for fast RSMT in HFNS). 2020-09-30 11:52:22 +02:00
ChangeLog.txt Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
Makefile Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
POST9.dat Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
POWV9.dat Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
PyFlute.cpp Added support for loading user defined global routing in Anabatic. 2020-09-30 11:55:39 +02:00
Readme Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
bookshelf_IO.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
bookshelf_IO.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
dist.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
dist.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
dl.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
dl.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
err.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
err.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
flute-ckt.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
flute-net.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
flute.cpp Patch flute to be compatible with boost 1.65. 2019-03-04 12:34:43 +01:00
flute.h Added Python for FLUTE (for fast RSMT in HFNS). 2020-09-30 11:52:22 +02:00
flute_mst.cpp Patch flute to be compatible with boost 1.65. 2019-03-04 12:34:43 +01:00
global.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
heap.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
heap.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
license.txt Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
memAlloc.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
memAlloc.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
mst2.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
mst2.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
neighbors.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
neighbors.h Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00
rand-pts.cpp Added FLUTE library as a top level standalone tool in Coriolis. 2019-02-26 20:13:47 +01:00

Readme

-------------- FLUTE - Version 3.1 -----------------
                       by
                Chris C.-N. Chu
       Dept. of ECpE, Iowa State University
             Copyright (c) - 2005
  Iowa State University Research Foundation, Inc.
----------------------------------------------------

This package contains the following files:

 flute.c -- The rectilinear Steiner minimal tree and wirelength estimation
	    algorithm described in the ICCAD 04 and ISPD 05 papers with
	    some improvements described in TCAD 07 paper.
 flute.h -- The interface to use flute.
 flute_mst.c -- The net breaking and merging techniques described in the
	    VLSIDAT 08 paper.
 dist.[ch], dl.[ch], err.[ch], heap.[ch], mst2.[ch], neighbors.[ch],
	    global.h -- Utility functions used by flute_mst.c
 POWV9.dat -- The lookup-table of optimal POWVs up to degree 9.
 POST9.dat -- The lookup-table for optimal Steiner trees up to degree 9.
 flute-net.c -- A program to evaluate the wirelength of a net. It takes
	    input from stdin as a list of points.
 rand-pts.c -- A program to generate a list of random points.
 flute-ckt.c -- A program to find FLUTE and half-perimeter wirelength
	    of a circuit in bookshelf format.
 bookshelf_IO.[ch] -- Functions for flute-ckt.c to read bookshelf files.
 memAlloc.[ch] -- Functions for flute-ckt.c to allocate memory.
 ibm01/ibm01.* -- ibm01 bookshelf files that can be read by flute-ckt.c
 license.txt -- License agreement.
 ChangeLog.txt
 Makefile
 Readme

To run the programs, first do a 'make'. POWV9.dat and POST9.dat is assume
to be in the current directory.  Some example commands:

 rand-pts | flute-net
 rand-pts 20 | flute-net	    // 20-pin nets
 rand-pts -r 20 | flute-net	    // randomized
 flute-ckt ibm01 ibm01.aux ibm01/ibm01.pl