About the Symbol Editor
Symbols are created and edited using the device Symbol Editor tool (from device right-click menu). In addition to drawing symbols, the device symbol editor can also be used for general graphics (e.g. title blocks or simple mechanical drawings) for use on HYPERSIM® schematics. It provides a complete, object-oriented drawing environment with standard drawing tools, as well as specific functions tailored for symbol creation.
One of the most useful applications of the Symbol Editor is the customization of the subcircuit symbols. When a subcircuit is created the first time, HYPERSIM® uses a default rectangular symbol. You can right click on the symbol and select "Edit Symbol" to open the Symbol Editor window and modify the device drawing. A device that is originally given the default symbol:
The Symbol Editor has its own window in HYPERSIM®. It also has its own ribbon showing the Part name of the edited device.
Using the Clipboard in Device Symbol Editor
The standard Edit menu commands Cut, Copy and Paste can be used to move objects inside and between the symbol editor window, HYPERSIM® circuit windows, and other applications. Some
types of graphic objects, notably bitmaps, created by other programs are not supported by the current version of the symbol editor and will not appear if pasted into the editor’s drawing area.
Editing Existing Parts (Devices)
Editing an existing part in a library
- Right-click on the desired item in the Parts palette, then select "Edit Part" from the pop-up menu.
- In response to either of these operations, a copy of the symbol definition is loaded into a device symbol editor window. No changes to the source library will be made until you save the symbol
back to its original library.
- Editing a symbol in a library does not automatically update designs that have used that symbol. You must use the Update from Lib command to perform updating actions on already placed
devices. You can decide to save an edited part under a new name using the "File>Save As" command.
Editing an existing part in the design
- To edit the symbol of a device that is already placed in a schematic without modifying the library it came from, right-click on the device and select the "Edit Symbol" command. This actually saves the symbol to a temporary library, and then opens it in the symbol editor. You can then make any desired changes to the symbol and close the editor. At that point, you will be asked to confirm that you wish to replace the original symbol, and, if applicable, any others of the same type in the schematic.
- This process is similar to using the "Update from Lib" command to update an existing device instance from an updated library and has many of the same options.
- You can decide to save an edited part under a new name using the "File>Save As" command.
- If you decide to move from the Symbol Editor window back to the design window without closing the Symbol Editor window or saving (“Symbol Editor>File>Save” or Ctrl+S), then the connection with the Symbol Editor will be lost and any changes in the Symbol Editor will not be reflected back to the edited device. Going back to an opened Symbol Editor window after saving, will not reestablish the connection with the device drawing.
- The normal practice is to always close the Symbol Editor window if it is desired to keep the changes and reopening the Symbol Editor window for subsequent changes.
The most important techniques for manipulating existing subcircuit pins and for creating subcircuits from scratch through the "Auto Create Symbol" command (Operations toolbar), are presented in “How to create a subcircuit” in the software help section.
Creating a new HYPERSIM® Part
In addition to redefining subcircuits, and existing parts, you can create new HYPERSIM® devices. This is available through the HYPERSIM® UCM block.
The editor window is shown below. It is used here to modify a subcircuit based device appearing in a circuit.
In addition to the main editor window, there are two new panels on the right: Symbol Gallery and Symbol Pins. These panels can be turned on and off using the Panels toolbar of the “Symbol Editor”.
At the top of the window, the toolbar buttons provide a quick access to various functions.
Once an object is placed, it can be clicked upon to be selected and modified. When an object is clicked, it shows selection handles as in standard drawing applications.
You can click-hold and drag the handles to resize objects. You can click anywhere on an object, hold and move the object.
It is in most cases preferable to increase the zoom level and change the Grid settings for improved precision drawing. The Grid settings can be changed from "Operations>Grids". The Snap option can be reduced to one pixel.
Each object placed on the editor pane also has a right-click menu. The right-click menu for drawing objects is shown below.
Most of the above right-click commands are self-explanatory. The "Bring to Front" and "Send to Back" commands are for ordering overlapping objects to get the desired appearance.
The line and fill color settings are explained in Line and Fill color settings.
Symbol Date Stamping
Whenever a symbol in a library is modified, an attribute field called DateStamp.Symbol is automatically updated with the current time. Since all attributes associated with a symbol are copied into a design when a symbol is used, this can be used to determine whether a symbol has been modified since it was used.
The date stamp is stored using the system’s internal integer date format, that is, an unsigned integer representing the number of seconds since January 1, 1970. To create a more human-readable date value, the Export tool has date conversion functions available.
The following operations cause the DateStamp.Symbol field to be updated in the part definition:
- Saving the symbol using a Save or Save As command in the device symbol editor.
- Using the "Save to Lib" (“Options> Parts Type” toolbar) command to save a part from a schematic to a library with the "Use attributes in selected instance" option turned on. If this option is off, the date stamp is not updated since the part is not being modified.
- Saving parts to a library using the Circuit to Library command.
Operations that simply copy the symbol definition intact, such as the Copy button in the “Library Maintenance” box, do not change the date stamp.
The Grids command (Operations) allows you to specify the visible grid spacing and the snap-to grids for objects drawn using the drawing tools.
|Visible (grid)||This check box determines whether visible grid lines are shown in the drawing workspace of the symbol editor window. The spacing between these grid lines is determined by the value in the "Grid" field.|
|Snap on||This check box determines whether the corners of objects made with the drawing tools are moved to the nearest snap-to grid point.|
|Grid (Spacing)||This number determines the spacing between the visible grid lines. The units are in screen dots at the default zoom level.|
|Snap (Spacing)||This number determines the spacing between snap-to points for the drawing tools (not including pins). This does not affect objects that have already been placed. The units are in screen dots at the default zoom level.|
|Pin Grid||This number determines the snap-to grid for device pins.|
Line and Fill color settings
The line and fill color setting panels have a "Color Override" option. This option allows locking object color from user or script changes in the design window. In some cases, depending on the device data handling methods, the device color may change through scripts to reflect some device properties. If the device color settings are not overridable, then the script action will be cancelled.
Working with Pins
Once you have placed a pin on the symbol, you will see that an entry in the pin list has been added for each pin.
Pins are listed depending on the order in which you placed the pin symbols. You can check the association of names to pins by clicking on an item in the list and observing which pin on the drawing is highlighted.
To change pin ordering in the pin list, click and drag the pin to the desired position. Most of built-in HYPERSIM® devices require that pins appear in a certain order in the output Netlist. Unless you
modify attributes or apply special scripts, this order is determined by the order in which the pins are placed on the symbol.
You should never change settings, delete pins or modify pin ordering for built-in HYPERSIM® device libraries unless the device documentation is explicitly allowing such actions.
To change the name of a pin:
- Double-click on the pin item in the list
- Enter the new name
- Press the Enter key to terminate editing
Although, the actual names given to the pins are not critical, it is a good idea to use meaningful names for these reasons:
- These names will be seen in the Schematic tool's (design page) pin info dialog.
- They can be extracted in Netlist output if needed.
- They are used when binding pins to ports in subcircuits to visually recognize transmitted signal functions.
- In the case of bundle internal pins, they are used when connecting bundle pins.
It is not allowed to have two pins with the same name.
Pins listed, but not attached to the device are shown in red. Normally all pins must be attached and red colored pins must be reused (attached) or deleted.
You can also right click on a pin in the pin "Pin List" panel for more options.
In addition to setting pin names, the pin list has a dropdown menu for setting a pin type (function). This is in relation to the type of signal (see Device pin types).
In a device symbol editor window, pins exist both in the graphic representation of the symbol and in the pin list. They have to be deleted from both places before they are completely removed from the part definition.
To remove a graphical pin from the symbol, simply select it by clicking on it and delete it with the Delete key in the usual way. Note that this does not remove the corresponding entry from the pin list and from the device. If you wish to replace the pin, for example to use a different orientation, you can simply select the item in the list and place the appropriate pin graphic from the palette.
To remove the selected pins in the pin list and their associated graphic pins:
- Select the pin or pins in the pin list that you wish to delete. You can select more pins by holding the Ctrl or Shift keys while clicking in the list.
- Hit the Delete key on the keyboard. It will display a confirmation box before proceeding to delete the pin entries.
Adding sequential pin names
The basic pin placement procedure requires that the pin name be entered manually for each pin, which can be rather tedious for large numbers of sequentially numbered pins. To solve this problem, the "Add Pins" (“Operations” toolbar) command allows you to enter a sequence of names in a format similar to that used for bundle breakout creation and for the "Auto Create Symbol" command. These pins are added to the pin list, but not placed on the symbol. After the pins have been added to the pin list, you can place the pins sequentially on the graphic with no further typing required.
You can also use the "Auto Create Symbol" command to specify the pin names and auto-generate a rectangular symbol in one operation.
Pin names may be entered into the "Add Pins" box. The pins are created and merged with the contents of the pin list when the Enter key is pressed or when the Add button is clicked. The "Add Pins" command does not create graphic pins, it only adds pins to the pin list.
The created pins are merged with the names in the pin list. If a pin with the same name already exists in the list, then it may be reordered to appear in the same order as in the "Add Pins" box.
Here are the rules for how a list of pin names is entered:
- Pin names may be up to 16 characters long.
- Normal pin names (that is, not bundle pins or bundle internal pins) may be specified as individual names, e.g.: A B C D, or as sequences, e.g.: A0..3. After each pin name or pin name sequence an optional pin number specification is allowed. The sequence A0..3 defines pins A0, A1 and A3. It is allowed to enter several sequences by separated sequences with a space.
- Bundle pin names are denoted by a name followed by “[...]”. Bundle pins do not need to have internal pin names defined and may not have pin numbers. Bundle internal pin names must appear between a “[” and a “]”. They have the same format as normal pin names and may have pin numbers. Internal pin names may be added without adding a bundle name pin by not placing a bundle name in front of the “”. For example, “[A B C]” adds the internal pin names "A", "B", and "C" to the pin list.
- The pin function (input, output, etc.) can be specified by placing a “|” character followed by a letter denoting the type. All following pins will have the specified type until another “|” specification is found.
The allowable pin type characters are:
|For example: “|I CLK,,D0..7 |O Q0..7”|
Placing a Bundle Pin
Bundle pins allow bundles to be connected to the part. A bundle pin's functionality is determined by the internal pins it contains. These can be specified when the symbol is created, or modified later on the schematic using the "Bundle Pin Info" command described in Changing Bundle Pin Connections: Bundle Pin Info. It is recalled that it is not allowed to modify built-in device bundle pins, since such actions will result in data corruption.
To add a bundle pin to a symbol you need to use the "Add Pins" command to add the bundle pin to the pin list and specify its bundle internal pins.
In this example:
- The bundle pin BUN is added with internal pins Trig and Reset.
- The bundle pin can be placed first and then you can right click on the pin in the "Pin List" panel and add pins. Bundle pins are marked in the "Pin List" with a bolder pin icon and will be followed by their internal pins.
Pin right-click menu
The pin right-click menu is used to access to several functions for setting pin data and standard editing tools.
The "Show Pin Name" command shows the pin name near the pin. The "Unlink Name" command allows detaching the pin name from the pin and moving it to another location.
The Properties command is similar to double-clicking on a pin.
Setting Pin Attributes
The Attributes command from the pin right-click menu or "Options> Pin Attributes" opens the panel:
This is similar to entering pin attributes in the design drawing. It allows setting and saving attributes with the device. Attributes defined while in the device symbol editor will be associated with the part in the library if the part is edited from the library. These will become the default attributes for the part when it is placed in a circuit.
When the Phase attribute is not set, it means that the connected signal does not have a forced number of phases (see Signal Line Type).
- If it is required to force a 1-phase (general) signal, then this attribute must be given the value "=1"
- If it is required to force a 3-phase signal, then this attribute must be given the value "=3"
The 1-phase setting forces a 1-phase pin and the 3-phase setting forces a 3-phase pin. The control input and output pins can be only 1-phase (general signal).
Setting Part Attributes
To edit the attributes associated with a part select the "Part Attributes" command in the Operations toolbar. To edit the attributes associated with a pin, select a pin in the pin list and then select the Pin Attributes command from the Operations toolbar. The only visible difference between the part attribute dialog and the pin attribute dialog is the addition of "Next" and "Previous" buttons at the bottom of the window.
Attributes defined while in the device symbol editor will be associated with the part in the library if the part is edited from the library. These will become the default attributes for the part when it is placed in a circuit.
Only attribute fields that have a value are stored with the symbol. When you save the symbol to a library, any fields with null values are stripped off to save storage. This has the side effect that you cannot create a "place holder" field definition in a symbol for future use without putting a value in it.
Attribute Field Definitions in Symbols and Designs
In HYPERSIM®, symbol definitions are completely independent of any particular design or library file. For this reason, symbols carry around their own definitions of the attribute fields that are associated with them. By default, when you create a new symbol, you see the attribute definitions for the design that is currently open, or a default set if no design is open. However, the "New Field" button in the "Part Attributes" box allows you to add new field definitions that affect only this part definition. This operation does not automatically add the same field to the current design.
- When you place a symbol in a design for the first time, the program compares the attribute fields defined in the symbol to those defined in the design's symbol table. If there are any new fields in the symbol, you will be asked if you wish to add them to the design's table. Your choices in this case are to either:
- Click the OK button and allow the program to automatically add the field definitions to the design's attribute table. The program will attempt to make reasonable settings for the maximum length, default visibility and other settings, based on the current value.
- You can click Cancel to stop the device placement and add the fields manually to the design's table using the "Define Attribute Fields" command. In general, this is preferred, since it gives you more control over the option settings for the field.
Some visibility options appear in this version of the attributes box that are different from what you will see on a device placed in a schematic:
|Always Visible||This setting indicates that the selected field should always be made visible on the schematic when the device is placed, regardless of the visibility setting for this field in the target design. This setting does not prevent the field from being removed after the device is placed, it just sets the initial state.|
|Default Visibility||This setting indicates that we wish to make the field visible only if it is defined as Visible by Default in the design in which it is placed.|
|Never Visible||This indicates that the field value should not be displayed when the device is placed, regardless of the design's Visible by Default setting for this field. This does not prevent the value from being displayed later, it just sets the initial state.|
You can set the default visibility independently for each attribute field defined in a design. This is done by selecting the "Define Attribute Fields" command (“Options>Design”) menu and setting the "Visible by default" option as desired for each field.
For more information on how to create and modify attributes see Entering and Editing Attribute Data - Basic Procedure.
This command is available from the Operations toolbar and will help you generate a basic rectangular-box symbol.
Subcircuit and Part Type command
This dialog allows you to select among several different options:
|Create a subcircuit symbol, but don't store a circuit with it yet||This is the default. It indicates that the part being made has no associated subcircuit, but it doesn't rule out that a subcircuit may be attached later by the schematic capture section of HYPERSIM®.|
|Create a subcircuit symbol and select an open circuit to attach to it||This option prompts for an open circuit to associate with the part being created as its subcircuit. The circuit definition is saved with the part in the library. This operation also imports the circuit's port interface so that the names of the ports appear in the list and you can place the corresponding graphical pins on the symbol.|
|Import the port list from an open circuit, but don't attach the circuit||This is similar to the No Subcircuit option. No subcircuit becomes associated with the part, but a port interface is extracted from a circuit for use with the part. Selecting this option prompts you to pick an open schematic circuit. The port names are read from the circuit without attaching the circuit to the part. Like the above option, this doesn't stop a subcircuit from being attached later. Since a subcircuit wasn't attached to the part, the port interface is only associated with the part for the length of the editing session.|
|Set to Symbol Only type, never as a subcircuit||This option is like the No Subcircuit option except it doesn't allow the schematic capture part of HYPERSIM® to associate a subcircuit with the part in the future.|
|Set to primitive type. Must be used with caution!||This option is used to create special HYPERSIM® part types such as pseudo devices (power, ground and port connectors). The primitive type options must only be used with a clear understanding of the effect they will have on program operation.|
There are some subcircuit options in the lower part of the dialog:
|Delete existing pins before adding pins defined in subcircuit||This option is only enabled when the selection made above results in a port interface being imported. If this box is checked, when the "Done" button is pressed all of the old pins in the pin list will be deleted. This allows a new port interface to be brought in without any conflicts with the existing pin list. If this option wasn't checked then port names would be merged with the names in the list. Duplicate pin names and their related properties remain unchanged, except they are now associated with the new port. Unmatched pin names in the pin list remain exactly the same.|
|Lock subcircuit by default so the subcircuit can't be opened||This option has the effect of saying, "Yes. There is a subcircuit, but in general you don't want to go into it". This causes the schematic capture part of HYPERSIM® to prompt to make sure it is really OK to enter the subcircuit before doing so.|
|Locate a new subcircuit definition||This button allows you to replace the subcircuit in a symbol that already has a circuit associated with it.|
Opening the Subcircuit Associated with a Symbol
If the symbol currently being edited has a subcircuit already stored with it in the library, you can use the "Open Subcircuit" command in “Operations>Subcircuit” to open it for editing. This opens the subcircuit in a design window as if it was an independent design.
Modifying and saving the design that was opened with this command DOES NOT automatically update the symbol or the library it was read from. If you wish to update the symbol, you must use the Subcircuit and Part Type command and use the "Create a subcircuit symbol and select an open circuit to attach to it" option to reattach the modified circuit to the symbol.
Creating Pseudo-Device Symbols
In addition to symbols that are used to represent actual circuit components, HYPERSIM® also uses "pseudo-device" symbols to describe various types of signal connections on the schematic. The Symbol Editor also allows you to create customized versions of these symbols for use in your drawings.
Breakout primitive type
To create a breakout type you need to set the primitive type to Breakout in the "Subcircuit Part Type" dialog box described in Subcircuit and Part Type command.
A breakout is a special device that allows signals to be associated with a bundle. It consists of 1 Bundle pin, no internal pins, and N normal pins. Because the device type is breakout the normal pins will be connected to like named signals in the bundle. Design breakouts are normally created using the New Breakout command described in Using Bundle Breakouts: New Breakout.
This following device is created by placing the breakout pin B and adding the normal pins P1 and P2.
Another way to split signals out of a bundle is to use a part with a subcircuit as a splitter, which explicitly routes signals between pins. This has advantage of flexibility since signals do not have to be explicitly broken out but may instead be split into bundles or any combination of bundles and signals.
Creating a Signal Connector
To create a signal connector type you need to set the primitive type to "Signal Connector" in the "Subcircuit Part Type" dialog box described in Subcircuit and Part Type command.
A signal connector is a special type of device which is generally used to represent a power or ground source signal. It can be used as a general connector for simplifying the schematic.
The pin name becomes the signal name and it cannot be changed. This method is used for creating the Ground device which has a pin named GND.
In this example, the signal connector is used for creating a common 735kV bus:
All devices are virtually connected through the signal name 735kV.
It is noticed that the Signal Connector pin type does not really count since it inherits the pin type from the connected signal.
Creating a Port Connector
Port connectors are used for creating subcircuits. Port connectors have the property of associating a signal or bundle with a pin on an enclosing part. The association is made by name. The port's Name is compared to the pin names on the parent part. Internal pins in bundles are matched by pin name. The "pseudo devices.clf" library has port connectors for control pins, power pins and bundle pins. The best way to place port connectors for creating a subcircuit is to use the "Options>Subcircuit>New Port connector" dialog.
If you want to create your own port connectors (for customization needs) then you must create the port connector drawing in the Symbol Editor and select "Port Connector" for the primitive type in the "Subcircuit Part Type" dialog box described in Subcircuit and Part Type command.
In the example below, a special (customized) port connector is used for input pins.
It is used here to create a subcircuit with a control device:
The port connector name is automatically given the name of the port connector device based on its Name.Prefix attribute. The corresponding design subcircuit (created with "Options>Subcircuit>Create Subcircuit Block") symbol is given the pin name C1:
- The port connector pin type is set to Output since it is connected to input pins in the subcircuit.
- A port connector for a bundle must have a bundle pin which contains pins of the correct type. For example, a bundle pin with three internal pins A (input), B (input), and C (output) would be correct to connect to a parent part's bundle pin which contained pins A (output), B (output), C (input). The name of the port connector bundle pin is not important, but the internal pins must have the same names as the corresponding internal pins in the parent pin. Once the port connector is placed in a circuit its name is important, it must be the same as the parent's pin name.
- The easiest way to use bundle port connectors for creating subcircuits is to use the "Options>Subcircuit>New Port connector" dialog. If it is still required to customize such a device, then it can be created in the Symbol Editor as an ordinary pin port connector, only now you must set its internal pins. A bundle port connector is also available in the “Signal Routing” library.
- For this example, assume that the following simple device has a bundle pin called CONTROL containing internal pins SYNC, EN1 and EN2.
To create the corresponding Bundle Port Connector using the symbol editor, follow these steps:
- Select the New command in the File menu and choose the Device Symbol document type.
- From the “Operations” toolbar select "Add Pins..."
- Enter the following string:
PORT[SYNC EN1 EN2]
You should now see a pin list like the following:
For each bundle internal pin set the pin function as appropriate, i.e. the opposite of the function of the parent pin. We will assume that the SYNC signal is an input to the block and that EN1 and EN2 are outputs:
Select the first internal pin name from the symbol editor's pin list. In this example it is SYNC.
Use the pin function pop-up menu at the top of the list to select Output for the pin function.
- Click the next pin in the list.
- For the remaining pins EN1 and EN2 the value Input is correct since the parent pin is an output. Check that the remaining pins are correct. You can also use power pins.
- Create a symbol for the connector, perhaps a simple rectangle.
- Select the bundle pin, PORT in the pin name list.
- Place a bundle pin from the device symbol editor's tool palette.
- Set the primitive type to "Port Connector" in "Subcircuit Part Type" dialog box described in Subcircuit and Part Type command.
- From the File menu choose "Save As..."
- Choose or create a working library to save the part.
- Close the device symbol editor window.
- Place your new Bundle Port Connector in your internal circuit.
The bundle port connector in the Symbol Editor is given by:
The pin name of the bundle pin itself (in this case "PORT") is not important. The association between the "Bundle Port Connector" and the parent bundle pin is made by the name applied to the "Bundle Port Connector" symbol itself. The same Bundle Port Connector symbol can be used for any bundle with the same internal signal names.
The bundle internal pins do not have to be the same type. You can include any combination of names and functions in one bundle pin.
Creating a Page Connector
Page connectors are discussed in Inter-page Connections and three types (bundle, output and power) of page connectors are available in the "Pseudo Devices.clf" library.
A customized page connector can be also created using the Symbol Editor. It is needed to set the primitive type to "Page Connector" in "Subcircuit Part Type" dialog box described in Subcircuit and Part Type command.
For a normal pin, the creation is straightforward. It is noticed that the pin type does not really count since it inherits the pin type from the connected signal.
You can also use a bundle pin (with no internal pins) a page connector. It allows showing the virtual connection between pages through bundles with the same name.
The Symbol Editor allows using password protection for devices. This is applicable to ordinary devices and subcircuit devices. To apply password the user must select the menu “Operations>Subcircuit>Subcircuit Password Protection”:
There are two options:
- Access Password
- Modification Password
When a device is given password protection then it becomes necessary to enter the password when accessing the device from a library, accessing its contents or trying to edit its symbol. When the user enters the password once on a given computer then HYPERSIM® remembers the unlocking of the device for the following sessions.
To remove password protection from a device it is necessary to access the above panel and remove (Delete) all password characters manually.