Why and When Use New Formats?
Why and When Use New Formats?
Several people have asked how it is decided which existing formats
are chosen as 'standards' for the bookshelf, and when to define new
ones. Primarily, the people involved in defining the slot
are making these decisions. We are encouraging a uniform
`look-and-feel' and a period of public discussions in the
bookshelf-devel list before adopting a (new or existing)
format as a standard for a particular slot.
As a sample of the process, the following were examined when deciding
on the placement format:
a) timberwolf
b) edif
c) LEF/DEF
d) .netD for netlist specification
e) a new format.
a) timberwolf is a variable die format, and does not specify enough layout
information for fixed-die placement.
b) edif provides a more complete and user-friendly specification --
in particular, it allows partial specification. However,
it's monolithic nature (everything in one file) does not allow
for _incremental_ specification (take a partitioning
benchmark and add, in a separate file, layout information to
create a placement benchmark). Additionally, the 1 file format
does not allow for re-use with other slots.
c) LEF/DEF contains everything one could possibly want to specify...
it is overly detailed for most uses and difficult to parse
in practice. Additionally, all the drawbacks of edif also apply.
d) .netD as a netlist specification -- aspects of the format are
counter-intuative and error prone. Additionally, it does not
support cell names, pin addressing, etc.
e) a new format was decided upon. It draws upon (hopefully the best of)
all of the above, adds incremental specification, and is
especially designed for reuse in other slots. For instance,
the formats for partitioning are as simple as .netD -- together
with layout specification (a separate file) make the placement
format. The formats are still being refined, and comments
are welcome.
-andy, igor and andrew