03 : Hipex Parasitic Resistance Extraction (Hipex-R)
Minimum Required Versions: Expert 5.2204.3.R, Hipex 3.8.7.R
This example demonstrates running Hipex Parasitic Resistance Extraction on a layout in the Expert interactive layout environment
1: Setting up Hipex-R with Expert
First start the Expert layout editor program, either with the command expert or by clicking the expert icon. From the main menu bar at the top, click File --> Open to pop up the Load Project menu, navigate to the directory into which the hipex_ex03.eld design database file was downloaded and Open it. This will call up the Open Cell(s) menus, and here double-click mux4 . By default this shows the hierarchical view of the design; you can see the full details by clicking View --> Cell View --> Flat (see figure1 ).
The next step is to load the required Hipex technology files and change any settings to customize the extraction. From the main Expert menu, click Verification --> Extraction --> Setup ; this pops up the Layout Parameter Extraction Setup panel. The pages within this panel are accessed using the menu on the left. The Netlisting page shown on figure2.
The first page Layout shows the Database file and Top cell; by default these are set to the currently open database and cell. The second page, Node Names , controls how instance and net names are derived. Specifying Global node names (eg, VSS for Ground) will cause those names to be declared as *.GLOBAL in the extracted netlist.
The fourth page, Cell Explosion , controls the extraction of the design hierarchy. The default is to EXPLODE all cells, which has the effect of producing a flat netlist in this simple example; to create a fully hierarchical netlist, click Set all --> Hcell.
The fifth page, Netlisting , controls the details of the extracted netlists and parasitic files which will be generated. Default filenames for all the possible types of output are generated based of the current design/cell, but you can change any of these. You can also select options, for example in the Parasitic Resistor netlist section, checking XY location and Layer names will cause the coordinates and material of each resistor to be output as a comment in the netlist next to the resistor.
The sixth page, Technology , is where you need to specify the technology files for the extractions. For Derived layer generation , select Use external script and use the file browser to specify the hipex_ex03_lvs.dsf file previously downloaded. This file controls the generation of device recognition layers from the drawn/mask layers.
To do a parasitic resistance extraction, you must select Use external LISA script in the Parasitic resistance technology section and use the file browser to specify the hipex_ex03_r.lisa file previously downloaded.
The seventh page, Parasitic Extraction , ( figure3 ) provides more advanced settings. For parasitic resistance extraction it allows you to specify a resistance serial merge threshold to prevent the listing of tiny resistors in the netlist. Any parasitic resistor of smaller value than the threshold will merge with a neighboring resistor if possible. Additionally the user can specify that parasitic resistors for power nets be ignored (Ignore power node). When you have completed all required pages, click OK in the Layout Parameter Extraction Setup Panel
2: Hipex Parasitic Resistance Extraction
The netlist extraction can now be run, with Verification --> Extraction --> Hipex-Net --> Run from the main Expert window. This step is necessary even if only the parasitics are required, because the full connectivity must first be extracted to identify all the nodes.
After the netlist extraction has been done, it is now possible to continue to parasitic resistance extraction. This is run in almost exactly the same way as the Hipex-Net extraction with the command from the main Expert window: Verification --> Extraction --> Hipex-R --> Run
When the netlist extraction has completed a window will popup, inviting you to Close , Open Netlist or Show Detail (ie. Show the run log). The Open Netlist option opens the Netlist Editor window which shows the text netlist (on the left) and a hierarchy display (on the right). These are linked; clicking on a device in the hierarchy display will highlight the corresponding item in the text netlist. It is also linked to the layout, so clicking on the item in the hierarchy display will also jump to the relevant cell in the Expert layout editor. ( figure4 )
As with the plain netlist extraction, you can go back into the Verification --> Extraction --> Netlister menu and create other types of netlists, including a flat netlist from the hierarchical databases: Verification --> Extraction --> Netlister --> R Flat Spice Netlist ( figure5 )
The effect of selecting XY location and Layer names in the Netlisting control page is shown in Figure6 ; this information can assist with identification and rectification of any troublesome parasitics in a layout.
hipex_ex03.tcn
TechnologyID = "Simucad BCD (demo PDK)" Version = 101 Unit = "um" UnitValue = 1 Shapes { AllowOffGridWire = TRUE AllowOffGridEllipse = TRUE ApproximationType = POINTS ApproximationValue = 50 AlignedY = FALSE Circumscribed = FALSE } Layer { Name = "N_WELL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CWN" Stipple = "32" Bitmap = "000000000800000008000000020000000100010088000000220000008800000022000000" Color = (0,0,197) GDS2Num = 42 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "NWEL_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 42 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "P_WELL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CWC" Stipple = "blank" Color = (255,255,0) GDS2Num = 59 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "PSUB_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 59 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "ACTIVE" Wire { MiterAngle = 20 Width = 2.5 Joint = MITER End = BUTT } CIFName = "CAA" Stipple = "0void" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (170,0,255) GDS2Num = 43 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "THICK_ACTIVE" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CTA" Stipple = "STP_H_DIAGCROSS" Color = (255,0,0) GDS2Num = 60 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "PBASE" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CBA" Stipple = "STP_H_DENSE7" Color = (255,0,127) GDS2Num = 58 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "POLY_CAP1" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CPC" Stipple = "blank" Color = (149,106,74) GDS2Num = 28 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "POLY" Wire { MiterAngle = 20 Width = 2 Joint = MITER End = BUTT } CIFName = "CPG" Stipple = "0ckbrd_1~" Bitmap = "0000000008000000080000000200000001000100AA005500AA005500AA005500AA005500" Color = (255,0,0) GDS2Num = 46 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "GC_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 46 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "SILICIDE_BLOCK" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CSB" Stipple = "0void" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,0) GDS2Num = 29 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "N_PLUS_SELECT" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CSN" Stipple = "32" Bitmap = "000000000800000008000000020000000100010088000000220000008800000022000000" Color = (0,170,0) GDS2Num = 45 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "P_PLUS_SELECT" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CSP" Stipple = "32" Bitmap = "000000000800000008000000020000000100010088000000220000008800000022000000" Color = (170,85,0) GDS2Num = 44 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "POLY2" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CEL" Stipple = "0ckbrd_1" Bitmap = "00000000080000000800000002000000010001005500AA005500AA005500AA005500AA00" Color = (151,158,170) GDS2Num = 56 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "HI_RES_IMPLANT" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CHR" Stipple = "blank" Color = (255,0,0) GDS2Num = 34 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "CONTACT" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CCC" Stipple = "STP_X_CROSS" Color = (188,182,205) GDS2Num = 25 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL1" Wire { MiterAngle = 20 Width = 3 Joint = MITER End = BUTT } CIFName = "CM1" Stipple = "26" Bitmap = "0000000008000000080000000200000001000100AA005500AA005500AA005500AA005500" Color = (0,170,255) GDS2Num = 49 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL1_port_text" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 49 GDS2DataType = 6 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL1_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 49 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "M1_LABEL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "0void" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,0) GDS2Num = 49 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "VIA" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CV1" Stipple = "STP_X_CROSS" Color = (255,0,0) GDS2Num = 50 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL2" Wire { MiterAngle = 20 Width = 3 Joint = MITER End = BUTT } CIFName = "CM2" Stipple = "STP_H_DENSE2" Color = (136,204,0) GDS2Num = 51 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL2_port_text" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 51 GDS2DataType = 6 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL2_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 51 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "M2_LABEL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 51 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "VIA2" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CV2" Stipple = "blank" Color = (255,0,0) GDS2Num = 61 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL3_port_text" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 62 GDS2DataType = 6 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL3" Wire { MiterAngle = 20 Width = 6 Joint = MITER End = BUTT } CIFName = "CM3" Stipple = "STP_H_DENSE5" Color = (223,228,27) GDS2Num = 62 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL3_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 62 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "M3_LABEL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 62 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "VIA3" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CV3" Stipple = "blank" Color = (255,0,0) GDS2Num = 30 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL4" Wire { MiterAngle = 20 Width = 6 Joint = MITER End = BUTT } CIFName = "CM4" Stipple = "blank" Color = (207,155,46) GDS2Num = 31 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL4_port_text" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 31 GDS2DataType = 6 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL4_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 31 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "M4_LABEL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 31 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "CAP_TOP_METAL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CTM" Stipple = "blank" Color = (255,0,0) GDS2Num = 35 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "VIA4" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CV4" Stipple = "blank" Color = (255,0,0) GDS2Num = 32 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL5" Wire { MiterAngle = 20 Width = 6 Joint = MITER End = BUTT } CIFName = "CM5" Stipple = "blank" Color = (255,0,0) GDS2Num = 33 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL5_port_text" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 33 GDS2DataType = 6 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL5_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 33 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "M5_LABEL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 33 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "VIA5" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CV5" Stipple = "blank" Color = (255,0,0) GDS2Num = 36 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL6" Wire { MiterAngle = 20 Width = 6 Joint = MITER End = BUTT } CIFName = "CM6" Stipple = "blank" Color = (255,0,0) GDS2Num = 37 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL6_port_text" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 37 GDS2DataType = 6 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "METAL6_port" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 37 GDS2DataType = 5 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "M6_LABEL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 37 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "DEEP_N_WELL" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CDNW" Stipple = "STP_H_DENSE3" Color = (0,0,100) GDS2Num = 38 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "GLASS" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "COG" Stipple = "blank" Color = (255,0,0) GDS2Num = 52 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "PADS" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XP" Stipple = "blank" Color = (255,0,0) GDS2Num = 26 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Comments" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "CX" Stipple = "blank" Color = (255,0,0) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "RES_ID" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "INDDMY_ID" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (255,0,0) ColorName = "0" GDS2Num = 2 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "pnp_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 0 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "pnp_e" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 63 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "pnp_c" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 64 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "npn_e" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 65 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "npn_b" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 66 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "gate" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "0void" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,0) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "p_sd" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "0solid" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (85,0,0) GDS2Num = 67 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "n_sd" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "0solid" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (0,170,127) GDS2Num = 68 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "cmosp_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "26" Bitmap = "0000000008000000080000000200000001000100AA005500AA005500AA005500AA005500" Color = (131,0,0) GDS2Num = 69 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "cmosn_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "26" Bitmap = "0000000008000000080000000200000001000100AA005500AA005500AA005500AA005500" Color = (170,255,0) GDS2Num = 70 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "hvcmosp_id" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "STP_H_FDIAG" Color = (255,0,0) ColorName = "0" GDS2Num = 71 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "hvpmos_d" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 72 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "hvpmos_s" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 73 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "hvcmosn_id" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "STP_H_FDIAG" Color = (0,170,0) GDS2Num = 74 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "hvnmos_d" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 75 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "hvnmos_s" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 76 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "rpplus_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 77 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "rnpoly_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 78 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "rpoly_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 79 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "rnwell_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 80 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "rpplus_pin" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (170,0,0) GDS2Num = 81 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "connect_poly" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 82 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "connect_nwell" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (255,0,0) GDS2Num = 83 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "substrate" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "0void" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,255,255) GDS2Num = 84 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "sub_tie" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "STP_H_DENSE4" Color = (255,255,255) GDS2Num = 85 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "well_tie" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "blank" Color = (255,0,0) GDS2Num = 86 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "deepnwell_tie" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = 87 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "p1p2_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "blank" Color = (255,0,0) GDS2Num = 88 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "poly_con" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "blank" Color = (255,0,0) GDS2Num = 89 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "poly2cap_con" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } CIFName = "XXXX" Stipple = "blank" Color = (255,0,0) GDS2Num = 90 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "ind_id" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "ind_plus" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_SOLID" Color = (255,0,0) GDS2Num = 91 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "ind_minus" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DIAGCROSS" Color = (0,255,0) GDS2Num = 92 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "NR_counter" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "width" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "space" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_SOLID" Color = (0,0,255) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "radius" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "blank" Color = (0,0,255) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Dev_Labels" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "STP_H_CROSS" Color = (41,223,163) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "connect_metal1" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE5" Color = (26,182,222) ColorName = "0" GDS2Num = 93 GDS2DataType = 255 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "ind_minus2" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE3" Color = (63,249,85) ColorName = "0" GDS2Num = -32768 GDS2DataType = -32768 Scope = FLAT UseGridParams = FALSE ScratchLayer = TRUE EdgeLayer = FALSE LineStyle = 0 } Device { Type = "p-MOSFET" SpName = "CMOSP" Params = 0 DevLay { NameL = "cmosp_id" TypeL = REC } DevLay { NameL = "p_sd" TypeL = PIN } DevLay { NameL = "connect_poly" TypeL = PIN } DevLay { NameL = "p_sd" TypeL = PIN } DevLay { NameL = "connect_nwell" TypeL = PIN } } Device { Type = "n-MOSFET" SpName = "CMOSN" Params = 0 DevLay { NameL = "cmosn_id" TypeL = REC } DevLay { NameL = "n_sd" TypeL = PIN } DevLay { NameL = "connect_poly" TypeL = PIN } DevLay { NameL = "n_sd" TypeL = PIN } DevLay { NameL = "substrate" TypeL = PIN } } Device { Type = "capacitor" SpName = "PIPCAP" Params = 0 DevLay { NameL = "p1p2_id" TypeL = REC } DevLay { NameL = "POLY2" TypeL = PIN } DevLay { NameL = "connect_poly" TypeL = PIN } DevParam { NameP = "AreaCap" ValueP = 0.0075 } DevParam { NameP = "PerimCap" ValueP = 0.00625 } DevParam { NameP = "Threshold" ValueP = 0 } } Device { Type = "p-MOSFET" SpName = "HVCMOSP" Params = 0 DevLay { NameL = "hvcmosp_id" TypeL = REC } DevLay { NameL = "hvpmos_d" TypeL = PIN } DevLay { NameL = "connect_poly" TypeL = PIN } DevLay { NameL = "hvpmos_s" TypeL = PIN } DevLay { NameL = "DEEP_N_WELL" TypeL = PIN } } Device { Type = "n-MOSFET" SpName = "HVCMOSN" Params = 0 DevLay { NameL = "hvcmosn_id" TypeL = REC } DevLay { NameL = "hvnmos_d" TypeL = PIN } DevLay { NameL = "connect_poly" TypeL = PIN } DevLay { NameL = "hvnmos_s" TypeL = PIN } DevLay { NameL = "substrate" TypeL = PIN } } Device { Type = "npn-BJT" SpName = "NPN" Params = 0 DevLay { NameL = "npn_e" TypeL = REC } DevLay { NameL = "connect_nwell" TypeL = PIN } DevLay { NameL = "PBASE" TypeL = PIN } DevLay { NameL = "npn_e" TypeL = PIN } DevLay { NameL = "substrate" TypeL = PIN } DevParam { NameP = "TypeAreaFactor" ValueP = 1 } DevParam { NameP = "ValueAreaFactor" ValueP = 36 } } Device { Type = "pnp-BJT" SpName = "PNP" Params = 0 DevLay { NameL = "pnp_id" TypeL = REC } DevLay { NameL = "pnp_c" TypeL = PIN } DevLay { NameL = "connect_nwell" TypeL = PIN } DevLay { NameL = "pnp_e" TypeL = PIN } DevParam { NameP = "TypeAreaFactor" ValueP = 1 } DevParam { NameP = "ValueAreaFactor" ValueP = 38.3819 } } Device { Type = "resistor" SpName = "RNWELL" Params = 0 DevLay { NameL = "rnwell_id" TypeL = REC } DevLay { NameL = "connect_nwell" TypeL = PIN } DevLay { NameL = "connect_nwell" TypeL = PIN } DevLay { NameL = "substrate" TypeL = PIN } DevParam { NameP = "SheetRes" ValueP = 10000 } DevParam { NameP = "DeltaL" ValueP = 0.4 } DevParam { NameP = "DeltaW" ValueP = -0.02 } } Device { Type = "resistor" SpName = "RPPLUS" Params = 0 DevLay { NameL = "rpplus_id" TypeL = REC } DevLay { NameL = "rpplus_pin" TypeL = PIN } DevLay { NameL = "rpplus_pin" TypeL = PIN } DevLay { NameL = "connect_nwell" TypeL = PIN } DevParam { NameP = "SheetRes" ValueP = 200 } DevParam { NameP = "DeltaW" ValueP = -0.05 } DevParam { NameP = "DeltaL" ValueP = 0.5 } } Device { Type = "resistor" SpName = "RNPOLY" Params = 0 DevLay { NameL = "rnpoly_id" TypeL = REC } DevLay { NameL = "connect_poly" TypeL = PIN } DevLay { NameL = "connect_poly" TypeL = PIN } DevParam { NameP = "SheetRes" ValueP = 50 } DevParam { NameP = "DeltaW" ValueP = 0.02 } DevParam { NameP = "DeltaL" ValueP = 0.4 } } Device { Type = "resistor" SpName = "RPOLY" Params = 0 DevLay { NameL = "rpoly_id" TypeL = REC } DevLay { NameL = "connect_poly" TypeL = PIN } DevLay { NameL = "connect_poly" TypeL = PIN } DevParam { NameP = "SheetRes" ValueP = 50 } DevParam { NameP = "DeltaW" ValueP = 0.02 } DevParam { NameP = "DeltaL" ValueP = 0.4 } } Connect = ("connect_metal1","METAL2","VIA") Connect = ("METAL2","METAL3","VIA2") Connect = ("METAL3","METAL4","VIA3") Connect = ("METAL4","METAL5","VIA4") Connect = ("METAL5","METAL6","VIA5") Connect = ("connect_metal1","n_sd","CONTACT") Connect = ("connect_metal1","p_sd","CONTACT") Connect = ("connect_metal1","sub_tie","CONTACT") Connect = ("connect_metal1","well_tie","CONTACT") Connect = ("connect_nwell","well_tie") Connect = ("substrate","sub_tie") Connect = ("connect_metal1","connect_poly","poly_con") Connect = ("connect_metal1","POLY2","poly2cap_con") Connect = ("connect_metal1","rpplus_pin","CONTACT") Connect = ("connect_metal1","hvnmos_d","CONTACT") Connect = ("connect_metal1","hvnmos_s","CONTACT") Connect = ("connect_metal1","hvpmos_d","CONTACT") Connect = ("connect_metal1","hvpmos_s","CONTACT") Connect = ("connect_metal1","npn_e","CONTACT") Connect = ("connect_metal1","npn_b","CONTACT") Connect = ("connect_metal1","pnp_c","CONTACT") Connect = ("connect_metal1","pnp_e","CONTACT") Connect = ("PBASE","npn_b") Connect = ("deepnwell_tie","connect_metal1","CONTACT") Connect = ("DEEP_N_WELL","deepnwell_tie") Connect = ("M2_LABEL","ind_minus") Connect = ("connect_metal1","ind_minus") Connect = ("connect_metal1","ind_plus") Connect = ("NWEL_port","connect_nwell") Connect = ("GC_port","connect_poly") Connect = ("connect_metal1","METAL1_port") Connect = ("METAL2","METAL2_port") Connect = ("PSUB_port","substrate") Attach = ("connect_metal1","M1_LABEL") Attach = ("METAL2","M2_LABEL") Attach = ("METAL3","M3_LABEL") Attach = ("METAL4","M4_LABEL") Attach = ("METAL5","M5_LABEL") Attach = ("METAL6","M6_LABEL") AttachPort = ("connect_metal1","METAL1_port_text") AttachPort = ("METAL2","METAL2_port_text") AttachPort = ("METAL3","METAL3_port_text") AttachPort = ("METAL4","METAL4_port_text") AttachPort = ("METAL5","METAL5_port_text") AttachPort = ("METAL6","METAL6_port_text") GridParams { MinGridStep = 500 SnapCursorStepX = 1 SnapCursorStepY = 1 SnapDepend = 0 SnapCursorRatioX = 0 SnapCursorRatioY = 0 GridColor = (0,0,0) GridType = 0 AutomaticGridType = 0 UserVisualGridStepX = 2 UserVisualGridStepY = 2 SuperGridStepX = 10 SuperGridStepY = 10 } 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 = ("METAL2","metal2") NetToCap = ("METAL3","metal3") NetToCap = ("METAL4","metal4") NetToCap = ("METAL5","metal5") NetToCap = ("METAL6","metal6") NetToCap = ("connect_poly","poly1") NetToCap = ("substrate","substrate") NetToCap = ("connect_metal1","metal1") PwireTemplate { TemplateName = "nguard" Layer = "N_PLUS_SELECT" Width = 6 Joint = MITER End = BUTT Offset = 0 Justification = CENTER PwEnclosureWire { Layer = "ACTIVE" BeginOffset = -1 EndOffset = -1 Enclosure = 1 } PwEnclosureWire { Layer = "METAL1" BeginOffset = -0.5 EndOffset = -0.5 Enclosure = 0.5 } PwBox { Layer = "CONTACT" BeginOffset = -2 EndOffset = -2 Width = 2 Length = 2 Justification = CENTER Distribution = EVEN Offset = 0 Space = 2 BeginCornerOffset = 0 EndCornerOffset = 0 } } PwireTemplate { TemplateName = "pguard" Layer = "P_PLUS_SELECT" Width = 6 Joint = MITER End = BUTT Offset = 0 Justification = CENTER PwEnclosureWire { Layer = "ACTIVE" BeginOffset = -1 EndOffset = -1 Enclosure = 1 } PwEnclosureWire { Layer = "METAL1" BeginOffset = -0.5 EndOffset = -0.5 Enclosure = 0.5 } PwBox { Layer = "CONTACT" BeginOffset = -2 EndOffset = -2 Width = 2 Length = 2 Justification = CENTER Distribution = EVEN Offset = 0 Space = 2 BeginCornerOffset = 0 EndCornerOffset = 0 } } DeviceContact { ContactName = "M1_ACT" ContactLayer = "CONTACT" Layer1 = "ACTIVE" Layer2 = "METAL1" Layer1Margin = 1 Layer2Margin = 1 ContactWidth = 2 ContactLength = 2 ContactRows = 1 ContactCols = 1 ContactRowDelta = 4 ContactColDelta = 4 Justification = MIDDLECENTER } DeviceContact { ContactName = "M1_M2" ContactLayer = "VIA" Layer1 = "METAL1" Layer2 = "METAL2" Layer1Margin = 1 Layer2Margin = 1 ContactWidth = 2 ContactLength = 2 ContactRows = 1 ContactCols = 1 ContactRowDelta = 5 ContactColDelta = 5 Justification = MIDDLECENTER } DeviceContact { ContactName = "M1_POLY1" ContactLayer = "CONTACT" Layer1 = "POLY" Layer2 = "METAL1" Layer1Margin = 1.5 Layer2Margin = 1 ContactWidth = 2 ContactLength = 2 ContactRows = 1 ContactCols = 1 ContactRowDelta = 4 ContactColDelta = 4 Justification = MIDDLECENTER } DeviceContact { ContactName = "M2_M3" ContactLayer = "VIA2" Layer1 = "METAL2" Layer2 = "METAL3" Layer1Margin = 1 Layer2Margin = 2 ContactWidth = 2 ContactLength = 2 ContactRows = 1 ContactCols = 1 ContactRowDelta = 5 ContactColDelta = 5 Justification = MIDDLECENTER } DeviceContact { ContactName = "M3_M4" ContactLayer = "VIA3" Layer1 = "METAL3" Layer2 = "METAL4" Layer1Margin = 2 Layer2Margin = 2 ContactWidth = 2 ContactLength = 2 ContactRows = 1 ContactCols = 1 ContactRowDelta = 5 ContactColDelta = 5 Justification = MIDDLECENTER } DeviceContact { ContactName = "M4_M5" ContactLayer = "VIA4" Layer1 = "METAL4" Layer2 = "METAL5" Layer1Margin = 2 Layer2Margin = 2 ContactWidth = 2 ContactLength = 2 ContactRows = 1 ContactCols = 1 ContactRowDelta = 5 ContactColDelta = 5 Justification = MIDDLECENTER } DeviceContact { ContactName = "M5_M6" ContactLayer = "VIA5" Layer1 = "METAL5" Layer2 = "METAL6" Layer1Margin = 2 Layer2Margin = 2 ContactWidth = 3 ContactLength = 3 ContactRows = 1 ContactCols = 1 ContactRowDelta = 7 ContactColDelta = 7 Justification = MIDDLECENTER } Rule = ("Min Width = 2","POLY") Rule = ("Min Space = 2","POLY") Rule = ("Min Width = 3","METAL1") Rule = ("Min Space = 1.5","METAL1") Rule = ("Min Width = 3","METAL2") Rule = ("Min Space = 1","METAL2") Rule = ("Min Width = 6","METAL3") Rule = ("Min Space = 4","METAL3") Rule = ("Min Width = 6","METAL4") Rule = ("Min Space = 6","METAL4") Rule = ("Min Width = 6","METAL5") Rule = ("Min Space = 4","METAL5") Rule = ("Min Width = 6","METAL6") Rule = ("Min Space = 5","METAL6")
hipex_ex03_net_cmd.lisa
!-------------------------------------------------------------------- !Net command file !DESIGN : design !TECHNO : techno !USER : !TIME : Sat May 30 00:29:57 2020 !-------------------------------------------------------------------- ! HIPEX to CUP map table cup layer "metal4" /hipex_layer="METAL4"; cup layer "metal5" /hipex_layer="METAL5"; cup layer "metal6" /hipex_layer="METAL6"; cup layer "metal2" /hipex_layer="METAL2"; cup layer "metal3" /hipex_layer="METAL3"; cup layer "poly1" /hipex_layer="connect_poly"; cup layer "substrate" /hipex_layer="substrate"; cup layer "metal1" /hipex_layer="connect_metal1"; ! GDS LAYER MAP hipex layer /gds_layer= 0 /gds_type= 0 /geom_layer="pnp_id"; hipex layer /gds_layer= 25 /gds_type= 0 /geom_layer="CONTACT"; hipex layer /gds_layer= 30 /gds_type= 0 /geom_layer="VIA3"; hipex layer /gds_layer= 31 /gds_type= 0 /geom_layer="METAL4"; hipex layer /gds_layer= 31 /gds_type= 6 /geom_layer="METAL4_port_text" /text_layer="METAL4_port_text_HPX_TEXT"; hipex layer /gds_layer= 32 /gds_type= 0 /geom_layer="VIA4"; hipex layer /gds_layer= 33 /gds_type= 0 /geom_layer="METAL5"; hipex layer /gds_layer= 33 /gds_type= 6 /geom_layer="METAL5_port_text" /text_layer="METAL5_port_text_HPX_TEXT"; hipex layer /gds_layer= 36 /gds_type= 0 /geom_layer="VIA5"; hipex layer /gds_layer= 37 /gds_type= 0 /geom_layer="METAL6"; hipex layer /gds_layer= 37 /gds_type= 6 /geom_layer="METAL6_port_text" /text_layer="METAL6_port_text_HPX_TEXT"; hipex layer /gds_layer= 38 /gds_type= 0 /geom_layer="DEEP_N_WELL"; hipex layer /gds_layer= 42 /gds_type= 5 /geom_layer="NWEL_port"; hipex layer /gds_layer= 46 /gds_type= 5 /geom_layer="GC_port"; hipex layer /gds_layer= 49 /gds_type= 1 /text_layer="M1_LABEL"; hipex layer /gds_layer= 49 /gds_type= 5 /geom_layer="METAL1_port"; hipex layer /gds_layer= 49 /gds_type= 6 /geom_layer="METAL1_port_text" /text_layer="METAL1_port_text_HPX_TEXT"; hipex layer /gds_layer= 50 /gds_type= 0 /geom_layer="VIA"; hipex layer /gds_layer= 51 /gds_type= 0 /geom_layer="METAL2"; hipex layer /gds_layer= 51 /gds_type= 1 /geom_layer="M2_LABEL"; hipex layer /gds_layer= 51 /gds_type= 5 /geom_layer="METAL2_port"; hipex layer /gds_layer= 51 /gds_type= 6 /geom_layer="METAL2_port_text" /text_layer="METAL2_port_text_HPX_TEXT"; hipex layer /gds_layer= 56 /gds_type= 0 /geom_layer="POLY2"; hipex layer /gds_layer= 58 /gds_type= 0 /geom_layer="PBASE"; hipex layer /gds_layer= 59 /gds_type= 5 /geom_layer="PSUB_port"; hipex layer /gds_layer= 61 /gds_type= 0 /geom_layer="VIA2"; hipex layer /gds_layer= 62 /gds_type= 0 /geom_layer="METAL3"; hipex layer /gds_layer= 62 /gds_type= 6 /geom_layer="METAL3_port_text" /text_layer="METAL3_port_text_HPX_TEXT"; hipex layer /gds_layer= 63 /gds_type= 0 /geom_layer="pnp_e"; hipex layer /gds_layer= 64 /gds_type= 0 /geom_layer="pnp_c"; hipex layer /gds_layer= 65 /gds_type= 0 /geom_layer="npn_e"; hipex layer /gds_layer= 66 /gds_type= 0 /geom_layer="npn_b"; hipex layer /gds_layer= 67 /gds_type= 0 /geom_layer="p_sd"; hipex layer /gds_layer= 68 /gds_type= 0 /geom_layer="n_sd"; hipex layer /gds_layer= 69 /gds_type= 0 /geom_layer="cmosp_id"; hipex layer /gds_layer= 70 /gds_type= 0 /geom_layer="cmosn_id"; hipex layer /gds_layer= 71 /gds_type= 0 /geom_layer="hvcmosp_id"; hipex layer /gds_layer= 72 /gds_type= 0 /geom_layer="hvpmos_d"; hipex layer /gds_layer= 73 /gds_type= 0 /geom_layer="hvpmos_s"; hipex layer /gds_layer= 74 /gds_type= 0 /geom_layer="hvcmosn_id"; hipex layer /gds_layer= 75 /gds_type= 0 /geom_layer="hvnmos_d"; hipex layer /gds_layer= 76 /gds_type= 0 /geom_layer="hvnmos_s"; hipex layer /gds_layer= 77 /gds_type= 0 /geom_layer="rpplus_id"; hipex layer /gds_layer= 78 /gds_type= 0 /geom_layer="rnpoly_id"; hipex layer /gds_layer= 79 /gds_type= 0 /geom_layer="rpoly_id"; hipex layer /gds_layer= 80 /gds_type= 0 /geom_layer="rnwell_id"; hipex layer /gds_layer= 81 /gds_type= 0 /geom_layer="rpplus_pin"; hipex layer /gds_layer= 82 /gds_type= 0 /geom_layer="connect_poly"; hipex layer /gds_layer= 83 /gds_type= 0 /geom_layer="connect_nwell"; hipex layer /gds_layer= 84 /gds_type= 0 /geom_layer="substrate"; hipex layer /gds_layer= 85 /gds_type= 0 /geom_layer="sub_tie"; hipex layer /gds_layer= 86 /gds_type= 0 /geom_layer="well_tie"; hipex layer /gds_layer= 87 /gds_type= 0 /geom_layer="deepnwell_tie"; hipex layer /gds_layer= 88 /gds_type= 0 /geom_layer="p1p2_id"; hipex layer /gds_layer= 89 /gds_type= 0 /geom_layer="poly_con"; hipex layer /gds_layer= 90 /gds_type= 0 /geom_layer="poly2cap_con"; hipex layer /gds_layer= 91 /gds_type= 0 /geom_layer="ind_plus"; hipex layer /gds_layer= 92 /gds_type= 0 /geom_layer="ind_minus"; hipex layer /gds_layer= 93 /gds_type=255 /geom_layer="connect_metal1"; hipex layer /gds_layer= 94 /gds_type= 0 /geom_layer="HPX$npn_e"; ! TEXT TYPES ! PORT LAYERS hipex port_layer "METAL1_port_text_HPX_TEXT"; copy_ "METAL1_port_text" "METAL1_port_text_HPX_PORT$"; hipex port_layer "METAL1_port_text_HPX_PORT$" {"METAL1_port_text"}; hipex port_layer "METAL2_port_text_HPX_TEXT"; copy_ "METAL2_port_text" "METAL2_port_text_HPX_PORT$"; hipex port_layer "METAL2_port_text_HPX_PORT$" {"METAL2_port_text"}; hipex port_layer "METAL3_port_text_HPX_TEXT"; copy_ "METAL3_port_text" "METAL3_port_text_HPX_PORT$"; hipex port_layer "METAL3_port_text_HPX_PORT$" {"METAL3_port_text"}; hipex port_layer "METAL4_port_text_HPX_TEXT"; copy_ "METAL4_port_text" "METAL4_port_text_HPX_PORT$"; hipex port_layer "METAL4_port_text_HPX_PORT$" {"METAL4_port_text"}; hipex port_layer "METAL5_port_text_HPX_TEXT"; copy_ "METAL5_port_text" "METAL5_port_text_HPX_PORT$"; hipex port_layer "METAL5_port_text_HPX_PORT$" {"METAL5_port_text"}; hipex port_layer "METAL6_port_text_HPX_TEXT"; copy_ "METAL6_port_text" "METAL6_port_text_HPX_PORT$"; hipex port_layer "METAL6_port_text_HPX_PORT$" {"METAL6_port_text"}; ! SOFT LAYERS ! MISC (optional) statementsS ! CONNECTIVITY hipex connect "DEEP_N_WELL" "deepnwell_tie"; hipex connect "GC_port" "connect_poly"; hipex connect "M2_LABEL" "ind_minus"; hipex attach "METAL1_port_text_HPX_TEXT" "METAL1_port_text"; hipex connect "METAL2" "METAL2_port_text"; hipex connect "METAL2" "METAL2_port"; hipex connect "METAL2" "METAL3" /contact="VIA2"; hipex attach "METAL2_port_text_HPX_TEXT" "METAL2"; hipex attach "METAL2_port_text_HPX_TEXT" "METAL2_port_text"; hipex connect "METAL3" "METAL3_port_text"; hipex connect "METAL3" "METAL4" /contact="VIA3"; hipex attach "METAL3_port_text_HPX_TEXT" "METAL3"; hipex attach "METAL3_port_text_HPX_TEXT" "METAL3_port_text"; hipex connect "METAL4" "METAL4_port_text"; hipex connect "METAL4" "METAL5" /contact="VIA4"; hipex attach "METAL4_port_text_HPX_TEXT" "METAL4"; hipex attach "METAL4_port_text_HPX_TEXT" "METAL4_port_text"; hipex connect "METAL5" "METAL5_port_text"; hipex connect "METAL5" "METAL6" /contact="VIA5"; hipex attach "METAL5_port_text_HPX_TEXT" "METAL5"; hipex attach "METAL5_port_text_HPX_TEXT" "METAL5_port_text"; hipex connect "METAL6" "METAL6_port_text"; hipex attach "METAL6_port_text_HPX_TEXT" "METAL6"; hipex attach "METAL6_port_text_HPX_TEXT" "METAL6_port_text"; hipex connect "NWEL_port" "connect_nwell"; hipex connect "PBASE" "npn_b"; hipex connect "PSUB_port" "substrate"; hipex connect "connect_metal1" "POLY2" /contact="poly2cap_con"; hipex connect "connect_metal1" "METAL1_port_text"; hipex connect "connect_metal1" "METAL1_port"; hipex connect "connect_metal1" "METAL2" /contact="VIA"; hipex connect "connect_metal1" "pnp_e" /contact="CONTACT"; hipex connect "connect_metal1" "pnp_c" /contact="CONTACT"; hipex connect "connect_metal1" "npn_e" /contact="CONTACT"; hipex connect "connect_metal1" "npn_b" /contact="CONTACT"; hipex connect "connect_metal1" "p_sd" /contact="CONTACT"; hipex connect "connect_metal1" "n_sd" /contact="CONTACT"; hipex connect "connect_metal1" "hvpmos_d" /contact="CONTACT"; hipex connect "connect_metal1" "hvpmos_s" /contact="CONTACT"; hipex connect "connect_metal1" "hvnmos_d" /contact="CONTACT"; hipex connect "connect_metal1" "hvnmos_s" /contact="CONTACT"; hipex connect "connect_metal1" "rpplus_pin" /contact="CONTACT"; hipex connect "connect_metal1" "connect_poly" /contact="poly_con"; hipex connect "connect_metal1" "sub_tie" /contact="CONTACT"; hipex connect "connect_metal1" "well_tie" /contact="CONTACT"; hipex connect "connect_metal1" "ind_plus"; hipex connect "connect_metal1" "ind_minus"; hipex attach "M1_LABEL" "connect_metal1"; hipex attach "METAL1_port_text_HPX_TEXT" "connect_metal1"; hipex connect "connect_nwell" "well_tie"; hipex connect "deepnwell_tie" "connect_metal1" /contact="CONTACT"; hipex connect "substrate" "sub_tie"; ! DEVICES TEXTS ! DEVICE DEFINITIONS hipex define_device PMOS "cmosp_id" /drain="p_sd" /gate="connect_poly" /source="p_sd" /subs="connect_nwell" /model_name="CMOSP"; hipex define_device NMOS "cmosn_id" /drain="n_sd" /gate="connect_poly" /source="n_sd" /subs="substrate" /model_name="CMOSN"; hipex define_device C "p1p2_id" /pin1="POLY2" /pin2="connect_poly" /area_cap=0.0075 /perim_cap=0.00625 /model_name="PIPCAP"; hipex define_device PMOS "hvcmosp_id" /drain="hvpmos_d" /gate="connect_poly" /source="hvpmos_s" /subs="DEEP_N_WELL" /model_name="HVCMOSP"; hipex define_device NMOS "hvcmosn_id" /drain="hvnmos_d" /gate="connect_poly" /source="hvnmos_s" /subs="substrate" /model_name="HVCMOSN"; hipex define_device NPN "HPX$npn_e" /collector="connect_nwell" /base="PBASE" /emitter="npn_e" /subs="substrate" /area_unit=36 /model_name="NPN"; hipex define_device PNP "pnp_id" /collector="pnp_c" /base="connect_nwell" /emitter="pnp_e" /area_unit=38.3819 /model_name="PNP"; hipex define_device R "rnwell_id" /pin1="connect_nwell" /pin2="connect_nwell" /subs="substrate" /cont_res=0 /delta_l=0.4 /delta_w=-0.02 /head_res=0 /sheet_res=10000 /model_name="RNWELL"; hipex define_device R "rpplus_id" /pin1="rpplus_pin" /pin2="rpplus_pin" /subs="connect_nwell" /cont_res=0 /delta_l=0.5 /delta_w=-0.05 /head_res=0 /sheet_res=200 /model_name="RPPLUS"; hipex define_device R "rnpoly_id" /pin1="connect_poly" /pin2="connect_poly" /cont_res=0 /delta_l=0.4 /delta_w=0.02 /head_res=0 /sheet_res=50 /model_name="RNPOLY"; hipex define_device R "rpoly_id" /pin1="connect_poly" /pin2="connect_poly" /cont_res=0 /delta_l=0.4 /delta_w=0.02 /head_res=0 /sheet_res=50 /model_name="RPOLY"; ! GEOMETRICAL OPERATIONS hipex copy "npn_e" "HPX$npn_e"; ! SOFT/WELL CHECKS ! MASKED DIELECTRIC LAYERS
hipex_ex03_opt.lisa
!-------------------------------------------------------------------- !Run file !DESIGN : design !TECHNO : techno !USER : !TIME : Sat May 30 00:30:16 2020 !-------------------------------------------------------------------- TOP_CELL = "mux4"; HIPEX_DB_DIRECTORY = "database"; !-------------------------------------------------------------------- !Extraction: LISA template command file !-------------------------------------------------------------------- !-------------------------------------------------------------------- !Layout parameters !-------------------------------------------------------------------- HIPEX_LAYOUT_FORMAT = "GDS"; HIPEX_LAYOUT_FILE = "mux4$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 = "NO"; HIPEX_COMMENT_TOP_SUBCKT = "NO"; HIPEX_HIER_SPICE_WL_NAME = "/home/alexa/2020_06/03/mux4_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 = "ACCURATE"; NETLIST_LINE_LENGTH = 80; NETLIST_EXCLUDE_LIBRARY_PREFIX = "NO"; NETLIST_GLOBALS_IN_SUBCKT_PINS = "YES"; NETLIST_TEXTED_PINS = "YES"; NETLIST_LIBRARIES = {}; !-------------------------------------------------------------------- !ERC parameters !-------------------------------------------------------------------- HIPEX_DANGLE_FLAG = "YES"; HIPEX_CAP_MESSAGE = "NO"; HIPEX_DIODE_MESSAGE = "NO"; HIPEX_RENAME_OPENS = "NO"; 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 = "NO"; HIPEX_XY_LOCATION = "NO"; HIPEX_CASE_SENSITIVE_NET_NAMES = "YES"; HIPEX_AUTOGENERATE_LOCAL = "YES"; POWER_NODE = {"VDD"}; GROUND_NODE = {"VSS"}; GLOBAL_TEXT_LIST = {"VDD", "VSS"}; HIPEX_PIN_DELIMITER = ":"; !-------------------------------------------------------------------- !Explosion parameters !-------------------------------------------------------------------- HIPEX_WIRING_EXPLODE = "NO"; HIPEX_KEEP_FLATTEN_CELLS = "YES"; HIPEX_TEXT_TOP = "NO"; HIPEX_AUTO_EXPLODE = "NO"; !-------------------------------------------------------------------- !Pins parameters !-------------------------------------------------------------------- HIPEX_IGNORE_DANGLE_PINS = "NO"; !-------------------------------------------------------------------- !BackAnnotate parameters !-------------------------------------------------------------------- HIPEX_BACKANNOTATE = "NO"; !-------------------------------------------------------------------- !Capacitance Extraction parameters !-------------------------------------------------------------------- CPX_COUPLED_THRESHOLD = 0.0; CPX_EXTRACT_DANGLES = "NO"; CPX_OUTPUT_DUMMY_CAPA = "NO"; CPX_FIELD_SOLVER = "NO"; !-------------------------------------------------------------------- !Field Solver C-extraction (Stellar) parameters !-------------------------------------------------------------------- CPX_STEP_X = 0.5; CPX_STEP_Y = 0.5; CPX_STEP_Z = 0.5; CPX_PRECISION = 0.01; CPX_MAX_ITER = 100; CPX_DECOMPOSITION = "YES"; CPX_DEC_STEP = "NO"; CPX_DEC_VALUE = -1.0; 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-20; CPX_RENEW = "NO"; CPX_SAVE_FILE = "/home/alexa/2020_06/03/RenewSavedFile.sav"; CPX_THREED_GENERATION = "NO"; CPX_THREED_FILENAME = "/home/alexa/2020_06/03/3DStructureFile.str"; !-------------------------------------------------------------------- !Field Solver C-extraction (Clever) parameters !-------------------------------------------------------------------- !-------------------------------------------------------------------- !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"; !-------------------------------------------------------------------- !Coefficient Units parameters !-------------------------------------------------------------------- HIPEX SET_UNIT /CAPACITANCE "pF"; HIPEX SET_UNIT /RESISTANCE "Ohm"; HIPEX SET_UNIT /LENGTH "um";
run_net.lisa
INCLUDE ("hipex_ex03_opt.lisa"); INCLUDE ("hipex_ex03_net_cmd.lisa"); HIPEX_SUMMARY_PATH = "/home/alexa/2020_06/03"; HIPEX_NET_MAIN();
run_r.lisa
INCLUDE ("hipex_ex03_opt.lisa"); INCLUDE ("hipex_ex03_net_cmd.lisa"); INCLUDE ("../techfiles/hipex/hipex_ex03_r.lisa"); HIPEX_SUMMARY_PATH = "/home/alexa/2020_06/03"; HDB READ; print("Writing Stripe Database..."); HDB WRITE_STRIPES /FULL "default" 200 10; print("Stripes OK."); RPX MAIN "default" /append; netlist spice/hier/r "/home/alexa/2020_06/03/mux4_r_hier.spice";