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

Source Blocks

The Source Blocks specify an input file or CHD, and provide directives that are active when the source is read. The Source Block may contain Placement Blocks, which identify individual cells or cell hierarchies to be read.

The same file might be used in more than one Source Block, if the directives, such as cell name modification, are different in the two blocks.

The Source Blocks start with the following keyword:

Source filename
(option: -i filename)
This line or option represents the start of a Source Block for the given input file. The file must be in one of the supported archive formats, and the format is recognized automatically, so there is no name suffix requirement as with the output file name.

The absence of any Placement Blocks defined in the Source Block implies that all cells found in the file will be read.

The filename can also be the access name of a CHD which already exists in memory. In this case, the CHD is used for access, and cell names given in Placement Blocks must include any cell name mapping which is used in the CHD.

Further, the filename can be that of a CHD saved to disk, such a with the Save button in the Cell Hierarchy Digests panel. In this case, the CHD will be read into memory, and used as the source.

In any case where a Source Block contains a Placement Block, a temporary CHD will be created anyway if one is not given, so explicitly naming the CHD may save time/space in some cases.

In cases where a CHD is named, but no Placement Blocks are given, the hierarchy of the CHD's default cell will be streamed. The default cell is the first top-level cell found in the file, or can be configured into the CHD.

The Source Blocks can be terminated with:

EndSource
(option: -i-)
This optional keyword or option terminates the present Source Block. Lines or text tokens that follow, up to another Source keyword or -i option, are taken in the context of the Header Block. Thus, directives can be set, modified, or reset between Source Blocks, and will remain in force (in the Header Block context) until reset or modified between subsequent Source Blocks. This keyword is optional, as it is implicit if another Source line or -i option is given. It is required only if one wishes to change the directives in the Header context for subsequent Source Blocks.

Within the Source Block, one may find Placement Blocks, Source Block directives, and Placement Block directives.


next up previous contents index
Next: Source Block Directives Up: The !assemble Command: Merge Previous: Header Block   Contents   Index
Stephen R. Whiteley 2022-05-28