Next: Placement Block Directives
Up: The !assemble Command: Merge
Previous: Source Block Directives
Contents
Index
Placement Blocks can appear only within Source Blocks. Each Source
Block can have zero or more Placement Blocks. If no Placement Blocks
are given, all cells in the source file are written to output, and
Placement Block directives that may be in force are ignored. If the
Source Block specifies a CHD source, absent any Placement Blocks, the
hierarchy of the CHD's default cell will be streamed to output.
A Placement Block is used to indicate a specific cell within the
source file, which will be written to output. The Placement Block
directives specify actions to take, for example whether to process
just this cell or its hierarchy, whether to use flattening and/or
windowing, and the placement transform if the cell is to be
instantiated in a given TopCell.
As cells are written to output, a table is maintained to prevent
writing duplicate cell definitions. Each cell needed to represent the
cell hierarchies contained in the output file is written once only.
When different versions of the same cell are needed, such as with
different scaling, the names of the cells are altered to avoid a name
clash. This is accomplished by appending ``$N'', where
N is an integer which makes the new name unique, to the cell
names.
A new Placement Block, which can appear only within a Source Block,
will begin with either of the following keywords or options:
- Place cellname [placement_name]
(option: -c cellname)
The cellname, which must name a cell in the source file, will be
included in the output file. If a TopCell was given, the cell
will also be instantiated in the given top cell. The placement_name, if given, will replace cellname in output. In
either case, any cell name alteration presently in force will be
applied. If a Placement Block matches a previous block except for the
transformation parameters (Translate, Rotate, Magnify, Reflect), then if a TopCell was given, an
instance will be added with the new transform, but the cell
definitions are already in the output and will not be streamed. Thus,
in this case with no TopCell, there would be no addition to
output.
In a command line, the placement_name can not follow the cellname as in a file. Rather, there is a special option token
-ca placement_name
that can appear within the Placement Block which specifies the name
change.
- PlaceTop [placement_name]
(option: -ctop)
The PlaceTop line (-ctop option) is equivalent to a Place line (-c option), except that it will automatically
select the first top-level cell found in the source. It is equivalent
to the Place line (-c option) with the name of this cell
as the first (only) argument. This is convenient when the top-level
cell name is unknown. Unlike the keyword, the -ctop option does
not take a following placement_name, which must be given by a
-ca option within the Placement Block.
A Placement Block can be terminated with:
- PlaceEnd
(option: -c-)
This optional keyword will end the current Placement Block.
Subsequent lines will be accepted in the scope of the containing
Source Block. This keyword is optional, as it is implicit if a Place or PlaceTop keyword (-c or -ctop option) is
given. It is useful if one needs to add, modify, or reset Placement
Block directives in the Source Block scope, which will apply to
subsequent Placement Blocks.
A Placement Block may contain any of the Placement Block directives,
which control how the cell is treated in output. The transformations
apply only when a TopCell was given in the Header Block, and
control the location and orientation of the instantiation.
Next: Placement Block Directives
Up: The !assemble Command: Merge
Previous: Source Block Directives
Contents
Index
Stephen R. Whiteley
2024-09-29