In this Topic Hide
Schematics can be organised into multiple levels in a hierarchy. Typically the top level would contain a number of blocks, each of which represents an underlying child schematic. Each of the child schematics can in turn contain more blocks.
You can create a hierarchical schematic in one of two ways:
The schematic and its symbol are stored within the same file. The combined element is known as a component and is usually given the file extension .SXCMP.
All the methods for creating hierarchical schematics described in this section use components.
Select schematic menu Graphical Symbol Editor for details. Note that the symbol you create must be given a Ref property typically with the initial value U? and a Model property which must have the value X.
. This will open the graphical symbol editor. SeeIf the schematic containing the block has never been saved ('untitled' in caption bar) you must save it now. This is so that the schematic has a title. This step is only necessary if the schematic has never been saved before.
Select either Placing - Full vs Relative Path for more details. Select the .SXCMP file you used to save the symbol in the above paragraph. Note that you will see the warning message Component module ports in underlying schematic do not match symbol pins displayed in the command shell. This warning may be ignored at this point.
or . The first references the component file using a full file system path name while the second uses a path relative to the parent schematic. See
There are a number of means of navigating hierarchical designs. You can go up or down one level or you can jump straight to the top level (or root).
Components can be placed using their full path or a relative path.
When placed with a full path, the component file is referenced using its full file system path name (e.g. C:\ Projects\ Proj123\ amplifier.sxcmp. This allows the schematic file that uses the component to be freely moved as long as the component file stays in the same place. However if the component file is moved the schematic will no longer be able to locate it.
When placed with a relative path, the component file is referenced with a file system path name relative to the schematic that uses it. Most likely the component file will be in the same directory (or folder) as the schematic and will therefore be referenced by its file name alone. (E.g. amplifier.sxcmp). This allows the schematic file and component file to be moved together to any location but they may not be moved individually.
In general we recommend using relative paths wherever possible. The exception is when placing a component that is held in a general library, for example a standard cell used in an integrated circuit design.
Select schematic menu
. Select a component file then place in the normal way.Select schematic menu
. Select a component file then place in the normal way.SIMetrix has a facility to define path names using symbolic constants. This system allows absolute locations for files to be defined using a single value and thus making it easy to change that location. See Symbolic Path Names for further details.
Paths are stored on each schematic instance using the UNIX directory separator, that is the forward slash '/'. This is provided for compatibility with older versions that run under Linux. (SIMetrix for Linux is no longer available.) This allows schematics created using a Windows version to be used with a legacy Linux version. In most cases Windows accepts a forward slash as a directory separator whereas Linux does not accept a back slash.
Bus connections can be passed through a hierarchy in much the same way as normal single wire connections. Bus connections are defined by the underlying schematic. The symbol representing the schematic does not require any special treatment.
The bus connection in the parent schematic has a size that is determined by the module port in the child schematic. However, the offset - that is the first wire it connects to in the bus in the parent - can be changed on a per instance basis. To do this, proceed as follows:
You can access any net at the top level of a hierarchy using a terminal symbol and prefixing the name with '#'.
For example, suppose you have a net at the top level called VCC. You can access this net at any level of the hierarchy without having to pass the connection by connecting a terminal symbol (
) and then assigning it the name #VCC.Supposing you have two instances of a hierarchical block which you wish to connect to different supply rails. To do this you would need to connect the supplies - say VCC - to pins at the top level with explicit (i.e. non-global) connections at the lower levels. So every child schematic at lower levels would also need VCC pins.
However, it is sometime convenient to hide these connections. When there is only one supply for an entire design, this can be done using global nets. However, in the scenario we described above, there are two versions of VCC so we would not be able to use a global net in this case.
A solution to this is to use a feature of SIMetrix called Global Pins. Global pins are defined during symbol definition. Once a pin is defined as global, a net of the same name will be available in all child schematics at all levels without the need for it to be explicitly passed.
In the above example, VCC and VEE connections have been made in block2 without them having to be passed via the parent block1.
The above trivial example is supplied as an example. See Examples/Hierarchy/Global Pins.
To define a global pin. select the symbol editor menu Yes.
. Double click on the pin you wish to assign as global and selectTo pass parameters through a hierarchy, assign a PARAMS property then give it a value to assign each parameter you wish to pass (e.g. PARAM1=10 PARAM2=57). See supplied example in folder Examples/Hierarchy/Passing Parameters.
This feature works in both SIMetrix and SIMPLIS runs.
The PARAMS property is most easily added in the symbol editor when the symbol for the hierarchical block is created. This is the procedure:
If you have already placed instances of the symbol you can update it so that it acquires the new PARAMS property you have just added to the symbol definition. To do this proceed as follows:
To edit parameters after they have been added, proceed as follows:
You can use any parameter defined on the symbol in an expression to define a component value or model value. You should enclose the expression with curly braces: '{' and '}'.
When a hierarchical schematic is opened, SIMetrix needs to locate the component files that contain the symbols used for each hierarchical block. If, however, the file for a particular component is missing or is in the wrong location, then SIMetrix will not be able to display that component's symbol. Unlike library symbols, component symbols are not stored locally in the schematic file.
In order to make it possible to resolve the problem, SIMetrix instead puts a place holder symbol in place of the missing symbol. The place holder symbol is a diagonal cross.
If a component is missing you can either edit the schematic to identify the new location of the component, or you can move files around so that the components are once again in the expected locations.
To edit the schematic, select the place holder symbol then menu
.To relocate files, use the system's file handling tools to move the component files, then select menu
.The schematic highlighting features will work through a hierarchy. The menus
and will highlight a selected net within the displayed schematic and any connected nets in other schematics in the same hierarchy. But note the following:
A complete hierarchy may be copied for archival purposes subject to certain conditions as follows:
|