next up previous contents index
Next: Placement Block Directives Up: The !assemble Command: Merge Previous: Source Block Directives   Contents   Index

Placement Blocks

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:

(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 up previous contents index
Next: Placement Block Directives Up: The !assemble Command: Merge Previous: Source Block Directives   Contents   Index
Stephen R. Whiteley 2022-05-28