UCLA .blk File Format

Empty lines and lines starting with pound sign '#' are ignored by the parser. The first non-ignored line is reserved for format version to be checked by the parser (currently UCLA blk 1.0) followed by the name of the benchmark's author or creating software, along with the date, in free format, e.g.,

UCLA blk 1.0 Igor Markov <imarkov@cs.ucla.edu> 03/22/1999
The format version is followed by a four-line header

Regular partitions  : <positive integer>
Pad partitions      : <positive integer> 
Relative capacities : <yes/no> [<yes/no>...] 
Capacity tolerances : <float><switch> [<float><switch>...]
Colons are separated from words and numbers by spaces, and the options are interpreted as follows:

Relative capacities :
will partition capacities for all partitions be given in percent ?
yes
e.g., ``90'' later in the file would mean 90% of total module area specified in the .wts file (If no .wts file is given, all areas are assumed 1.0).
no
means that partition capacities are interpreted in absolute units, e.g. area; ``90'' may then be interpreted as ``90 area units''.

Capacity tolerances :
must be specified for all partitions
switch
can be empty, ``%" or ``b"; ``%" and ``b" cannot be separated from the preceding floating point number by spaces
%
means that tolerance is interpreted in percent of total module area specified in the .wts file or by default unit areas
b
gives tolerance in multiples of the biggest module area

Both capacities and tolerances can be repeated on the same line to achieve ``multi-capacities''. The number of ``multi-capacities'' in a given file (multiplicity) is determined by the number of Relative capacities : specifications. The number of Capacity Tolerances : specifications must match, as must the number of capacities of each non-pad partition (see below). Note that this requires ``multi-area'' files ``.wts'' with matching multiplicity.

The header is followed by an indicated number of regular partition and pad partition specifications; both types of partitions are numbered starting with zero.

Identifiers of regular partitions consist of a ``b'' (``p'' is taken by .nets files, so we think of partitions as ``blocks'' with ``bounding boxes'') and their ordinal numbers. Similarly, identifiers of pad partitions are prefaced with ``pb'' (``pad blocks'').

It is recommended that partitions be listed in ascending order of their numbers with pad partitions first.

Each ``partition line'' has the following structure (below ``999'' stands for positive integer)

<Partition Id> <Geom Type> <Geom Desc> : [<Capacities>]
Partition Id
can be of the form b999 or pb999

Geom Type
can be ``rect'' (for rectangle) with additional types possible (we have considered introducing type point, for example, but currently find it more convenient to represent points with rectangles).

Geom Desc
must be Xmin Ymin Xmax Ymax for rectangles. A point is specified by Xmin = Xmax, Ymin = Ymax.

Capacities
for pad partitions will be ignored by the parser. Regular partitions must have exactly as many [multi]-capacities as specified in the file header (see Relative capacities : ) and will be interpreted as absolute numbers or relative to the total module area. Relative specifications are given in percent (50 for 50%) and must sum up to 100% or more.

UCLA .fix and .sol File Formats

.fix and .sol file formats are essentially the same. The former is used to describe fixed node assignments (assuming not all nodes are fixed), while the latter describes assignments of all nodes to partitions in complete solutions.

Empty lines and lines starting with pound sign '#' are ignored by the parser. The first non-ignored line is reserved for format version to be read by the parser (currently fixed at UCLA fix 1.0) followed by the name of the benchmark's author or creating software, along with the date, in free format, e.g.,

UCLA fix 1.0 Igor Markov <imarkov@cs.ucla.edu> 05/22/1999 
The format version is followed by a four-line header

Regular Partitions : <positive integer>
Pad Partitions     : <positive integer>
Fixed              : <positive integer>
Colons are separated from words and numbers with spaces. Fixed pads and modules follow in indicated quantities, specified one per line in the form

<NodeName> : <Partition Id> [<Partition Id>...]
NodeName
can be of the form a999 or p999 (``999" means ``a positive integer") and must refer to a module or pad (terminal) declared in the .nets file

Partition Id
can be of the form b999 or pb999 and, if the geometry of partitions is important, will refer to a partition declared in a .blk file. If no .blk file is given, the parser can use the biggest partition id as a guess for the number of partitions of each type, OR can be given these data by the user.

There are no restrictions on fixing modules and pads in partitions (e.g. one can fix a module in a pad partition or vice versa, a pad can be fixed in several regular partitions as a result of terminal propagation, etc.), and fixing a module/pad in several partitions should be interpreted with an ``OR". In other words, the module can go to any of the partitions indicated. In particular, fixing a module/pad in all regular partitions results in a free module/pad and must have the same effect as not mentioning the pad/module in the .fix file at all.


File translated from TEX by TTH, version 1.1.