SYMMIC Users Manual CapeSym

Device Template Editor

Device templates are designed to allow users to modify the thermal analysis model in ways prescribed by the template designer. Typically, the template designer has parametrized the model so that the allowed modifications of parameters always result in a reasonably efficient and accurate thermal analysis. For this reason, most users will only modify the device template through the operations of the Device and Solve menus. To aid the design of templates, the Edit device template... command from the File menu can used to invoke the Device Template Editor.

Knowledge of the device template format and finite-element thermal analysis is generally required to use the Device Template Editor to produce valid templates for analysis.


The Device Template Editor.

The Device Template Editor shows a tree view of the current device template which follows the XML structure of a template. For detailed explanations of the sections, elements and attributes in a template see the appendix describing the XML file format. In the editor, XML elements are designated by the document symbol , while collections of elements are designated by folder symbols . Attributes and their values are designated by the blue globe symbol . When these symbols include a pencil then the text of the field can be edited. For example, the value of title attribute shown above has the symbol so it can be modified by clicking on the “Half FET” text.

Note: The editor supports the display and editing of values less than 256 characters long, but many of these fields are allowed to be up to 1024 characters long in the XML file.

Branches in the tree view can be expanded or collapsed by double-clicking on them with the left mouse button. This expands or collapses one level at a time. To fully expand or collapse a branch use the commands on the context menu. The context menu is invoked by clicking the right mouse button near an item in the tree view control. The resulting operations are applied to that item. For example, an editable field can be modified by placing the mouse on an item and selecting Edit from the context menu.


Editing a value using the context menu.

The Replace... command on the context menu allows a text substitution to be made throughout the selected branch. When the root Template is selected, Replace... can be used to make global string substitutions throughout all the modifiable fields in the entire template.

The Insert (Ins) command allows the same type of element to be inserted below the current element. For example, in the above image the selection is within parameter element P36 so Ins parameter will add a new parameter element below P36. To insert a parameter before P36, first select the Parameters section item.

The Delete (Del) command deletes the element that currently has the selection. For example, if the Del parameter command was chosen from the context menu in the above example, selected parameter P36 would be deleted. When deleting elements from the template, the designer must ensure that references to those elements are also removed in other fields, otherwise the template may no longer be valid. Deleting P36, for instance, will not remove the use of P36 in any of the components. This removal needs to be done explicitly by the designer.

Any changes made to the device template can be viewed in the GUI by selecting Apply from the editor's Device menu. If the device is no longer displayed in the main window after Apply, then the template likely has errors that prevent it from being constructed. The offending errors are printed in the console window. The Undo command from the editor's Edit menu allows the previous change to be undone. The tree view is regenerated to show the result of the Undo operation, but to see the result in the main window the Apply command must be re-issued.

Not all aspects of a template are modifiable from the Device Template Editor. Some aspects are more easily edited in the GUI, such as the material properties, so these items are not even displayed in the editor. Other aspects of the template, such as the order of elements, are more easily modified in a text editor. The Validate XML file... command from the File menu will allow more general text editing from within the GUI, and can re-validate the template file format after changes whenever the template_format.dtd is available.

Edit Menu Commands

A benefit of using the Device Template Editor over editing the XML file in a text editor, is access to the utilities in the editor's Edit menu. Some of these operations allow the x- and y-feature points to be modified without invalidating the existing model geometry. Feature points, represented by XRefs and YRefs in the tree view, can be inserted, copied and deleted while the components and boundary conditions are automatically updated to accommodate the shift of geometric features. For example, the following image depicts the result of inserting XRefs into a FET template. The model components and boundary conditions are divided to accommodate the new features. The designer is left with the task of inserting components and boundary conditions for the new features, but the existing parts of the model remain valid.


Inserting XRefs in a FET template.

Copying a sequence of features replicates the attributes of the features, and copies the components and boundary conditions to duplicate that part of the model. Existing features, components, and boundary conditions are shifted to accommodate the new features. Dividing a feature inserts additional features and extends the components and boundary conditions that covered the original feature to cover the new ones as well. Inserting features is similar, but the components and boundary conditions are not extended to cover them. Rather components are split and shifted as required to accommodate the inserted features. Reversing features changes their order and updates the ranges of any affected components and boundary conditions to reverse them as well. Deleting features removes them from the template, eliminates their components and boundary conditions, and shifts remaining components and boundary conditions to close up the gap.

Important Note: Using many of the Edit menu commands can invalidate the template's thermal model. The large changes easily made by the edit commands might adversely affect existing parameters, boundary conditions, and meshing attributes, converting a good model into a bad one. Sometimes the editor will issue a warning when bad things are happening, (such as layer overlaps when inserting a component,) but usually there is no warning. For this reason, it is a good idea to always use the Model Check dialog after applying changes. It is also recommended to visually inspect the mesh to ensure that the model is still efficient and consistent across all components and layers. In general, expect to make many additional small changes to finish creating a good template after using any edit commands.

The following table summarizes the Edit menu commands and their global effects on a template:

Edit Command

Global Effects

Copy > XRef points...

Copies components and boundary conditions that overlap the copied features. Shifts non-overlapping components and boundary conditions, as needed.

Copy > YRef points...

Copies components and boundary conditions that overlap the copied features. Shifts non-overlapping components and boundary conditions, as needed.

Copy > Layer...

Copies all components of the copied layer. Moves the boundary conditions from the copied layer to the new layer, if selected. Creates a new thickness parameter if necessary. Increments all begin and end expressions of layers above.

Divide > XRef point...

Splits feature into multiple parts. Block ranges of overlapping components and boundary conditions are expanded or shift to accommodate new features.

Divide > YRef point...

Splits feature into multiple parts. Block ranges of overlapping components and boundary conditions are expanded or shift to accommodate new features.

Insert > XRef points...

Block ranges of existing components and boundary conditions are shifted to accommodate new features.

Insert > YRef points...

Block ranges of existing components and boundary conditions are shifted to accommodate new features.

Insert > Layer...

Existing layers are shifted up to accommodate new empty layer. Creates a new thickness parameter if desired.

Insert > Component...

Creates component over range of features and layers, replacing existing components in that range. Overlapping layers lead to interfering parts.

Insert > Fill voids...

Creates component where there is no existing component, but not where layers overlap since this would produce interference and mesh inconsistencies.

Merge > XRef points...

Combines adjacent X feature points into a single feature by adding the formulas together to create a single, long delta expression.

Merge > YRef points...

Combines adjacent Y feature points into a single feature by adding the formulas together to create a single, long delta expression.

Reverse > XRef points...

Reverses component and boundary condition feature blocks that overlap the reversed features.

Reverse > YRef points...

Reverses component and boundary condition feature blocks that overlap the reversed features.

Update > User flux trace points > X Locations

Updates line 6 expressions of user files for user subroutine fluxes with the sum of delta expressions for all the x features to reach the flux.

Update > User flux trace points > Y Locations

Updates line 7 expressions of user files for user subroutine fluxes with the sum of delta expressions for all the y features to reach the flux.

Update > User flux trace points > Z Locations

Updates line 8 expressions of user files for user subroutine fluxes with the zmax expression for the layer on which the flux is defined.

Update > Use tests...

Sets useTest expressions on components and boundary conditions in a block and layer range; can be repeated over all blocks in the x-direction with the expression decremented in each block so that a parameter (e.g. the number of gates in a FET) controls the existence of components in the x-direction.

Delete > XRef points...

Parts of components and boundary conditions that overlap the deleted features are eliminated. Block ranges of remaining parts are shifted, if necessary.

Delete > YRef points...

Parts of components and boundary conditions that overlap the deleted features are eliminated. Block ranges of remaining parts are shifted, if necessary.

Delete > Layers...

Removes layers and the components and boundary conditions on them.

Delete > Component...

Deletes a component from a feature range, and removes any boundary conditions on deleted pieces of the component

Flip Upside Down...

Flips the entire device upside down, in a front-to-back manner.

Switch x and y

Rotates the device 90 degrees by switching the Xrefs with the YRefs

Note that some components may be hidden from view by the useTest attribute. (If useTest is less than or equal to zero, then the associated component or boundary condition is not included in the model.) For example, the extra gates in the generic FET templates are hidden from view but still exist as XRefs in the template. During the initial stages of designing a template it is best to reveal all such hidden features for easier visualization of editing operations.




The useTest attributes of a device template can be modified by using the Update command from the Edit menu. This command features the ability repeat the useTest update (with a decrement) over all subsequent blocks of the x-range. For example, the values shown in the dialog below specify that all components and boundary conditions on all layers with x features in the range of [22,24], y features in the range of [1,17], will be given the attribute useTest="NG-1.5", which means that these components will appear in the model only when 1.5 is greater than NG. If the check box next to Repeat on x-range blocks with string decrement was also set in the dialog, the next block range of x=[35,47] and y=[1,17] would receive useTest="NG-1.5-1". So this block range would only be visible when NG > 2.5. The next range at x=[48,60] would have useTest="NG-1.5-2", and so on, until there are not enough x features to continue.

Boundary conditions that use the user subroutine file protocol may contain (x,y,z) trace point expressions that are used for adaptive timing. As a general rule, the Edit menu's copy, insert and delete commands do not automatically update the trace point locations. If adaptive timing is to be used during transient simulations, the user may need to update the trace point locations using the command to Edit > Update > User flux trace points. Note that these lines in the User File must already exist the command will not create them if they do not. Also, for a very large device, the expressions generated by the command might be too long to fit in the string buffer. The user should use a text editor to verify that the device template has been written as desired after using any of the Edit commands in the Device Template Editor.

Inserting a Via

Inserting a via through printed circuit board (PCB) layers is demonstrated as an example of using the editor to modify a device template. The starting point for this example is a MMIC amplifier that has been exported on PCB layers to create a device template with PCB attached. The via will be inserted through the PCB layers directly beneath the chip, but not at the edges that are expanded into the common layers of the PCB layout.

The following describes the steps depicted in the figure below.

Step 1: Open the device template and select Edit device template... from the File menu.

Step 2: In the editor, select the command for inserting a component using Edit > Insert > Component...

Step 3: Fill in the Insert Component dialog with the feature point ranges in X and Y that include only the features within the domain of the chip. The outermost features pertain only to the PCB and coldplate. Select the bottom layer (Metal 6) and then shift-select the top layer (Metal 1) of the PCB to multi-select all of the PCB layers. Use Cu for the via material and call the new component “Via”. Press the OK button.

Step 4: Changes made in the editor are applied to the device template in the main window by one of the Apply menu items. In this example we choose Apply then quit which sends the editor changes to the main window and then exits the editor.

Step 5: After applying editor changes, the new "Via" component appears in the 3D display of the model. It is a good idea at this point to re-check the model using the Model Check dialog.

Step 6: In the Model Check dialog, we check for interference (overlapping components), for invalid materials, and for potential problems with boundary conditions. All of these tests report no problems, because there were no boundary conditions on the existing components and none of the layers overlapped.


Filling Empty Regions

Another example of inserting a new component is filling all of the empty regions (voids) over a range of features and layers within a device template. Note that if multiple layers span the same void, e.g. with different layers on opposite sides of an open space, then the fill operation will not produce any components on those layers. This is because the different layers would touch and overlap after the fill operation, which is not valid for a finite element model. To succeed, the fill operation should only be performed on layers that do not overlap with any other layers in the model. To fill between overlapping layers, you must first refactor the layers so that none of them contain the same z range.

The following describes the steps for filling the empty regions around the epi-layers in the Device Array template, as depicted in the figure below.

Step 1: Open the device template and select Edit device template... from the File menu.

Step 2: In the editor, select the edit command for inserting a component into empty regions, using Edit > Insert > Fill voids...

Step 3: Complete the Fill Voids with Component dialog by entering point ranges in X and Y that include all the features in the device. There is no need to avoid the epi-layer features, because the operation will only generate new material where there is nothing else present. Multi-select the epi-layers: layer06, layer07 and layer08. Choose material BCB and call the new component “Package Filler”. Press the OK button to execute the operation within the editor.

Step 4: Changes made in the editor are applied to the device template in the main window using one of the Apply menu items. Apply then quit is selected to send the changes to the main window and exit the editor.

Step 5: After applying the changes, the new component appears in the 3D display of the model. It is always wise to repeat the model checks to verify that the template is still a valid model.

Step 6: In the Model Check dialog, we check for interference (overlapping components), for invalid materials, and for boundary condition problems. All of these tests report no problems because there were no changes to boundary conditions and none of the epi-layers overlapped with any other layers in the model. Using Show Mesh would also reveal that meshing is consistent between the epi-layers and the new fill component. In other words, the mesh lines would all connect at the boundaries between these components.




CapeSym > SYMMIC > Users Manual
© Copyright 2007-2019 CapeSym, Inc. | 6 Huron Dr. Suite 1B, Natick, MA 01760, USA | +1 (508) 653-7100