16 : Using Different Methods of Parasitic Capacitance Extraction for Selected Regions (Mix & Match)
Minimum Required Versions: Expert 5.2204.3.R, Hipex 3.8.7.R
This example demonstrates running Hipex Parasitic Capacitance Extraction using VictoryRCx and Stellar Field Solvers for different areas of the same layout, and combining the results into common netlist. This technique is nicknamed "Mix & Match Extraction". It provides opportunity to select (non-overlapping) rectangular blocks on layout, and assign different extraction solvers to process different blocks and the rest of layout. Currently, Hipex supports 3 different solvers:
- Rule-based (heuristical imitation of field solving)
- VictoryRCx (Finite Element Method)
- Stellar (Boundary Element Method).
The functionality is available for Linux only.
1: Start Expert, load GDS layout
Run Expert Layout Editor.
Choose File->Import... . In appeared "Import Project" dialog:
- select GDS II in "File type" control;
- choose mm_exmp.gds file using dialog's file browser;
- choose technology file mm_exmp.tcn using "Technology" control;
- click "Open" button;
- choose cell array_of_pixel2_3x3 to open for extraction.
The sketch of layout (3x3 matrix of TFT cell) is shown on Figure1
2: Load Extraction Settings.
Load settings from mm_exmp.lpe file by choosing Verification->Extraction->Setup... and pressing Load button located at the bottom of appeared dialog.
3: Setting Mix&Match Blocks and Extraction Modes.
To provide usage of Stellar solver for the rest of layout (not covered by Mix&Match blocks), make sure Stellar radio button is ON in Field Solver group of Parasitic Extraction (Capacitance) tab from Layout Parameter Setup dialog, as shown on Figure2 ,and Boxes radio button is ON in Decomposition group with the values specified: SizeX=200, VicinityX=40, SizeY=200, VicinityY=40 (this provides splitting external part of layout into 9 boxes to accelerate Stellar performance).
Inspect Mix-and-Match group. Verify that it is activated (checked) with 2 blocks specified, and using parameters as depicted on Figure2. Both blocks are set to use VictoryRCx simulator, but for second block the non-default option CAPsolver=1 is chosen (boosting performance, though with occasional convergence problems). To assure this assignment (CAPsolver=1), press at "Options" field in second row, and observe "VictoryRCx C-extraction settings" group in appeared dialog (see Figure3 ). The chosen Mix&Match blocks are shown on Figure4 .
Also, verify capacitance mapping (layers Gate, ITO, SD, via, M4 to be mapped ) and mapping of masked dielectric layers (layers Passivation, Via, OxideGate, NIP, aSi, IMDx to be selected) to ensure proper mask usage in process description.
3: Choosing Versions of Utilized Programs.
For variety of extraction settings, Hipex can call executables of VictoryRCx,DeckBuild,VictoryProcess,VictoryMesh to provide simulations and structure build. There is (optional) possibility to choose particular versions of abovementioned programs (otherwise, default versions of installed software to be called). VictoryRCx version can be assigned using appropriate field in Field Solver group of Parasitic Extraction (Capacitance) tab from Layout Parameter Setup dialog (see Figure2). Minimal VictoryRCx version to support integration with Hipex is 1.0.7.R .
To assign versions of other programs: Open Technology tab of LPE Setup. Make sure minimal compatible (with Hipex) versions of DeckBuild(5.2.12.R), VictoryProcess(7.55.1.C),VictoryMesh (1.7.4.C) or newer ones are specified in Process simulation setup section (see Figure5 ).
4: Performing extraction.
Run netlist extraction Verification->Extraction->Hipex Net->Run Run capacitance extraction Verification->Extraction->Hipex C->Run Press Open Netlist button to view capacitance netlist.
mm_exmp.tcn
TechnologyID = "Tft, ver. 0.0"
Version = 201
Unit = "um"
UnitValue = 1
Shapes
{
AllowOffGridWire = FALSE
AllowOffGridEllipse = FALSE
ApproximationType = POINTS
ApproximationValue = 20
AlignedY = FALSE
Circumscribed = FALSE
}
PurposeTable
{
Purpose
{
Number = 255
PurposeType = drawing
Name = "all"
Alias = "all"
}
Purpose
{
Number = 254
PurposeType = drawing
Name = "cell"
Alias = "cell"
}
Purpose
{
Number = 251
PurposeType = drawing
Name = "pin"
Alias = "pin"
}
Purpose
{
Number = 250
PurposeType = drawing
Name = "boundary"
Alias = "bnd"
}
Purpose
{
Number = 249
PurposeType = drawing
Name = "drawing9"
Alias = "drw9"
}
Purpose
{
Number = 248
PurposeType = drawing
Name = "drawing8"
Alias = "drw8"
}
Purpose
{
Number = 245
PurposeType = drawing
Name = "drawing5"
Alias = "drw5"
}
Purpose
{
Number = 243
PurposeType = drawing
Name = "drawing3"
Alias = "drw3"
}
Purpose
{
Number = 241
PurposeType = drawing
Name = "drawing1"
Alias = "drw1"
}
Purpose
{
Number = 240
PurposeType = drawing
Name = "annotate"
Alias = "ann"
}
Purpose
{
Number = 239
PurposeType = drawing
Name = "error"
Alias = "err"
}
Purpose
{
Number = 236
PurposeType = drawing
Name = "tool0"
Alias = "tl0"
}
Purpose
{
Number = 242
PurposeType = drawing
Name = "drawing2"
Alias = "drw2"
}
Purpose
{
Number = 238
PurposeType = drawing
Name = "flight"
Alias = "flt"
}
Purpose
{
Number = 235
PurposeType = drawing
Name = "tool1"
Alias = "tl1"
}
Purpose
{
Number = 234
PurposeType = drawing
Name = "warning"
Alias = "wan"
}
Purpose
{
Number = 247
PurposeType = drawing
Name = "drawing7"
Alias = "drw7"
}
Purpose
{
Number = -12
PurposeType = oaCustomFill
Name = "oaCustomFill"
Alias = "oal"
}
Purpose
{
Number = -11
PurposeType = oaFillOPC
Name = "oaFillOPC"
Alias = "oaC"
}
Purpose
{
Number = -9
PurposeType = oaAny
Name = "oaAny"
Alias = "any"
}
Purpose
{
Number = -8
PurposeType = redundant
Name = "redundant"
Alias = "redt"
}
Purpose
{
Number = 244
PurposeType = drawing
Name = "drawing4"
Alias = "drw4"
}
Purpose
{
Number = -10
PurposeType = oaNo
Name = "oaNo"
Alias = "no"
}
Purpose
{
Number = -7
PurposeType = gapFill
Name = "gapFill"
Alias = "gap"
}
Purpose
{
Number = -6
PurposeType = annotation
Name = "annotation"
Alias = "anno"
}
Purpose
{
Number = -5
PurposeType = OPCAntiSerif
Name = "OPCAntiSerif"
Alias = "OPSf"
}
Purpose
{
Number = -4
PurposeType = OPCSerif
Name = "OPCSerif"
Alias = "OPC"
}
Purpose
{
Number = 253
PurposeType = drawing
Name = "net"
Alias = "net"
}
Purpose
{
Number = 246
PurposeType = drawing
Name = "drawing6"
Alias = "drw6"
}
Purpose
{
Number = 237
PurposeType = drawing
Name = "label"
Alias = "lbl"
}
Purpose
{
Number = -3
PurposeType = slot
Name = "slot"
Alias = "slt"
}
Purpose
{
Number = -2
PurposeType = fill
Name = "fill"
Alias = "fil"
}
Purpose
{
Number = -1
PurposeType = drawing
Name = "drawing"
Alias = "drg"
}
}
Layer
{
Name = "Gate"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "z89"
Bitmap = "0000000008000000080000000200000001000100990033006600CC00990033006600CC00"
Color = (255,0,0)
GDS2Num = 1
GDS2DataType = 0
OA
{
LayerNumber = 1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 1
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "OxydeGate"
Wire
{
MiterAngle = 20
Width = 5
Joint = MITER
End = BUTT
}
Stipple = "51"
Bitmap = "000000000800000008000000020000000100010088004400220011008800440022001100"
Color = (164,164,164)
GDS2Num = 71
GDS2DataType = 0
OA
{
LayerNumber = 71
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 2
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "aSi"
Wire
{
MiterAngle = 20
Width = 4
Joint = MITER
End = BUTT
}
Stipple = "51"
Bitmap = "000000000800000008000000020000000100010088004400220011008800440022001100"
Color = (255,0,255)
ColorName = "magenta"
GDS2Num = 74
GDS2DataType = 0
OA
{
LayerNumber = 74
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 3
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "SD"
Wire
{
MiterAngle = 20
Width = 10
Joint = MITER
End = BUTT
}
Stipple = "z29"
Bitmap = "00000000080000000800000002000000010001005500AA005500AA005500AA005500AA00"
Color = (0,255,0)
ColorName = "green"
GDS2Num = 11
GDS2DataType = 0
OA
{
LayerNumber = 11
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 5
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "NIP"
Wire
{
MiterAngle = 20
Width = 5
Joint = MITER
End = BUTT
}
Stipple = "StippleDef"
Bitmap = "00000000080000000800000002000000010001005500AA005500AA005500AA005500AA00"
Color = (0,0,255)
ColorName = "blue"
GDS2Num = 8
GDS2DataType = 0
OA
{
LayerNumber = 8
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 6
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "ITO"
Wire
{
MiterAngle = 20
Width = 5
Joint = MITER
End = BUTT
}
Stipple = "STP_H_BDIAG"
Color = (10,98,245)
GDS2Num = 72
GDS2DataType = 0
OA
{
LayerNumber = 72
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 7
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "IMDx"
Wire
{
MiterAngle = 20
Width = 10
Joint = MITER
End = BUTT
}
Stipple = "StippleDef"
Bitmap = "00000000080000000800000002000000010001005500AA005500AA005500AA005500AA00"
Color = (127,127,127)
ColorName = "gray dark"
GDS2Num = 70
GDS2DataType = 0
OA
{
LayerNumber = 70
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 8
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "Via"
Wire
{
MiterAngle = 20
Width = 10
Joint = MITER
End = BUTT
}
Stipple = "z29"
Bitmap = "00000000080000000800000002000000010001005500AA005500AA005500AA005500AA00"
Color = (0,255,0)
ColorName = "green"
GDS2Num = 4
GDS2DataType = 0
OA
{
LayerNumber = 4
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 9
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "M4"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "z89"
Bitmap = "0000000008000000080000000200000001000100990033006600CC00990033006600CC00"
Color = (202,53,176)
GDS2Num = 5
GDS2DataType = 0
OA
{
LayerNumber = 5
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 10
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "Passivation"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "empty"
Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000"
Color = (128,215,215)
ColorName = "0"
GDS2Num = 80
GDS2DataType = 0
OA
{
LayerNumber = 80
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 11
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "tft_rec"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_DIAGCROSS"
Color = (218,246,158)
ColorName = "0"
GDS2Num = 0
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 12
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "via"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_DENSE7"
Color = (74,6,238)
ColorName = "0"
GDS2Num = 81
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 13
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "pd_rec"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_CROSS"
Color = (227,245,225)
ColorName = "0"
GDS2Num = 82
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 14
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "sd_pd"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_DENSE7"
Color = (21,83,71)
ColorName = "0"
GDS2Num = 83
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 15
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "sd_connect"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_DENSE5"
Color = (20,140,92)
ColorName = "0"
GDS2Num = 84
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 16
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "channel"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_DENSE6"
Color = (183,65,125)
ColorName = "0"
GDS2Num = 85
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 17
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "sd_ovl"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_CROSS"
Color = (103,145,13)
ColorName = "0"
GDS2Num = 86
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 18
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "sd_aux"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_CROSS"
Color = (247,129,61)
ColorName = "0"
GDS2Num = 87
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 19
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "ffzone"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_DENSE5"
Color = (216,232,72)
ColorName = "0"
GDS2Num = 88
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 20
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "SUB"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_DIAGCROSS"
Color = (128,0,0)
ColorName = "0"
GDS2Num = -1
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 21
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "Dev_Labels"
Wire
{
MiterAngle = 20
Width = 0
Joint = MITER
End = BUTT
}
Stipple = "STP_H_CROSS"
Color = (255,0,0)
ColorName = "0"
GDS2Num = -1
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 22
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "Lay2"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_CROSS"
Color = (255,255,127)
ColorName = "0"
GDS2Num = 2
GDS2DataType = 0
OA
{
LayerNumber = 2
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 23
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "Via_holes"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_DIAGCROSS"
Color = (180,236,60)
ColorName = "0"
GDS2Num = -32768
GDS2DataType = -32768
OA
{
LayerNumber = -32768
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 24
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "sd_aux_tmp"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_DENSE6"
Color = (163,181,33)
ColorName = "0"
GDS2Num = -32768
GDS2DataType = -32768
OA
{
LayerNumber = -32768
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 25
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "ito"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_DIAGCROSS"
Color = (46,194,58)
ColorName = "0"
GDS2Num = -32768
GDS2DataType = -32768
OA
{
LayerNumber = -32768
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 26
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "m4"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_CROSS"
Color = (155,125,73)
ColorName = "0"
GDS2Num = -32768
GDS2DataType = -32768
OA
{
LayerNumber = -32768
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 27
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "gate"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_DENSE5"
Color = (129,71,107)
ColorName = "0"
GDS2Num = -32768
GDS2DataType = -32768
OA
{
LayerNumber = -32768
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 28
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = TRUE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "block2"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_DENSE2"
Color = (170,170,0)
ColorName = "0"
GDS2Num = 91
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 29
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Layer
{
Name = "block1"
Wire
{
MiterAngle = 20
Width = 0
Joint = EXTEND
End = EXTEND
}
Stipple = "STP_H_DENSE3"
Color = (85,255,0)
ColorName = "0"
GDS2Num = 90
GDS2DataType = 0
OA
{
LayerNumber = -1
PurposeNumber = -1
PurposeAbbreviation = "drawing"
PurposeType = drawing
Visible = TRUE
Selectable = TRUE
Valid = TRUE
Priority = 30
}
Scope = FLAT
UseGridParams = FALSE
ScratchLayer = FALSE
EdgeLayer = FALSE
LineStyle = 0
}
Device
{
Type = "generic"
SpName = "TFT"
Params = 0
DevLay
{
NameL = "tft_rec"
TypeL = REC
}
DevLay
{
NameL = "sd_connect"
TypeL = PIN
}
DevLay
{
NameL = "Gate"
TypeL = PIN
}
DevLay
{
NameL = "sd_connect"
TypeL = PIN
}
GenericParam
{
Element = "NMOS"
Type = "BY_SHAPE"
Pins = "D,G,S"
Aux = "sd_ovl,channel,sd_aux"
Proc = "tft"
File = "../techfiles/hipex/lvs_d.lisa"
}
}
Device
{
Type = "generic"
SpName = "PD"
Params = 0
DevLay
{
NameL = "pd_rec"
TypeL = REC
}
DevLay
{
NameL = "ITO"
TypeL = PIN
}
DevLay
{
NameL = "sd_pd"
TypeL = PIN
}
GenericParam
{
Element = "D"
Type = "BY_SHAPE"
Pins = "POS,NEG"
Aux = "ffzone"
Proc = "pd"
File = "../techfiles/hipex/lvs_d.lisa"
}
}
Connect = ("M4","Gate","via")
Connect = ("sd_connect","M4","via")
Connect = ("sd_pd","sd_connect")
Connect = ("ITO","M4","via")
Connect = ("sd_connect","SD")
GridParams
{
MinGridStep = 1
SnapCursorStepX = 1
SnapCursorStepY = 1
SnapDepend = 0
SnapCursorRatioX = 0
SnapCursorRatioY = 0
GridColor = (0,0,0)
GridType = 0
AutomaticGridType = 0
UserVisualGridStepX = 20
UserVisualGridStepY = 20
SuperGridStepX = 4
SuperGridStepY = 4
}
InstanceGridParams
{
MinGridStep = 100
SnapCursorStepX = 1
SnapCursorStepY = 1
SnapDepend = 0
SnapCursorRatioX = 0
SnapCursorRatioY = 0
GridColor = (0,0,0)
GridType = 0
AutomaticGridType = 0
UserVisualGridStepX = 10
UserVisualGridStepY = 10
SuperGridStepX = 10
SuperGridStepY = 10
}
NetToCap = ("Gate","Gate")
NetToCap = ("SD","SD")
NetToCap = ("ITO","ITO")
NetToCap = ("M4","M4")
NetToCap = ("via","via")
MaskedDielectric = ("OxydeGate")
MaskedDielectric = ("aSi")
MaskedDielectric = ("IMDx")
MaskedDielectric = ("NIP")
MaskedDielectric = ("Via")
MaskedDielectric = ("Passivation")
Rule = ("Min Width = 4","Gate")
Rule = ("Min Space = 4","Gate")
Rule = ("Sheet Resistance = 0.26","Gate")
Rule = ("Min Width = 4","SD")
Rule = ("Min Space = 4","SD")
Rule = ("Min Width = 4","ITO")
Rule = ("Min Space = 4","ITO")
Rule = ("Min Width = 4","Via")
Rule = ("Min Space = 4","Via")
Rule = ("Min Width = 4","M4")
Rule = ("Min Space = 4","M4")
Rule = ("Sheet Resistance = 0.04","M4")
run_c.lisa
INCLUDE ("mm_exmp_opt.lisa");
INCLUDE ("mm_exmp_net_cmd.lisa");
HIPEX_SUMMARY_PATH = "/home/alexa/webexaples/16";
HDB READ;
print("Writing Mix-and-Match Database ...");
HDB WRITE_MIX_AND_MATCH /FULL "default" 200 200 40 40 /MNMBLOCKS="mm_exmp_mnm_cmd.lisa";
print("Mix-and-Match OK.");
CPX MAIN "default" /rewrite /mnm;
netlist spice/hier/c "/home/alexa/webexaples/16/array_of_pixel2_3x3_c_hier_2blockCl_restStlr_200_200.spice";
mm_exmp_opt.lisa
!--------------------------------------------------------------------
!Run file
!DESIGN : design
!TECHNO : techno
!USER :
!TIME : Thu Jun 9 21:46:57 2022
!--------------------------------------------------------------------
TOP_CELL = "array_of_pixel2_3x3";
HIPEX_DB_DIRECTORY = "database";
!--------------------------------------------------------------------
!Extraction: LISA template command file
!--------------------------------------------------------------------
!--------------------------------------------------------------------
!Layout parameters
!--------------------------------------------------------------------
HIPEX_LAYOUT_FORMAT = "GDS";
HIPEX_LAYOUT_FILE = "array_of_pixel2_3x3$HPX.gds";
HIPEX_OVERLAP_INSTANCE_CHECK = "NO";
HIPEX_SUPPRESS_NOTEMPTY = "YES";
HIPEX_NON45_FLAG = "NO";
!--------------------------------------------------------------------
!Connectivity parameters
!--------------------------------------------------------------------
HIPEX_TERNARY_CONNECT_THROUGH_TOUCH = "NO";
!--------------------------------------------------------------------
!Output parameters
!--------------------------------------------------------------------
HIPEX_COMMENT_MODEL = "YES";
HIPEX_COMMENT_TOP_SUBCKT = "NO";
HIPEX_HIER_SPICE_WL_NAME = "/home/alexa/webexaples/16/array_of_pixel2_3x3_hier.spice";
HIPEX_MOSFET_LW_ONLY = "NO";
HIPEX_MOSFET_EXCLUDE_W_SD = "NO";
HIPEX_OUTPUT_SPICE_ATTRIBUTES = "YES";
HIPEX_CAP_OUTPUT_LW = "NO";
HIPEX_RES_OUTPUT_LW = "YES";
HIPEX_CAP_OUTPUT_AREA_PERIMETER = "YES";
HIPEX_OUTPUT_SPICE_FORMAT = "HSPICE";
HIPEX_PININFO = "NO";
HIPEX_PRINT_MESSAGES = "NO";
NETLIST_OUTPUT_PM = "NO";
NETLIST_DISTRIBUTION_MODE = "ACCURATELADDER";
NETLIST_LINE_LENGTH = 80;
NETLIST_EXCLUDE_LIBRARY_PREFIX = "NO";
NETLIST_GLOBALS_IN_SUBCKT_PINS = "YES";
NETLIST_TEXTED_PINS = "NO";
NETLIST_LIBRARIES = {};
!--------------------------------------------------------------------
!ERC parameters
!--------------------------------------------------------------------
HIPEX_DANGLE_FLAG = "YES";
HIPEX_CAP_MESSAGE = "NO";
HIPEX_DIODE_MESSAGE = "NO";
HIPEX_RENAME_OPENS = "YES";
HIPEX_MULTILABEL_NAME = "";
HIPEX_SOFTCHECK_WARNINGS_AS_ERRORS = "NO";
!--------------------------------------------------------------------
!Node Name parameters
!--------------------------------------------------------------------
HIPEX_HIERARCHY_SEPARATOR = "/";
HIPEX_NODE_NAME_SEPARATOR = "_";
HIPEX_DEFAULT_INSTANCE_PREFIX = "I";
HIPEX_DEFAULT_NODE_PREFIX = "#";
HIPEX_DELETE_BAD_CHAR = "YES";
HIPEX_XY_LOCATION = "NO";
HIPEX_CASE_SENSITIVE_NET_NAMES = "YES";
HIPEX_AUTOGENERATE_LOCAL = "YES";
POWER_NODE = {};
GROUND_NODE = {"Subs"};
GLOBAL_TEXT_LIST = {"Subs"};
HIPEX_PIN_DELIMITER = ":";
!--------------------------------------------------------------------
!Explosion parameters
!--------------------------------------------------------------------
HIPEX_WIRING_EXPLODE = "NO";
HIPEX_KEEP_FLATTEN_CELLS = "YES";
HIPEX_TEXT_TOP = "NO";
HIPEX_AUTO_EXPLODE = "NO";
HIPEX SET_CELL_OPTIONS {"pixel2_for_Silvaco"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"array_of_pixel2_3x3"} /EXPLODE;
!--------------------------------------------------------------------
!Pins parameters
!--------------------------------------------------------------------
HIPEX_IGNORE_DANGLE_PINS = "YES";
!--------------------------------------------------------------------
!BackAnnotate parameters
!--------------------------------------------------------------------
HIPEX_BACKANNOTATE = "NO";
!--------------------------------------------------------------------
!Process Simulation and Materials parameters
!--------------------------------------------------------------------
HIPEX_PROCESS_FILE = "../techfiles/pex/process_planar__m.in";
HIPEX_MATERIALS_FILE = "../techfiles/pex/materials__m.in";
HIPEX_DECKBUILD_VERSION = "5.2.16.R";
HIPEX_VICTORY_PROCESS_VERSION = "7.76.1.R";
HIPEX_VICTORY_MESH_VERSION = "1.8.11.C";
!--------------------------------------------------------------------
!Capacitance Extraction parameters
!--------------------------------------------------------------------
CPX_COUPLED_THRESHOLD = 0.0;
CPX_EXTRACT_DANGLES = "NO";
CPX_OUTPUT_DUMMY_CAPA = "NO";
CPX_FIELD_SOLVER = "STELLAR";
!--------------------------------------------------------------------
!Stellar Field Solver C-extraction parameters
!--------------------------------------------------------------------
CPX_STEP_X = 0.5;
CPX_STEP_Y = 0.5;
CPX_STEP_Z = 0.5;
CPX_PRECISION = 0.1;
CPX_MAX_ITER = 100;
CPX_BOX = "NO";
CPX_BOX_VALUES_XMIN = 0.0;
CPX_BOX_VALUES_XMAX = 0.0;
CPX_BOX_VALUES_YMIN = 0.0;
CPX_BOX_VALUES_YMAX = 0.0;
CPX_FILTER = "NO";
CPX_CAPA_MIN = 1e-19;
CPX_RENEW = "NO";
CPX_SAVE_FILE = "/home/alexa/webexaples/16/RenewSavedFile.sav";
!--------------------------------------------------------------------
!Victory RCx Capacitance Extraction parameters
!--------------------------------------------------------------------
CPX_VICTORYRCX_EXTRACTION_FILE = "mm_exmp_victoryrcx_c_cmd.in";
CPX_VICTORYRCX_VERSION = "1.0.7.R";
CPX_VICTORYRCX_PARALLEL_MODE = "YES";
CPX_VICTORYRCX_CPU_NUMBER = 2;
!--------------------------------------------------------------------
!Resistance Extraction parameters
!--------------------------------------------------------------------
RPX_SERIAL_MERGE_THRESHOLD = 0.0;
RPX_OUTPUT_XY = "YES";
RPX_OUTPUT_LAYER_NAMES = "YES";
RPX_SKIP_POWER = "YES";
RPX_USE_TEXTS_AS_SUBNODES = "NO";
RPX_USE_FIELD_SOLVER = "NO";
!--------------------------------------------------------------------
!Netlist RC Reduction parameters
!--------------------------------------------------------------------
NETLIST_CRC = "NO";
!--------------------------------------------------------------------
!Substrate Extraction parameters
!--------------------------------------------------------------------
SPX_RUN_SIPEX = "NO";
SPX_MODE = "SIPEX";
SPX_SILICON_THICKNESS = 300.0;
SPX_BACKSIDE = "CONDUCTIVE_CONNECTED";
SPX_BACKSIDE_NODE = "cwsBackside";
SPX_INCLUDE_BACKSIDE_MODEL = "NO";
SPX_BACKSIDE_THICKNESS = 10.0;
SPX_BACKSIDE_CONDUCTIVITY = 3.3e-10;
SPX_BACKSIDE_PERMITTIVITY = 6.2;
SPX_SIPEX_MANUFACTURING_DATABASE = "";
!--------------------------------------------------------------------
!Coefficient Units parameters
!--------------------------------------------------------------------
HIPEX SET_UNIT /CAPACITANCE "F";
HIPEX SET_UNIT /RESISTANCE "Ohm";
HIPEX SET_UNIT /LENGTH "um";
mm_exmp_net_cmd.lisa
!--------------------------------------------------------------------
!Net command file
!DESIGN : design
!TECHNO : techno
!USER :
!TIME : Thu Jun 9 21:46:49 2022
!--------------------------------------------------------------------
! HIPEX to CUP map table
cup layer "Gate" /hipex_layer="Gate";
cup layer "M4" /hipex_layer="M4";
cup layer "SD" /hipex_layer="SD";
cup layer "ITO" /hipex_layer="ITO";
cup layer "via" /hipex_layer="via";
! GDS LAYER MAP
hipex layer /gds_layer= 0 /gds_type= 0 /geom_layer="tft_rec";
hipex layer /gds_layer= 1 /gds_type= 0 /geom_layer="Gate" /text_layer="_HPX_TEXT_Gate";
hipex layer /gds_layer= 4 /gds_type= 0 /geom_layer="Via";
hipex layer /gds_layer= 5 /gds_type= 0 /geom_layer="M4" /text_layer="_HPX_TEXT_M4";
hipex layer /gds_layer= 8 /gds_type= 0 /geom_layer="NIP";
hipex layer /gds_layer= 11 /gds_type= 0 /geom_layer="SD" /text_layer="_HPX_TEXT_SD";
hipex layer /gds_layer= 70 /gds_type= 0 /geom_layer="IMDx";
hipex layer /gds_layer= 71 /gds_type= 0 /geom_layer="OxydeGate";
hipex layer /gds_layer= 72 /gds_type= 0 /geom_layer="ITO";
hipex layer /gds_layer= 74 /gds_type= 0 /geom_layer="aSi";
hipex layer /gds_layer= 80 /gds_type= 0 /geom_layer="Passivation";
hipex layer /gds_layer= 81 /gds_type= 0 /geom_layer="via";
hipex layer /gds_layer= 82 /gds_type= 0 /geom_layer="pd_rec";
hipex layer /gds_layer= 83 /gds_type= 0 /geom_layer="sd_pd";
hipex layer /gds_layer= 84 /gds_type= 0 /geom_layer="sd_connect";
hipex layer /gds_layer= 85 /gds_type= 0 /geom_layer="channel";
hipex layer /gds_layer= 86 /gds_type= 0 /geom_layer="sd_ovl";
hipex layer /gds_layer= 87 /gds_type= 0 /geom_layer="sd_aux";
hipex layer /gds_layer= 88 /gds_type= 0 /geom_layer="ffzone";
! TEXT TYPES
! PORT LAYERS
! SOFT LAYERS
! MISC (optional) statementsS
! CONNECTIVITY
hipex attach "_HPX_TEXT_Gate" "Gate";
hipex connect "ITO" "M4" /contact="via";
hipex connect "M4" "Gate" /contact="via";
hipex attach "_HPX_TEXT_M4" "M4";
hipex attach "_HPX_TEXT_SD" "SD";
hipex connect "sd_connect" "SD";
hipex connect "sd_connect" "M4" /contact="via";
hipex attach "_HPX_TEXT_SD" "sd_connect";
hipex connect "sd_pd" "sd_connect";
! DEVICES TEXTS
! DEVICE DEFINITIONS
hipex generic_device "tft_rec" /pins=({{"sd_connect", "D"}, {"Gate", "G"}, {"sd_connect", "S"}}) /auxs={"sd_ovl", "channel", "sd_aux"} /by_shape /func="tft" /element_name="NMOS" /model_name="TFT";
hipex generic_device "pd_rec" /pins=({{"ITO", "POS"}, {"sd_pd", "NEG"}}) /auxs={"ffzone"} /by_shape /func="pd" /element_name="D" /model_name="PD";
Include("/home/alexa/webexaples/16/techfiles/hipex/lvs_d.lisa");
! SOFT/WELL CHECKS
! MASKED DIELECTRIC LAYERS
cup masked dielectric layer "IMDx";
cup masked dielectric layer "NIP";
cup masked dielectric layer "OxydeGate";
cup masked dielectric layer "Passivation";
cup masked dielectric layer "Via";
cup masked dielectric layer "aSi";
! SUBSTRATE EXTRACTION LAYERS
mm_exmp_mnm_cmd.lisa
HDB MIX_AND_MATCH /BOX={50,50,350,250} /OVERLAP={40,40} /VICTORYRCX /EXTRACT_PARAMS={} /SIZE_VICINITY_X={300,40} /SIZE_VICINITY_Y={200,40};
HDB MIX_AND_MATCH /BOX={300,300,550,500} /OVERLAP={40,40} /VICTORYRCX /EXTRACT_PARAMS={"AdaptC=0.04","MinCAP=1e-19","CAPsolver=1","DomainBoundaryCondition=Mirror"} /SIZE_VICINITY_X={250,40} /SIZE_VICINITY_Y={200,40};
mm_exmp_victoryrcx_c_cmd.in
#go victoryrcx interconnect capacitance AdaptC=0.01 minCAP=1e-19






