Andrew Caldwell, Andrew B. Kahng and Igor Markov |
A central piece of the CAD-IP Reuse initiative is The GSRC Bookshelf for Fundamental CAD Algorithms. The Bookshelf provides (i) a "one-stop shop" for the latest word in CAD algorithms research; (ii) an interoperable, plug-and-play library of implementations that facilitates methodology innovation and algorithm adoption by CAD organizations; (iii) implicit convergence for the research community to appropriate CAD data models for the 10-year horizon and beyond; and (iv) standards and conventions to facilitate accurate evaluation of new algorithmic ideas and technologies.
The Bookshelf offers benefits for the academic community as well. In particular, the Bookshelf seeks to enable (i) improved effectiveness, rigor, and impact of heuristic algorithm research in VLSI CAD, (ii) improved communication (and competition) between research groups, and (iii) more rapid adoption (and recognition) of research advances by industry.
To achieve these goals, the Bookshelf will contain
Of the above, only file formats have been available to the VLSI CAD community with various benchmarks released in last 15 years. Reference implementations are very rare, and their internal data structures are in no way standardized or commonly used.
The GSRC Bookshelf will consist of slots which contain entries. Slots correspond intuitively to "problems", e.g., performance optimization of a multi-terminal interconnect tree with topology design, repeater insertion, and driver/wire/repeater sizing degrees of freedom. Entries in a slot correspond to problem definition, standard data representations and parsers, reference implementations, etc. Key generic types of entries are listed below. Appendix A lists sample slots and Appendix B lists sample entries.
The Bookshelf project is currently underway and growing. Work has
begun on size slots and their "charter entries". Researchers from
four Universities across the US are actively contributing to this early
development effort. More contributors are needed, however. See the
instructions if you'd like to get
involved.
Currently, the Bookshelf is using an in-house, minimalistic build system
for code releases. The system
can be quickly installed on Solaris/Linux systems with a PERL
script and that is based on Makefiles, shared and static libraries
and a system of directories and symbolic links. This can be a part of
a larger arrangement that provides integrated regression testing,
semantic revisions and archiving.
"Canned" revision control systems such as RCS, CVS and SCCS can
be transparently used with such a build system for fine-grained backups
or as network-based source tree repositories. However, they are not
required at the moment.
Following are the proposed slots for the initial Bookshelf
effort. For current GSRC members, it is proposed that this
be accommodated within the scope of current efforts, particularly
for those T2 Circuit Fabrics team members who have clustered
themselves around "limits of current fabrics/methodology" (i.e.,
the logic-layout synthesis unification) and previously committed
to delivering pieces of a "common software base". Other possible
names -- outside the current GSRC team -- are also listed. We feel
that these investigators are doing leading-edge work in the
respective areas, and we hope that these investigators will be willing
to contribute by wrapping software and test cases,
contributing designs of Bookshelf slots, etc.
II. Key Types of Bookshelf Entries
To support collaborative and fast-moving research on optimization
heuristics, we distinguish the following basic types of entries.
III. Language/OS/compiler/packaging issues
An author of a Bookshelf entry that includes software must ensure
that users can compile, build, link to and run the software.
The main issues here are languages, operating systems, compilers,
build systems and code packaging.
IV. Steering, maintenance and responsibilities
The Steering Committee is, if necessary, be responsible for selecting
among multiple competing definitions for a given slot.
Appendix A. Initial Bookshelf slots