The InUseAlias variable, if set (with the !set command or equivalent buttons), enables utilization of the alias file when reading from an archive. Similarly, the OutUseAlias variable enables utilization of the alias file when writing to an archive. These variables have corresponding buttons in the panels found in the Convert Menu.
If the variable is simply set as a boolean, i.e., to no value, the alias file will be read before a read or write operation, and created or updated if necessary after the operation completes. If the variable is set to a word starting with `r' (case insensitive), then the alias file will be read before the operation and used during the operation (if it exists), but will not be created or updated after the operation completes. If the variable is set to a word starting with `w' or `s' (case insensitive), the alias file will not be read before an operation, but will be created or updated after the operation completes.
If enabled, after a read/write operation on an archive file, an alias file may be created, or updated if it already exists. This file will be created in the same directory as the archive file, where it must remain in order to be found. The name of the alias file is the same as that of the archive file, with ``.gz'' stripped (if present) and ``.alias'' appended.
The alias file consists of lines with two tokens: the first token is a cell name found in the archive file, and the second token is the name of the cell as known to Xic, which will be different from the first token (i.e., cell names that are unchanged do not appear). The file will be used, if it exists and the operation is enabled, to translate cell names to and from the archive format, as the file is written or read. The alias file will be written or updated, if necessary and the operation is enabled, after an operation that reads or writes an archive file. No file is produced unless a name was changed.
On reading or writing an archive file, a name will potentially change if any of the cell name aliasing features are enabled. This includes enforcement of the GDSII standard for cell names when writing GDSII. Any name change will be indicated in the log file. If a name changes, the alias file will be updated, if updating is enabled. The sense of the substitutions from the alias file is reversed when reading vs. writing.
It is not an error if no alias file exists.
When the alias file utilization is enabled, one should be aware that the alias file is controlling cell naming when converting to and from that file, since occasionally this can lead to confusion. The values in the alias file have precedence over other directives, such as case changes. For example, suppose that an archive file is created with case mapping applied. This will produce an alias file, if updating is enabled. If the case conversion is then turned off, and the write operation repeated to the same file name with alias file reading enabled, the cell names will still be case-converted, due to the alias file. Similarly, when reading the archive file produced, the cell names will be back-converted by the alias file. If the translations are no longer wanted, the switches controlling alias file usage should be turned off, or the alias file deleted.
Note that it is possible for the user to hand edit the alias file to produce an arbitrary cell name mapping. For example, it might be used to convert all cell names in a design to nondescriptive random strings before sending a design file to another site, to mask the function of the circuitry.