16 : Using Different Methods of Parasitic Capacitance Extraction for Selected Regions (Mix & Match)

16 : Using Different Methods of Parasitic Capacitance Extraction for Selected Regions (Mix & Match)

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 (3×3 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.

Graphics

pic1.png
pic2.png
pic3.png
pic4.png
pic5.png

Input Files

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

Related Articles