About Device Symbols
Device symbols are an important resource in the design creation process. Whether the user primarily works with the symbols provided with HYPERSIM® standard libraries, or creates his special libraries, the completeness and accuracy of this data has a major effect on the design flow. Library files generally outlast any one design and are used for many years across many projects. In addition, many HYPERSIM® features depend on customizing the standard library symbols. For these reasons, HYPERSIM® provides many features for creating and editing the symbols themselves and for maintaining symbol library files.
Creating a device symbol can involve much more than just drawing the graphics that represent the device. Many HYPERSIM® features depend on correct text attributes being associated with each symbol.
In this chapter, several terms are used to refer to the definition of a device symbol in a library. If the terms “symbol, part, part type or type” are used, we are referring to the definition of a device symbol in a library. The term symbol is used when we are primarily interested in the graphical representation of a device, but a symbol is always stored with related pin definition information and text attributes in the design file.
Working with Symbol Libraries
The symbols and related parameters for HYPERSIM® devices are stored in data files called symbol libraries. For each device type in a library the following data is stored:
General information on the type, such as number of pins, number inputs, number of outputs, type name, default attributes, position, orientation and type of each pin, etc.
- A picture representing the symbol for this part type.
- A polygon outlining the symbol, used for highlighting and erasing the symbol.
- An optional internal circuit definition.
Designs and Libraries
- When a new device is added to a design, all information needed to display and edit the device is saved in the design file. Only one copy is kept, regardless of how many times the symbol is used in the design. No further access to the library itself is required. This is done to ensure that a design file is always a complete entity and that future changes to a library will not inadvertently render an old design incorrect.
- However some designs need to be updated with some improvements in the source library. Conversely some modifications made on a device symbol need to be saved back in the library for further usage.
- For these reasons, HYPERSIM® records some information with each symbol about its source library and provides a number of features to allow transfer and updating of symbols between designs and libraries. Once a new symbol is added in a design (i.e. one that hasn’t been used in this design before) the library name, file path and "last modified" date are stored in the attribute fields LibName, LibPath and LibDate, respectively. These attributes are used by the "Options>Part Type>Update from Lib" command to locate the original library and determine if it has changed since we used it.
- In addition, whenever the definition of a device symbol is modified, a new checksum is generated. The checksum is used to verify the version of different instances of device symbol. This checksum cannot be set by the user, but it can be dumped in report using the $CHECKSUM script command (see Export_Script_Language). The checksum could be used to detect inadvertent modifications in the device.
- The following sections deal with the creation and maintenance of library files. Later parts of this chapter deal with editing the symbols themselves.
Creating a New Library
To create a new and empty symbol library file:
- Right-click anywhere in the Parts palette or use “Options>Libraries>Library Operations”. In the pop-up menu that appears, select the "New Library" command.
- In either case, a standard file save box will appear. Enter the desired name for the library and select a disk directory. The library is created and opened automatically so it appears in the Parts palette.
- If the library needs to be opened automatically at HYPERSIM® startup, see Automatically Opening Libraries at Startup.
Manually Opening a Library
To open any library file:
Right-click anywhere in the Parts palette or use “Options>Libraries>Library Operations”. In the pop-up menu that appears, select the "Open Library" command.
A standard file open box will appear. Locate the desired file in the usual way. The library will be opened and will appear in the Parts palette. A small amount of memory will be used by each open library file.
Libraries with the same file name, but with different locations, can be opened.
Automatically Opening Libraries at Startup
- Libraries can be opened automatically when the program starts.
- Right-click anywhere in the Parts palette or use “Options>Libraries>Library Operations”. In the pop-up menu that appears, select the "Auto-Open Libraries" command. This command will open “Auto-Open Libraries” window. To open a new library at startup, press Add button and specify the library on the standard Open File box. To remove a library from Auto-Open Libraries, select it in the list and press Delete button.
As mentioned on “Auto-Open Libraries” window, some keywords in the initialization file (see Libraries section in hyperworks.ini) are used to specify the default folder for initial libraries. By default, when HYPERSIM® is installed, a folder called HyLibs is created containing the initial libraries.
Manually Closing a Library
To close any open library file, either:
- Right-click anywhere in the Parts palette or use “Options>Libraries>Library Operations”, in the pop-up menu that appears, select the "Close Library" command.
- In either case, a list of the open library files will appear. The Shift and Ctrl keys can be used to select multiple files to be closed in one operation and then press the Close button. Alternatively, a simple double-click on the name of a single library is sufficient.
- Any information required for symbols used in any open designs will be automatically retained in memory. Once a symbol is added to the design, all information required has been copied into the design’s data. No further access to the library itself is required.
The "Lib Maintenance" command is available from the right-click menu in the Parts palette or use “Options> Libraries> Library Operations”.
Most of the commands appearing in this panel are self-explanatory. The Shift and Ctrl keys can be used for selecting more than one symbol in some operations.
|Delete||Deletes one or more symbols from the "Source Library". This operation cannot be undone.|
|Duplicate||Duplicates symbols within the "Source Library". The user will be prompted for each selected item to enter a new name. Names must be unique within a library.|
|Promote||Causes the selected items in the "Source Library" to be moved up the list.|
|Denote||Causes the selected items in the "Source Library" to be moved down the list.|
|Rename||Used to rename a single selected symbol in the "Source Library".|
|Sort||Sorts the entire list alphabetically.|
|Repair||Useful for fixing library problems.|
|Copy||This button is used to copy one more symbols from one library to another.|
|Compact||When parts are deleted from a library, the free space in the file is not automatically recovered. In most cases this is not a significant overhead. However, if a large percentage of the parts in a library have been deleted then the user may wish to compact the file. The modified library could be compacted in a new one. The previous library should be deleted after verifying the new library.|
|It is noticed that the items displayed in the Parts palette are always sorted alphabetically and the Promote, Denote and Sort procedures will not affect this order. These procedures change the order in which the symbols are indexed in the library file, which affects ordering in some internal operations.|
Update from Lib…
- This command is available from "Options> Part Type".
- The "Update from Lib…" command updates the definition of the selected device from its original source library. There are a variety of options available to determine how attributes and subcircuits are updated and how a source symbol definition is selected.
- Depending upon the options selected, this command may replace the entire internal circuit of the selected device. This cannot be undone!
- Selecting the "Update from Lib…" command in the "Part Type" sub-menu of the “Options” toolbar, causes the following box to be displayed:
The box that appears may be simpler than that shown above. Only options that are relevant to the specific device selected are shown.
The first option pop-up menu allows selecting how the source library will be located:
Select a new source library
|This selection will cause a sequence of two prompt boxes to be displayed requesting a library and then a part within the library. This new symbol will be used to update the selected device.|
|Update from original library||This selection will locate the original library that the device was derived from using information stored in its attribute fields. As long as the library can be located and a part with the same name can be located in the library, the user will not be prompted to locate a source.|
Next, the user needs to select which devices on the schematic which should be updated. This is only when two or more devices of the same type are available in the design. HYPERSIM® will detect similar devices through all hierarchy levels. The choices are:
|Update selected devices only||This option updates only the selected devices. This in effect redefines the device to be different from others that were originally derived from the same library part.|
|Update all devices of the same type||This option will update all devices in the design that were originally derived from the same part type. Note that this is determined by the internal logical linkage between the device instances and the part definition, not by the type name. If multiple type definitions got the same name in the design, this option will only update the devices linked to the same type as the selected one.|
|Update all devices with the same type name|
This option will update all devices derived from a type with the same name as the selected one, even if the definitions have become separated by some previous operation. This is specifically intended to remedy the case where a design inadvertently contains multiple definitions of similar devices.
|Keep all old values||This selection indicates to maintain all attributes values exactly as they are in the current instance, even if the new symbol definition has different values.|
|Keep all old values modified in the instance||This selection indicates to keep any attribute values in the device instance that was changed from the default value in the original definition. Any value that still has the default specified in the old symbol will be updated to the new default value in the new symbol.|
|Use all new non-null values||This selection indicates to use the value specified in the new definition, if there is one, but keep any old values that are not overridden by new ones.|
|Use all New values-all old values will be discarded|
In this case, the updated instance will have exactly the values in the new definition, even if they are empty. All attribute data present in the old definition will have been replaced by new values.
Two other options appear in the Attributes section:
|Recalculate attribute positions||This checkbox allows the user to determine whether displayed attribute values will be left at their old positions or recalculated to fit with the symbol. If the symbol has not changed in shape appreciably and the user has manually repositioned the displayed values, this option should be turned off.|
Update attributes only--symbol not changed
|If this box is checked, only attribute values are affected, the device symbol, pins, subcircuit and other aspects of the part type will not be affected.|
|In some cases, the symbol of the updated device may significantly different from the one used for its update. The distance between its pins may have changed. In such cases it can become very difficult for HYPERSIM® to readjust the signals to maintain correct signal paths and even connectivity. That is why in some cases it is preferable to check the last option.|
Internal Circuit Options
Finally, if either the existing instance or the definitions in the library, or both, have subcircuits, then the user needs to choose which circuit should be kept.
|Update the internal circuit from the library||If the selected device has an internal circuit, it is removed. If the new library part definition has an internal circuit, a new one is created.|
|Keep the existing internal circuit||Any existing internal circuit is kept and only the symbol is updated. Note that this selection is chose; the part definition in the design will be marked as having been changed since it is not the same as the library definition.|
The "Update from Lib" menu is disabled when the circuit is locked.
Save to Lib
The "Save to Lib" (from "Options>Part Type") command saves a type definition for the selected device to a library. The following box is displayed:
This table summarizes the options available:
|Save the symbol image its original orientation||Will save the device in its original orientation, as originally created.|
|Save the symbol rotated…||Will save the device as the device appears in the design.|
|Save internal circuit definition||If this box is checked, the internal circuit attached to the selected device will be saved with the part definition. It is very important to remember to check this box if the device has a subcircuit, since it will be not be saved to the library otherwise.|
|Save all attributes from the original definition only||If this option is selected, only attributes that were originally defined for the library part will be saved.|
|Save all attributes in the selected instance||If this option is selected, all the attribute values associated with the selected device will be made part of the saved library part.|
|Save positions of all visible attributes in the selected instance||If this box is checked, then a ".Pt" position field will be saved for each attribute that is visible on the instance and for which the associated ".Pt" field is defined in the design’s attribute table. This option allows saving the desired position of a visible attribute after adjusting it with the mouse pointer.|
|Part Name||The part name under which the new library entry will be saved. This is the name that appears in the library listing.|
|Open Library||Opens a library which is not listed.|
|New Library||This button will display a standard file save box for the creation of a new, empty library.|
|It is strongly recommended to create user libraries in a directory different from the default HYPERSIM® directory HyLibs.|