The technology creation wizard generates a new technology from a few simple parameters. To start it, use the Technology Creation Wizard... command (in menu Edit / Technology Editing). The wizard has a set of panels that describe various aspects of the technology. The first panel that appears, "General" describes the wizard and requests some basic information. |

The Unit size is the number of nanometers per grid square. The Resolution is the smallest feature size allowed. The "Psubstrate process" controls well generation. The "Horizontal transistors" controls the orientation of transistors.

The values in these panels can be saved into a text file with the "Save Parameters" button and restored from disk with the "Load Parameters" button. When all parameters have been filled-in, use the "Write XML" button to generate an XML file for the technology. This file can then be installed into Electric with the Added Technologies Preferences panel (see Section 8-2 for more). Due to the constant extension of the technology wizard capabilities, not all features are reflected in the GUI but they can be described in same text file. See to the "Importing Data from a Text File" section below for more information.

| The "Active" panel lets you specify size and spacing values for the Active layer. Note that all sizes are in nanometers. For example, if the Active Width (A) is set to 200, and the Unit size (in the General panel) is set to 100, then Active arcs will be 2 units wide. The "Rule Name" fields let you describe the rule so that the design-rule checker can report error names.

The "Poly" panel lets you specify size and spacing values for the Polysilicon layer. The "Rule Name" fields let you describe the rule so that the design-rule checker can report error names. |

| The "Gate" panel lets you specify size and spacing values for the Polysilicon layer in transistors. The "Rule Name" fields let you describe the rule so that the design-rule checker can report error names.

The "Contact" panel lets you specify size and spacing values for the Contact layer. The "Rule Name" fields let you describe the rule so that the design-rule checker can report error names. Note that "inline" spacing is for one-dimensional arrays of contacts and "array" spacing is for two-dimensional arrays. |

| The "Well/Implant" panel lets you specify size and spacing values for the Well and Implant layers. The "Rule Name" fields let you describe the rule so that the design-rule checker can report error names.

The "Metal" panel lets you specify size and spacing values for the Metal layer. You can change the number of Metal layers with the "Add Metal" and "Remove Metal" buttons. The number of metal layers should be established in this panel before using subsequent panels that depend on this. The "Rule Name" fields let you describe the rule so that the design-rule checker can report error names. |

| The "Via" panel lets you specify size and spacing values for the Via layer. A popup lets you select the desired via. Note that the "Metal" panel should be completed before filling-in this panel so that the proper number of via layers is shown. The "Rule Name" fields let you describe the rule so that the design-rule checker can report error names.

The "Antenna" panel lets you specify antenna ratios for all layers. Note that the "Metal" panel should be completed before filling-in this panel so that the proper number of metal layers is shown. The values here are the maximum ratio of polysilicon and metal layers to the area of connected transistors. For example, if the Metal-1 ratio is 200, then it is an error to have Metal-1 connected to transistors if the area of the Metal-1 is more than 200 times the area of the transistors. See Section 9-3-2 for more on antenna ratio checking.

| The "GDS" panel lets you specify GDS layer numbers for all layers. Note that the "Metal" panel should be completed before filling-in this panel so that the proper number of metal layers is shown.

#### Importing Data from a Text File

This section details features not covered by the Technology Creation Wizard GUI. These features are defined in the same text file used to backup the panel values. Once they are uploaded into Electric with the "Load Parameters" button, the new features will be included in the XML file describing the technology (after pressing the "Write XML" button). You can edit the Parameters file and add these commands:

1. @extra_layer allows you to add non-standard layers to a given technology. New layers have a name, and a list of attributes, separated by ":"

   Format: `@extra_layer = (<layer name>, attribA=<valueA>:attribB=<valueB>)`

   The possible attributes are:

   - G: GDS number
   - C: Layer color and pattern
   - F: Layer function
   - W: Layer width
   - S: Layer spacing rule
   - M: Layer min. width rule
   - A: Enables layer arc
   - T: Layer thickness
   - H: Layer height for 3D view
   Example: `@extra_layer = (LayerA, G=1:C=[0.0.255.{32896/16448/8224/4112/2056/1028/514/257/32896/16448/8224/4112/2056/1028/514/257}]:F=METAL2:W=1:A:S={2/"LayerA Rule1"}:M={3/"LayerA Rule2"}:T=4:H=1);`

2. @metal_contacts_series is an alternative method to define the typical metal contacts. In this case, the two metal contact sizes are defined and the system will include the corresponding via. Since DRC rules are identical for a group of metals, a set of metal pairs can be specified for the same rules. This method allows to defined crossed contacts or zero-enclosure contacts.

   Format: `@metal_contacts_series = [(metalALayerValueX, "metalALayerRuleX", metalALayerValueY, "metalALayerRuleY")(metalBLayerValueX, "metalBLayerRuleX", metalBLayerValueY, "metalBLayerRuleY")][{metalA#,metalB#}...{,}];`

   Example: `@metal_contacts_series = [(30, "VIAx.EN.2", 30, "VIAx.EN.2")(30, "VIAx.EN.2", 30, "VIAx.EN.2")][{1,2}{3,2}{3,4}{5,4}];`

3. @nomulti_contacts_series defines contacts that do not add extra cuts when large; they always have just one cut, centered in the middle. There is no limit in the number of layers however the last layer is considered the cut of the contact.

   Format: `@nomulti_contacts_series = [(firstLayerValueX, "firstLayerRuleX", firstLayerValueY, "firstLayerRuleY")...(nLayerValueX, "nLayerRuleX", nLayerValueY, "nLayerRuleY")][{firstLayerName,...,nLayerName}];`

   Example: `@nomulti_contacts_series = [(-40000, "ZeroSize", -40000, "ZeroSize")(5000, "Given.Ext", 5000, "Given.Ext")(40000, "Given.CutSize", 40000, "Given.CutSize")][{Metal-1,RDL,AL_PAD}];`