The Layer Builder button adds a layer builder object. This type of object can be used to import GDS files and build a layered structure consisting of planar unpatterned layers and patterns defined in GDS cells. This tool allows you to:
- Easily change the position, ordering and thickness of each layer.
- Translate the position of the patterning within a layer.
- Add sidewall angle to a pattern.
- Export and import your layer configuration, including material data, as a process file.
This is an alternative to using the GDS import options described in the GDSII - Import and export page. However, the Layer Builder tool offers a more complete solution because it can combine the pattern information from GDS files with the vertical layer information from a process file. This functionality can be very useful, for example, in custom design of components using a particular foundry process.
Currently, the layer builder only supports planar layers stacked in the vertical z-direction. In addition, no rotations can be applied to this object.
The following sections explain how to set up a layer builder object, illustrating the process with a simple example of a silicon y-branch structure (from GDS).
Setting up from the GUI
Add and edit a layer builder object
Open a new simulation file, add a new layer builder object by clicking on the button and open the Edit window for the new object. The Layer Builder settings are grouped in the sections described next.
Import GDS file
In the GDS import section, you can:
- Import or remove a GDS file.
- Select a cell in the GDS file to be imported.
- Choose the position of the reference plane for the sidewall angle applied to the GDS patterns in all the layers. The XY cross-section of the structure will match with the GDS pattern at the position of this plane. Options are middle (default), top or bottom of the layer. For more information on sidewall angle see Add and edit layers.
Note that a layer builder object can only load data from a single cell from a single GDS file. If you need to import multiple cells from one or multiple GDS files into a single simulation, you need to create a layer builder object for each of them.
Download the y_500.gds file from the Associated Files section above and click on the “Import GDS file” button to load it into the Layer Builder object. This GDS file has only one cell, as shown below:
Add and edit layers
In the Layers section, you can:
- Add or remove layers.
- Change the position of a layer in the list by selecting the layer and using the “Up” and “Down” buttons. The order of the layers in the list is important to determine their priority correctly when overlapping exists, as explained in Priority of overlapping layers.
- Enable or disable the objects in the simulation that correspond to a layer by checking or unchecking the "enabled" tick box.
- Define a name for the layer.
- Select the corresponding layer number in the GDS file. The list of available GDS layers is shown if the GDS file has been imported beforehand. Note that multiple layers in the layer builder object can be associated with a single layer in the GDS file. In other words, it is not necessary to have a one-to-one map between the two type of layers; this mapping depends on the process definition.
- Specify the start position of the layer, which is the z position where the extrusion of the layer starts, in coordinates relative to the origin of the layer builder object (defined in global simulation coordinates in the Background geometry). By default, the start position of a new layer is “Auto”, which means that it will be right on top of the previous layer in the list; for the first layer, “Auto” sets the start position to the origin of the Layer builder object.
- Provide the thickness of each layer. It can be a positive or negative real number depending on the direction the layer extends from the start position defined above:
- Upwards (positive z direction) for positive values.
- Downwards (negative z direction) for negative values.
- Define the GDS pattern and background material. This can be any material from the Material database or an “Object defined dielectric”. The material data can be saved in the process file as explained in Material data in process file.
- Choose a type of process step:
- Background: No pattern from GDS is used in the layer; therefore, “pattern material” is disabled and “background material” must be specified.
- Grow: The GDS pattern is extruded upwards (positive z-direction) from the bottom of the layer. “Pattern material” must be specified but “background material” is optional.
- Add sidewall angle to a pattern. The sidewall angle can take values between in the range (0,180) degrees:
- = 90 degrees (default): perfectly vertical wall.
- < 90 degrees: the bottom of the layer is larger than top.
- > 90 degrees: the bottom of the layer is smaller than top.
- Import and export your layer configuration as a process file (.lbr). Once you have configured your list of layers, you can save it in a process file that can be loaded in any Layer builder object. It is possible to save the material data (e.g. sampled data, fit parameters, etc.) in the process file by checking the option “export materials”; otherwise, only the material name will be saved in the process file. See Exporting and importing material data for more information.
For the y-branch example, add four layers in the Edit window of the Layer Builder and configure them as shown below:
Note the following:
- The “Auto” option for start position is appropriate in "BOX" and "TOX" because these layers are stacked.
- For "Si_CoreStripWG" we set the start position to 0 because the bottom of this layer coincides with the bottom of "TOX".
- For "Si_Substrate" we set the start position to -2 um and the thickness to -10 um so that the layer extends downwards starting at the bottom of "BOX".
- The process of "Si_Substrate", "BOX", "TOX" are set to "Background" since they have no patterning. Note that the layer number and pattern material fields become disabled.
Set background geometry
In the Background geometry section, you can:
- Define the position (x, y, z) of the origin of the Layer builder object in global simulation coordinates. This origin is also the center of the background geometry. Note that the z position corresponds to the bottom of layers if the start position of all the layers is “Auto”.
- Set the x and y span of the background geometry for all layers, which should be large enough for the GDS patterns to fit inside.
- Specify the base mesh order (default is 2), which is the lowest mesh order a structure inside the Layer builder object can have. This setting can be used to set the priority of the structures inside the Layer builder relative to other objects in the simulation when overlap occurs, as explained here.
- Set x and y positions of the origin of the GDS pattern reference frame in coordinates of the Layer builder object. You can choose from pre-set options in the drop-down menu to align the origin of the GDS coordinate system with the origin or the corners of the background geometry; it is also possible to specify custom (x, y) coordinates.
- A preview is automatically generated showing the GDS pattern (blue box with the origin of the GDS reference frame marked by a cross) and the background geometry (red box).
In the y-branch example configure the background geometry as shown below:
Priority of overlapping layers
The relative priority of structures generated by the Layer Builder when two or more structures overlap with each other is determined by these rules:
- Internally, the Layer Builder assigns mesh order as follows:
- All grow layers get the same mesh order, equal to base mesh order (see Set background geometry).
- All background layers get the same mesh order, equal to base mesh order + 2.
- As a consequence, grow layers always have higher priority than background layers regardless of their position in the layer list.
Structures associated with each layer are generated in the same order as in the list of layers. Therefore, the priority between layers of the same process type is determined by the ordering in the list: layers at the bottom of the list will take priority over layers at the top of the tree.
Exporting and importing material data
As mentioned in Add and edit layers, there are two different behaviors:
- When “export materials” is unchecked (default):
- Only the name of the materials used in the layer definitions is saved in the process file.
- When importing the process file in FDTD and MODE, the Layer Builder will first create copies of the materials in the Material database that match the names provided in the process file. For the copied materials, the “process name” defined at the top of the Layer Builder Edit window is added to the original name. Therefore, the original materials in the database remain unchanged.
- When importing the process file in the Finite Element IDE (CHARGE, HEAT, DGTD and FEEM) the behavior is slightly different. In this case a new parent material, named according to the "process name" and the original material name in the process file, is created in the materials folder of the Objects Tree and all the optical/electrical/thermal properties are added based on the material names saved in the process file if they are found in the Optical/Electrical and Thermal Material databases. These properties of the parent material keep the original name in the Material database.
- Note that after the process file is imported, all the pattern and background material fields are automatically updated with the appropriate name of the copied materials.
- If the material saved in the process file does not exist in the Material database, the layers that use that material cannot be generated. This is one of the reasons why it is convenient to save the material data in the process file, as explained next.
- When "export materials" is checked:
- All the material properties including data and fitting settings are saved in the process file.
- When importing the process file, the Layer Builder will create new materials with the information contained in the process file. The "process name" defined at the top of the Layer Builder Edit window is added to the original name in the process file.
- This option is only available in FDTD and MODE.
The Layer builder automatically sets the graphical rendering opacity of the structures it generates: background layers get alpha = 0.3 and grow layer get alpha = 0.8. Therefore, background layers are more transparent by default. However, the user can change the opacity of a layer using the script command setlayer.
Viewing the final structure in the Objects Tree
The layer builder automatically sets up a structure group containing the objects. You can view the structures by expanding the layer builder in the Objects tree, as shown below. Note that the objects under the Layer builder cannot be edited directly: to make any changes you must edit the parent Layer builder object.
Using script commands
A layer builder can also be added and set up completely from the script. The layer_builder.lsf script file sets up the same structure using the script. Below are the relevant script commands.