10 : Extraction of Analog (RF) Design

10 : Extraction of Analog (RF) Design

10 : Extraction of Analog (RF) Design

Minimum Required Versions: Expert5.2204.3.R, Hipex 3.8.7.R

The example circuit for Analog(RF) netlist extraction is the Low Noise Amlpifier (LNA) shown at figure1
. This single ended cascode design uses three 2Volt RF nmos transistors and three spiral inductors. Instructions for simulating the LNA and the use of the Gateway schematic editor and SmartSpiceRF simulation are given in the Radio Frequency Demo PDK. We will concentrate on the setup of the RF Layout design in EXPERT and the extraction of netlists with Hipex in this example. The layout design was done using the Netlist Driven Layout (NDL) flow from Gateway to Expert where an NDL netlist with device placement coordinates is generated in Gateway and imported into Expert as the initial placement of the devices showing flight lines where the devices need to be wired to each other.

1.0 Loading The Example Circuit into Expert

– Start Expert Layout Editor (with “expert &” on Linux or from the “Expert” desktop shortcut on Windows). Expert will start with a blank new session ( figure2
).

– Configure EXPERT to access the Pcell library by selecting Library->Setup. The Library Setup window will appear ( figure3
).Click Add, locate the file simucad_demo_pcells.eld (in this case it is under./pcells/), and click OK ( figure4
). Press “Activate” icon (second from right in the upper line of controls) in Library Setup window to make pcells loadable. Close Library Setup window.

– Load the LNA layout. For this, select File->Open and the Load Project dialog box will appear( figure5
). Select the demo_sbcd.tcn as the technology file. If the Technology field is not accessible, click on the Options button in the lower right and select “use external technology for eld files” and also make sure that the option is set “Identify layers by name”. The technology file has definitions which will be used for Netlist Extraction later.

Open the file LNA.eld . Press the Open button to open the selected file and the Cell Open dialog box will appear ( figure6
). Open the LNA_completed cell to load the LNA layout ( figure7
).

2.0 Configuring Layout Extraction

EXPERT offers built-in interface to provide communication to the Netlist Extraction (NLE) and Layout Parasitic Extraction (LPE) tools of Hipex family.

2.1. Configuring Netlist Extraction

Select View->Toolbar->LPE to view the LPE Toolbar ( figure8
). The LPE Toolbar provides access to the extraction setup and main extraction functions. To access the configuration controls, select LPE icon or Verification->Extraction->Setup. In the left-hand panel, click on the Technology menu ( figure9
). In order for Hipex-NET to generate the netlist from the design layout it needs to have extracted the devices by first deriving the additional device layers. In the Derived layer generation section select Use external script . Use the […] browser button to find the demo_sbcd_lvs.dsf layer derivation file. It should be found in …/10/techfiles/hipex. In a course of running Netlist Extraction, EXPERT will actually use the *_lvs.dsf script to generate (in the background) derived layers on the LNA_completed cell in the LNA.eld library, and output LNA_completed$HPX.gds file for Hipex-NET to perform the device and parasitic extractions on. The generated GDSII file will contain the original layout’s data plus the device recognition derived layers.

To configure generic devices for extraction, click on the Edit Devices button in Connectivity and Devices field to display the Device Setup screen ( figure10
). Although the Generic devices are defined in the techfile the complex functions needed to calculate the equations based on the Auxiliary layers are defined in the LISA file, which must be configured within EXPERT. Hipex accesses these functions to evaluate any custom parameters needed to properly define a generic device. In the device, IND for example, custom parameters such as number of turns of the inductor coils or space between the turns are defined. The Auxiliary layers are created at the same time as all other derived layers.

2.2. Configuring Parasitic Extraction

The interlayer parasitic capacitances can be configured either using GUI or with use of LISA script. The latter way is chosen for presented example. In the Parasitic capacitance technology field of the LPE setup window ( figure11
), select the Use LISA script file radio button and find the file demo_sbcd_dbc.lisa under …/10/techfiles/hipex.

Parasitic resistance parameters for this example are also defined with LISA script. In the Parasitic resistance technology field of the LPE setup window ( figure11
), select the Use LISA script file radio button and find the file demo_sbcd_dbr.lisa under …/10/techfiles/hipex.

To provide further parasitic extraction tune-up, click Parasitic Extraction in the left panel of the LPE setup window. For presented example, the parasitic effects for some nets (power and ground) are not of particular interest; so they need to be eliminated from parasitic resistance and capacitance calculations: in the Ignored nets field, enter the names of the power and ground nets to be excluded from parasitic extraction. For example, type the net name “VDD2” and click on the Add button ( figure12
). Similarly, add the net “gnd”.

2.3. Configuring the Extraction Output

LPE can extract a variety of netlists. They can just be primary elements (*_hier.spice) or they can include parasitic elements, such as Rs and Cs (*_r_hier.spice, *_c_hier.spice, *_rc_hier.spice). These netlists can be created hierarchically or flat and can be separated, combined, or backannotated into another SPICE netlist. To see (and control) the Netlisting settings click on the Netlisting menu on the left-hand pane of the LPE Setup window. The Netlisting window will appear ( figure13
). The file paths will obviously be different for your environment but the file names should be the same.

3.0 Running Netlist and Parasitic Extraction

To perform the basic netlist extraction, press the NET icon on the LPE toolbar or select Verification->Extraction->Hipex Net->Run from menu. The details of the run will appear ( figure14
) in new window. EXPERT generates the LNA_opt.lisa (LPE Setup fields in Hipex format) , LNA_net_cmd.lisa (Tech file device and layer info in Hipex format), and LNA_completed$HPX.gds (LNA_completed cell with derived layers from EXPERT in gds format) files for Hipex-NET to use (to generate the netlists required). Select Verification->Extraction->Hipex Net->View Hierarchical Netlist to see the extracted netlist for our LNA_completed cell ( figure15
). The EXPERT Netlist Editor gives a clear view of both the layout netlist, LNA_completed_hier.spice and it’s hierarchical device audit including the devices’ layout parameters.

To perform the Hipex-C extraction, press C icon on the LPE toolbar or select Verification->Extraction->Hipex-C->Run. Figure16
shows the details of the run. Select Verification->Extraction->Hipex C->View Hierarchical Netlist to see the extracted netlist with parasitic capacitors included ( figure17
). The Netlist Editor clearly shows the parasitic capacitors in it’s audit.

To perform the Hipex-R extraction, press R icon on the LPE toolbar or select Verification->Extraction->Hipex-R->Run. Figure18
shows the details of the run. Select Verification->Extraction->Hipex R->View Hierarchical Netlist to see the extracted netlist with parasitic resistors included ( figure19
). The Netlist Editor clearly shows the parasitic resistors in it’s audit.

To perform the parasitic RC extraction, press RC icon on the LPE toolbar or select Verification->Extraction->Hipex-RC->Run. Figure20
shows the details of the run. Select Verification->Extraction->Hipex RC->View Hierarchical Netlist to see the extracted netlist with both parasitic resistors and capacitors ( figure21
).

Graphics

hipex_ex10_fig01.png
hipex_ex10_fig02.png
hipex_ex10_fig03.png
hipex_ex10_fig04.png
hipex_ex10_fig05.png
hipex_ex10_fig06.png
hipex_ex10_fig07.png
hipex_ex10_fig08.png
hipex_ex10_fig09.png
hipex_ex10_fig10.png
hipex_ex10_fig11.png
hipex_ex10_fig12.png
hipex_ex10_fig13.png
hipex_ex10_fig14.png
hipex_ex10_fig15.png
hipex_ex10_fig16.png
hipex_ex10_fig17.png
hipex_ex10_fig18.png
hipex_ex10_fig19.png
hipex_ex10_fig20.png
hipex_ex10_fig21.png

Input Files

LNA_net_cmd.lisa

!--------------------------------------------------------------------
!Net command file
!DESIGN    : design
!TECHNO    : techno
!USER      : 
!TIME      : Thu May 28 20:07:44 2020

!--------------------------------------------------------------------

! HIPEX to CUP map table

cup layer "metal4" /hipex_layer="METAL4";
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";
cup layer "metal5" /hipex_layer="metal5x";

! 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=  31 /gds_type= 0 /geom_layer="METAL4";
hipex layer /gds_layer=  31 /gds_type= 5 /geom_layer="METAL4_port";
hipex layer /gds_layer=  31 /gds_type= 6 /geom_layer="M4_port_text";
hipex layer /gds_layer=  32 /gds_type= 0 /geom_layer="VIA4";
hipex layer /gds_layer=  33 /gds_type= 5 /geom_layer="METAL5_port";
hipex layer /gds_layer=  33 /gds_type= 6 /geom_layer="M5_port_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="M6_port_text";
hipex layer /gds_layer=  38 /gds_type= 0 /geom_layer="DEEP_N_WELL";
hipex layer /gds_layer=  39 /gds_type= 0 /geom_layer="CTM3";
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 /text_layer="M1_port_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= 5 /geom_layer="METAL2_port";
hipex layer /gds_layer=  51 /gds_type= 6 /geom_layer="M2_port_text";
hipex layer /gds_layer=  56 /gds_type= 0 /geom_layer="POLY2";
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= 5 /geom_layer="METAL3_port";
hipex layer /gds_layer=  62 /gds_type= 6 /geom_layer="M3_port_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="p1p2_id";
hipex layer /gds_layer=  88 /gds_type= 0 /geom_layer="poly_con";
hipex layer /gds_layer=  89 /gds_type= 0 /geom_layer="poly2cap_con";
hipex layer /gds_layer=  90 /gds_type=255 /geom_layer="connect_metal1";
hipex layer /gds_layer=  91 /gds_type=255 /geom_layer="tv3";
hipex layer /gds_layer=  92 /gds_type=255 /geom_layer="cv3";
hipex layer /gds_layer=  93 /gds_type=255 /geom_layer="capm3";
hipex layer /gds_layer=  94 /gds_type=255 /geom_layer="metal5x";
hipex layer /gds_layer=  95 /gds_type=255 /geom_layer="p2ind";
hipex layer /gds_layer=  96 /gds_type=255 /geom_layer="segs";
hipex layer /gds_layer=  97 /gds_type=255 /geom_layer="gaps_not_end";
hipex layer /gds_layer=  98 /gds_type=255 /geom_layer="segs_not_end";
hipex layer /gds_layer=  99 /gds_type=255 /geom_layer="inddev_turn";
hipex layer /gds_layer= 100 /gds_type=255 /geom_layer="coil_box_space";
hipex layer /gds_layer= 101 /gds_type=255 /geom_layer="inddev_m4";
hipex layer /gds_layer= 102 /gds_type=255 /geom_layer="rpolyrf_id";
hipex layer /gds_layer= 103 /gds_type=255 /geom_layer="L_edge_pres_rf";
hipex layer /gds_layer= 104 /gds_type=255 /geom_layer="jvar_rf";
hipex layer /gds_layer= 105 /gds_type=255 /geom_layer="jvar3_rf";
hipex layer /gds_layer= 106 /gds_type=255 /geom_layer="ngate_rfw5_nthin";
hipex layer /gds_layer= 107 /gds_type=255 /geom_layer="ngate_rfw5";
hipex layer /gds_layer= 108 /gds_type=255 /geom_layer="s_ndiff";
hipex layer /gds_layer= 109 /gds_type=255 /geom_layer="d_ndiff";
hipex layer /gds_layer= 110 /gds_type=255 /geom_layer="ngate_rf_poly";
hipex layer /gds_layer= 111 /gds_type=255 /geom_layer="bngate_rfw5_nthin";
hipex layer /gds_layer= 112 /gds_type=255 /geom_layer="bngate_rfw5";
hipex layer /gds_layer= 113 /gds_type=255 /geom_layer="s_bndiff";
hipex layer /gds_layer= 114 /gds_type=255 /geom_layer="d_bndiff";
hipex layer /gds_layer= 115 /gds_type=255 /geom_layer="bngate_rf_poly";
hipex layer /gds_layer= 116 /gds_type=255 /geom_layer="ngate_rf_sw";
hipex layer /gds_layer= 117 /gds_type=255 /geom_layer="ngate_rf_dw";
hipex layer /gds_layer= 118 /gds_type=255 /geom_layer="bngate_rf_sw";
hipex layer /gds_layer= 119 /gds_type=255 /geom_layer="bngate_rf_dw";
hipex layer /gds_layer= 120 /gds_type=255 /geom_layer="hvnmos_body";
hipex layer /gds_layer= 121 /gds_type=255 /geom_layer="hvnmos_wellbody";
hipex layer /gds_layer= 122 /gds_type=255 /geom_layer="npn_pbase";
hipex layer /gds_layer= 123 /gds_type=255 /geom_layer="dnwc";
hipex layer /gds_layer= 124 /gds_type=255 /geom_layer="npn_id";

! TEXT TYPES


! PORT LAYERS

hipex port_layer "M1_port_text";

! SOFT LAYERS

hipex soft_layer "DEEP_N_WELL" /link="";
hipex soft_layer "NWEL_port" /link="";
hipex soft_layer "PSUB_port" /link="";
hipex soft_layer "connect_nwell" /link="";
hipex soft_layer "dnwc" /link="";
hipex soft_layer "substrate" /link="";

! MISC (optional) statementsS


! CONNECTIVITY

hipex connect "METAL2" "METAL2_port";
hipex connect "METAL2" "METAL3" /contact="VIA2";
hipex connect "METAL3" "METAL3_port";
hipex connect "METAL3" "METAL4" /contact="tv3";
hipex connect "METAL4" "CTM3" /contact="cv3";
hipex connect "METAL4" "METAL4_port";
hipex connect "METAL4" "metal5x" /contact="VIA4";
hipex connect "bngate_rf_poly";
hipex connect "connect_metal1" "POLY2" /contact="poly2cap_con";
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" "s_ndiff" /contact="CONTACT";
hipex connect "connect_metal1" "d_ndiff" /contact="CONTACT";
hipex connect "connect_metal1" "s_bndiff" /contact="CONTACT";
hipex connect "connect_metal1" "d_bndiff" /contact="CONTACT";
hipex connect "connect_metal1" "hvnmos_body" /contact="CONTACT";
hipex attach "M1_port_text" "connect_metal1";
hipex attach "M1_LABEL" "connect_metal1";
hipex connect "connect_nwell" "NWEL_port";
hipex connect "connect_nwell" "DEEP_N_WELL" /contact="dnwc";
hipex connect "connect_nwell" "well_tie";
hipex connect "connect_poly" "GC_port";
hipex connect "connect_poly" "ngate_rf_poly";
hipex connect "connect_poly" "bngate_rf_poly";
hipex connect "hvnmos_wellbody" "hvnmos_body";
hipex connect "metal5x" "METAL5_port";
hipex connect "metal5x" "METAL6" /contact="VIA5";
hipex connect "metal5x" "p2ind";
hipex connect "ngate_rf_poly";
hipex connect "npn_pbase" "npn_b";
hipex connect "p2ind";
hipex connect "substrate" "PSUB_port";
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="mp";
hipex define_device NMOS "cmosn_id" /drain="n_sd" /gate="connect_poly" /source="n_sd" /subs="substrate" /model_name="mn";
hipex define_device C "p1p2_id" /pin1="POLY2" /pin2="connect_poly" /area_cap=0.0075 /perim_cap=0.00925 /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="hvnmos_wellbody" /model_name="hvcmosn";
hipex define_device NPN "npn_id" /collector="connect_nwell" /base="npn_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" /netlist_prefix="X";
hipex generic_device "inddev_turn" /pins=({{"metal5x", "Top"}, {"p2ind", "Bottom"}}) /auxs={"inddev_m4", "coil_box_space", "gaps_not_end", "segs_not_end", "segs"} /by_shape /func="spiral_turn" /element_name="CUSTOM_SUBCKT" /subckt_filename="" /model_name="ind";
hipex generic_device "capm3" /pins=({{"CTM3", "Pos"}, {"METAL3", "Neg"}}) /by_shape /func="mimcap" /element_name="C" /model_name="mimcap" /netlist_prefix="X";
hipex generic_device "rpolyrf_id" /pins=({{"connect_poly", "Pos"}, {"connect_poly", "Neg"}}) /auxs={"L_edge_pres_rf"} /by_shape /func="rpolyrf" /element_name="R" /model_name="rpoly_rf" /netlist_prefix="X";
hipex generic_device "jvar_rf" /pins=({{"p_sd", "A"}, {"well_tie", "K"}}) /auxs={"jvar3_rf"} /by_net /func="varactor" /element_name="CUSTOM_SUBCKT" /subckt_filename="" /model_name="varactor";
hipex generic_device "ngate_rfw5_nthin" /pins=({{"d_ndiff", "D"}, {"ngate_rf_poly", "G"}, {"s_ndiff", "S"}, {"substrate", "SUB"}}) /auxs={"ngate_rfw5", "ngate_rf_dw", "ngate_rf_sw"} /by_shape /func="rfnmos2v" /element_name="CUSTOM_SUBCKT" /subckt_filename="" /model_name="rfnmos2v";
hipex generic_device "bngate_rfw5_nthin" /pins=({{"d_bndiff", "D"}, {"bngate_rf_poly", "G"}, {"s_bndiff", "S"}, {"substrate", "SUB"}}) /auxs={"bngate_rfw5", "bngate_rf_dw", "bngate_rf_sw"} /by_shape /func="rfnmos3v" /element_name="CUSTOM_SUBCKT" /subckt_filename="" /model_name="rfnmos3v";
Include("/home/alexa/2020_06/10/techfiles/hipex/simucad-radiofrequency-demo.lisa");

! SOFT/WELL CHECKS

hipex soft_check "DEEP_N_WELL";
hipex soft_check "connect_nwell";
hipex soft_check "dnwc";
hipex soft_check "substrate";

! MASKED DIELECTRIC LAYERS

LNA_opt.lisa

!--------------------------------------------------------------------
!Run file
!DESIGN    : design
!TECHNO    : techno
!USER      : 
!TIME      : Thu May 28 20:08:16 2020

!--------------------------------------------------------------------
TOP_CELL                                = "LNA_completed";

HIPEX_DB_DIRECTORY                      = "database";
!--------------------------------------------------------------------
!Extraction: LISA template command file
!--------------------------------------------------------------------

!--------------------------------------------------------------------
!Layout parameters
!--------------------------------------------------------------------
HIPEX_LAYOUT_FORMAT                     = "GDS";
HIPEX_LAYOUT_FILE                       = "LNA_completed$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/10/LNA_completed_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                       = {"simucad_demo_pcells"};

!--------------------------------------------------------------------
!ERC parameters
!--------------------------------------------------------------------
HIPEX_DANGLE_FLAG                       = "YES";
HIPEX_CAP_MESSAGE                       = "YES";
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                   = "NO";
HIPEX_XY_LOCATION                       = "NO";
HIPEX_CASE_SENSITIVE_NET_NAMES          = "YES";
HIPEX_AUTOGENERATE_LOCAL                = "YES";
POWER_NODE                              = {"VDD2"};
GROUND_NODE                             = {"gnd"};
GLOBAL_TEXT_LIST                        = {"VDD2", "gnd"};
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 {"simucad_demo_pcells_contact_box_1_2.4_7hl2sk"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_rppoly_2.2_65.007_895vg1"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"{CONTACT}_M1_ACT_3000_10_10_8000_8000_4_0_1_30000"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_9.92_2.9_0.4_0.5_30wzgj"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_83.36_2_0.4_0.5_txd6i8"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_79.36_2.9_0.4_0_wb6184"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_53.6_2_0.4_0.5_bwzuq8"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_49.6_2.9_0.4_0.5_1muxeq"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_13.92_2_0.4_0.5_tld9gf"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_1.5_14.9_0.4_0.5_g2mkbw"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via23_box_0.4_3.7_0.4_0.5_d2z7zu"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via1_box_83.36_2_voy0uh"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via1_box_53.6_2_p2mjix"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via1_box_13.92_2_c9w8u0"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via1_box_1.5_14.9_uo94dx"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via1_box_0.4_3.7_sletoz"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_contact_box_0.3_4.3_pgl1pl"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_rfnmos2v_5_0.24_8_OFF_xz4cdv"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_rfnmos2v_5_0.24_64_OFF_fs1ixv"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_rfnmos2v_5_0.24_40_OFF_ymvixt"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"{CONTACT}_M4_M5_10000_1_1_20000_20000_4_0_1_100000"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"{CONTACT}_M3_M4_4000_1_1_9000_9000_4_0_1_40000"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"{CONTACT}_M2_M3_4000_1_1_9000_9000_4_0_1_40000"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_contact_box_0.8_2.4_cvewod"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_rppoly_rf_2_30_t6595i"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via45_box_8_8_1_1_o680tp"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_ind_prim_65_6.5_10_3_4rdcid"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_ind_prim_65_2.5_10_3_1cqsux"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_ind_60_6.5_10_3_tyfmsa"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_ind_60_2.5_10_3_qjt34u"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"{CONTACT}_M1_M2_4000_1_1_9000_9000_4_0_1_40000"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"{CONTACT}_M2_M3_4000_1_1_50000_50000_4_0_1_40000"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"{CONTACT}_M3_M4_4000_1_1_50000_50000_4_0_1_40000"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_via34_box_3.575_3.575_0.4_6mqtrs"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"simucad_demo_pcells_mimcap_0_CAP_400_6.5728_O_opczvs"} /EXPLODE;
HIPEX SET_CELL_OPTIONS {"LNA_completed"} /EXPLODE;

!--------------------------------------------------------------------
!Pins parameters
!--------------------------------------------------------------------
HIPEX_IGNORE_DANGLE_PINS                = "YES";

!--------------------------------------------------------------------
!Virtual Nets parameters
!--------------------------------------------------------------------
HIPEX_CHANGE_VIRTUAL_NETS               = "SUFFIX";
HIPEX_VIRTUAL_NET_SYMBOLS               = ":";
HIPEX_TOP_VIRTUAL_CONNECT_ONLY          = "YES";

!--------------------------------------------------------------------
!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/10/RenewSavedFile.sav";
CPX_THREED_GENERATION                   = "NO";
CPX_THREED_FILENAME                     = "/home/alexa/2020_06/10/3DStructureFile.str";

!--------------------------------------------------------------------
!Field Solver C-extraction (Clever) parameters
!--------------------------------------------------------------------

!--------------------------------------------------------------------
!Resistance Extraction parameters
!--------------------------------------------------------------------
RPX_SERIAL_MERGE_THRESHOLD              = 0.0;
RPX_OUTPUT_XY                           = "NO";
RPX_OUTPUT_LAYER_NAMES                  = "NO";
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_c.lisa

INCLUDE ("LNA_opt.lisa");
INCLUDE ("LNA_net_cmd.lisa");
INCLUDE ("/home/alexa/2020_06/10/techfiles/hipex/demo_sbcd_dbc.lisa");

HIPEX_SUMMARY_PATH                      = "/home/alexa/2020_06/10";
HDB READ;
print("Writing Stripe Database  ...");
HDB WRITE_STRIPES /FULL/IGNORE/NETS="VDD*","GND*","VSS*" "default" 200 10;
print("Stripes OK.");
CPX MAIN "default" /rewrite;
netlist spice/hier/c "/home/alexa/2020_06/10/LNA_completed_c_hier.spice";

run_net.lisa

INCLUDE ("LNA_opt.lisa");
INCLUDE ("LNA_net_cmd.lisa");

HIPEX_SUMMARY_PATH                      = "/home/alexa/2020_06/10";
HIPEX_NET_MAIN();

run_rc.lisa

INCLUDE ("LNA_opt.lisa");
INCLUDE ("LNA_net_cmd.lisa");
INCLUDE ("/home/alexa/2020_06/10/techfiles/hipex/demo_sbcd_dbr.lisa");
INCLUDE ("/home/alexa/2020_06/10/techfiles/hipex/demo_sbcd_dbc.lisa");

HIPEX_SUMMARY_PATH                      = "/home/alexa/2020_06/10";
HDB READ;
print("Writing Stripe Database  ...");
HDB WRITE_STRIPES /FULL "default" 200 10;
print("Stripes OK.");
print("Parasitic capacitance extraction...");
CPX MAIN "default" /rewrite;
print("Parasitic resistance extraction...");
RPX MAIN "default" /rewrite;
netlist spice/hier/rcc  "/home/alexa/2020_06/10/LNA_completed_rc_hier.spice";

run_r.lisa

INCLUDE ("LNA_opt.lisa");
INCLUDE ("LNA_net_cmd.lisa");
INCLUDE ("/home/alexa/2020_06/10/techfiles/hipex/demo_sbcd_dbr.lisa");

HIPEX_SUMMARY_PATH                      = "/home/alexa/2020_06/10";
HDB READ; 
print("Writing Stripe Database  ...");
HDB WRITE_STRIPES /FULL/IGNORE/NETS="VDD*","GND*","VSS*" "default" 200 10;
print("Stripes OK.");
RPX MAIN "default" /rewrite;
netlist spice/hier/r "/home/alexa/2020_06/10/LNA_completed_r_hier.spice";

demo_sbcd_drc.dsf

Update_layout: input=no, technology=no, new=no;
output_error_subsegments: yes;
Merge_Input: on;
////////////////////
// Global Defines //
////////////////////
Substrate: LayerR=&A;
Logicform: PSUB=&A.dif.(N_WELL.or.DEEP_N_WELL);
Logicform: Nactive_in_PWELL=(N_PLUS_SELECT.and.ACTIVE.and.PSUB);
Logicform: ISOPWELL=DEEP_N_WELL.dif.N_WELL;
Logicform: Nactive_in_ISOPWELL=(N_PLUS_SELECT.and.ACTIVE.and.ISOPWELL);
Logicform: Pactive_in_NWELL=P_PLUS_SELECT.and.ACTIVE.and.N_WELL;
Logicform: NWELL_TIE=N_PLUS_SELECT.and.ACTIVE.AND.N_WELL;
Logicform: PSUB_TIE=(P_PLUS_SELECT.and.ACTIVE).DIF.N_WELL;
Logicform: SD_ACTIVE=(P_PLUS_SELECT.and.ACTIVE.AND.N_WELL).or.((N_PLUS_SELECT.and.ACTIVE).DIF.N_WELL);
Logicform: SUB_TIE_ACTIVE=(NWELL_TIE).or.(PSUB_TIE);
//////////////////////////
// Connectivity Defines //
//////////////////////////
Connect: Layer1=N_WELL, Layer2=NWELL_TIE ,LayerC=CONTACT, Options =(I-);
Connect: Layer1=PSUB, Layer2=PSUB_TIE ,LayerC=CONTACT, Options =(I-);
///////////////////
//Rules for N_WELL
///////////////////
//1.1  Minimum width
Select: Relation=overlap, Layer1=N_WELL, layer2=THICK_ACTIVE, LayerR=REG_NWELL, Options=(not);
Width: Layer = REG_NWELL, Limits<5, ID= "1.1  Minimum width";
//1.2  Minimum spacing between wells at different potential
OutDistance: Layer = N_WELL, Limits<5 , Options=(C), ID= "1.2  Minimum spacing between wells at different potential";
//1.3  Minimum spacing between wells at same potential
OutDistance: Layer = N_WELL, Limits<6, Options=(N,C'), ID= "1.3  Minimum spacing between wells at same potential";
//1.4  Minimum spacing between wells of different type (if both are drawn)
Logicform: OVERLAPPING_WELLS=(N_WELL).and.(P_WELL);
Copy: Layer=OVERLAPPING_WELLS,  ID="1.4  Minimum spacing between wells of different type (if both are drawn)";
///////////////////
//Rules for ACTIVE
///////////////////
//2.1  Minimum width
Width: Layer = ACTIVE, Limits<0.58  , ID= "2.1  Minimum width";
//2.2  Minimum spacing
OutDistance: Layer = ACTIVE, Limits<1  , Options=(N), ID= "2.2  Minimum spacing";
//2.3  Source/drain active to well edge

InDistance: Layer1 = SD_ACTIVE, Layer2 = REG_NWELL, Limits<2  , Options=(T), ID="2.3  Source/drain active to well edge";
OutDistance: Layer1 = SD_ACTIVE, Layer2 = REG_NWELL, Limits<2  , Options=(T), ID="2.3  Source/drain active to well edge";
//2.4  Substrate/well contact active to well edge
InDistance: Layer1 = SUB_TIE_ACTIVE, Layer2 = REG_NWELL, Limits<1  , Options=(T), ID="2.4  Substrate/well contact active to well edge";
OutDistance: Layer1 = SUB_TIE_ACTIVE, Layer2 = REG_NWELL, Limits<1  , Options=(T), ID="2.4  Substrate/well contact active to well edge";
//2.5  Minimum spacing between non-abutting active of different implant. Abutting active ("split-active") is illustrated under Select Layout Rules.
Select: Layer1=P_PLUS_SELECT, Layer2=N_PLUS_SELECT, LayerR=PtouchN, relation=touch;
Select: Layer1=N_PLUS_SELECT, Layer2=P_PLUS_SELECT, LayerR=NtouchP, relation=touch;
Logicform: naaodi=(PtouchN.or.NtouchP).and.ACTIVE;
OutDistance: Layer = naaodi, Limits<2, Options=(N), ID= "2.5  Minimum spacing between non-abutting active of different implant. Abutting active (split-active) is illustrated under Select Layout Rules.";
///////////////////
//Rules for POLY
///////////////////
Logicform: TRANSISTOR=(POLY.and.ACTIVE);
//3.1  Minimum width
Width: Layer = POLY, Limits<0.24  , ID= "3.1  Minimum width";
//3.2  Minimum spacing over field
Logicform: FIELDPOLY=POLY.DIF.ACTIVE;
OutDistance: Layer = FIELDPOLY, Limits<1  , Options=(N), ID= "3.2  Minimum spacing over field";
//3.2.a  Minimum spacing over active
OutDistance: Layer = TRANSISTOR, Limits<1, Options=(N), ID= "3.2.a  Minimum spacing over active";
//3.3  Minimum gate extension of active
InDistance: Layer1 = TRANSISTOR, Layer2 = POLY, Limits<0.5, ID="3.3  Minimum gate extension of active";
//3.4  Minimum active extension of poly
InDistance: Layer1 = TRANSISTOR, Layer2 = ACTIVE, Limits<1, ID="3.4  Minimum active extension of poly";
//3.5  Minimum field poly to active
OutDistance: Layer1=POLY, Layer2=ACTIVE, Limits<0.4 , Options=(T), ID="3.5  Minimum field poly to active";
///////////////////
//Rules for N_PLUS_SELECT
///////////////////
Logicform: SELECT=N_PLUS_SELECT.or.P_PLUS_SELECT;
//4.1  Minimum select spacing to channel of transistor to ensure adequate source/drain width
OutDistance: Layer1 = TRANSISTOR, Layer2 = SUB_TIE_ACTIVE, Limits<1, ID= "4.1  Minimum select spacing to channel of transistor";
//4.2  Minimum select overlap of active
InDistance: Layer1 = ACTIVE, Layer2 = SELECT, Limits<1  , Options=(T), ID="4.2  Minimum select overlap of active";
//4.3  Minimum select overlap of contact
InDistance: Layer1 = CONTACT, Layer2 = SELECT, Limits<0.5 , Options=(T), ID="4.3  Minimum select overlap of contact";
//4.4  Minimum select width and spacing 
Width: Layer = SELECT, Limits<1 , ID= "4.4  Minimum select width and spacing ";
//4.4  Minimum select width and spacing 
OutDistance: Layer = SELECT, Limits<1 , Options=(N), ID= "4.4  Minimum select width and spacing ";
Logicform: BAD_SELECT=N_PLUS_SELECT.and.P_PLUS_SELECT;
COPY: Layer=BAD_SELECT, ID="P-select and N-select may be coincident, but must not overlap";

//Rules for PBASE (SCNA ONLY)
///////////////////
Logicform: PBASE_CON=PBASE.and.CONTACT;
//16.1  All active contact
SQUARE: Layer=PBASE_CON, LayerR=BAD_PBASE_CON, Value=2.0, Type=EQ, Options=(NOT);
Copy: Layer=BAD_PBASE_CON, ID="16.1  All active contact 2.0";

///////////////////
//Rules for CONTACT
///////////////////
//5.1, 6.1  Exact contact size
Logicform: REG_CON=CONTACT.dif.PBASE_CON;
SQUARE: Layer=REG_CON, LayerR=BAD_CONTACT, Value=0.3, Type=EQ, Options=(NOT);
Copy: Layer=BAD_CONTACT, ID="5.1, 6.1  Exact contact size 0.3";
//5.2  Minimum poly overlap
InDistance: Layer1 = CONTACT, Layer2 = POLY, Limits<0.2  , Options=(T), ID="5.2  Minimum poly overlap";
//5.3, 6.3  Minimum contact spacing
OutDistance: Layer = CONTACT, Limits<0.5, Options=(N), ID= "5.3, 6.3  Minimum contact spacing";
//5.4, 6.4  Minimum spacing to gate of transistor
OutDistance: Layer1=CONTACT, Layer2=TRANSISTOR, Limits<0.35 , Options=(T), ID="5.4, 6.4  Minimum spacing to gate of transistor";
///////////////////
//Rules for Active Contact
///////////////////
//6.2  Minimum active overlap
InDistance: Layer1 = CONTACT, Layer2 = ACTIVE, Limits<0.1  , Options=(T), ID="6.2  Minimum active overlap";
///////////////////
//Rules for METAL1
///////////////////
//7.1  Minimum width
Width: Layer = METAL1, Limits<0.3  , ID= "7.1  Minimum width";
//7.2  Minimum spacing
OutDistance: Layer = METAL1, Limits<0.5  , Options=(N), ID= "7.2  Minimum spacing";
//7.3  Minimum overlap of any contact
InDistance: Layer1 = CONTACT, Layer2 = METAL1, Limits<0.1, Options=(T), ID="7.3  Minimum overlap of any contact";
Undersize: layer=METAL1, LayerR=&big_metal1, value=5.0;
Oversize: layer=&big_metal1, LayerR=wide_metal1, value=5.0;  
//7.4  Minimum spacing when either metal line is wider than 10 lambda
OutDistance: Layer1=wide_metal1, Layer2=METAL1, Limits<1.5 , Options=(T), ID="7.4  Minimum spacing when either metal line is wider than 10 lambda";
///////////////////
//Rules for VIA
///////////////////
//8.1  Exact size  0.4 x 0.4
SQUARE: Layer=VIA, LayerR=BAD_VIA, Value=0.4, Type=EQ, Options=(NOT);
Copy: Layer=BAD_VIA, ID="8.1  Exact size  0.4 x 0.4";
//8.2  Minimum via1 spacing
OutDistance: Layer=VIA, Limits<0.5 , Options=(T), ID="8.2  Minimum via1 spacing for 3+Metal Process";
//8.3  Minimum overlap by metal1
//InDistance: Layer1 = VIA, Layer2 = METAL1, Limits<0.2  , Options=(T), ID="8.3  Minimum overlap by metal1";
InDistance: Layer1 = VIA, Layer2 = METAL1, Limits<0.05  , Options=(T), ID="8.3  Minimum overlap by metal1";
//COMMENTED FOR RFMOS
////8.4  Minimum spacing to contact for technology codes mapped to processes that do not allow stacked vias (SCNA, SCNE, SCN3M, SCN3MLC)  2  n/a  n/a  2  2  n/a  
//OutDistance: Layer1 = VIA, Layer2 = CONTACT, Limits<0.3 , Options=(T), ID="8.4  Min VIA to contact(no stacked vias)";


//8.5  Minimum spacing to poly or active edge for technology codes mapped to processes that do not allow stacked vias (NOTE
Logicform: PorA=POLY.or.ACTIVE;
OutDistance: Layer1 = VIA, Layer2 =PorA, Limits<0.15  , ID="8.5  Minimum spacing to poly or active edge(no stacked vias)";
InDistance: Layer1 = VIA, Layer2 = PorA, Limits<0.15  , ID="8.5  Minimum spacing to poly or active edge(no stacked vias)";
///////////////////
//Rules for METAL2
///////////////////
//9.1  Minimum width
Width: Layer = METAL2, Limits<0.4  , ID= "9.1  Minimum width";
//9.2  Minimum spacing
OutDistance: Layer = METAL2, Limits<0.5, Options=(N), ID= "9.2  Minimum spacing";
//9.3  Minimum overlap of via1
InDistance: Layer1 = VIA, Layer2 = METAL2, Limits<0.05  , Options=(T), ID="9.3  Minimum overlap of via1";
Undersize: layer=METAL2, LayerR=&big_metal2, value=5.0;
Oversize: layer=&big_metal2, LayerR=wide_metal2, value=5.0;  
//9.4  Minimum spacing when either metal line is wider than 10 lambda
OutDistance: Layer1=wide_metal2, Layer2=METAL2, Limits<2, Options=(T), ID="9.4  Minimum spacing when either metal line is wider than 10 lambda";
///////////////////
//Rules for POLY2 for Capacitor
///////////////////
Select: Layer1=POLY2, Layer2=POLY, LayerR=POLY2CAP, Relation=Inside;
//11.1  Minimum width
Width: Layer = POLY2CAP, Limits<1, ID= "11.1  Minimum width";
//11.2  Minimum spacing
OutDistance: Layer = POLY2CAP, Limits<1.5, Options=(N), ID= "11.2  Minimum spacing";
//11.3  Minimum poly overlap
InDistance: Layer1 = POLY2CAP, Layer2 = POLY, Limits<1, Options=(T), ID="11.3  Minimum poly overlap";
//11.4  Minimum spacing to active or well edge
OutDistance: Layer1=POLY2CAP, Layer2=ACTIVE, Limits<2, Options=(T), ID="11.4  Minimum spacing to active or well edge";
OutDistance: Layer1=POLY2CAP, Layer2=N_WELL, Limits<2, Options=(T), ID="11.4  Minimum spacing to active or well edge";
InDistance: Layer1=POLY2CAP, Layer2=N_WELL, Limits<2, Options=(T), ID="11.4  Minimum spacing to active or well edge";
Logicform: POLYCONTACT=POLY.and.CONTACT.DIF.POLY2;
//11.5  Minimum spacing to poly contact
OutDistance: Layer1=POLY2CAP, Layer2=POLYCONTACT, Limits<1, Options=(T), ID="11.5  Minimum spacing to poly contact";
//11.6  Minimum spacing to unrelated metal
DISCONNECT: Layer=GLASS;
DISCONNECT: Layer=METAL1;
Connect: Layer1=POLY2CAP, Layer2=METAL1 , LayerC=CONTACT, Options =(I-);
CONNECT_ORDER:;
OutDistance: Layer1=POLY2CAP, Layer2=METAL1, Limits<1, Options=(C), ID="11.6  Minimum spacing to unrelated metal";
///////////////////
//Rules for VIA2
///////////////////
//14.1  Exact size
SQUARE: Layer=VIA2, LayerR=BAD_VIA2, Value=0.4, Type=EQ, Options=(NOT);
Copy: Layer=BAD_VIA2, ID="14.1  Exact size";
//14.2  Minimum spacing
OutDistance: Layer = VIA2, Limits<0.5  , Options=(N), ID= "14.2  Minimum spacing";
//14.3  Minimum overlap by metal2
InDistance: Layer1 = VIA2, Layer2 = METAL2, Limits<0.05  , Options=(T), ID="14.3  Minimum overlap by metal2";
//14.4  Minimum spacing to via1"; 
OutDistance: Layer1=VIA2, Layer2=VIA, Limits<0.3, Options=(T), ID="14.4  Minimum spacing to via1 (no stacked vias)";
//14.5  Via2 may be placed over contact  
///////////////////
//Rules for METAL3
///////////////////
//15.1  Minimum width
Width: Layer = METAL3, Limits<0.5 , ID= "15.1  Minimum width";
//15.2  Minimum spacing to metal3
OutDistance: Layer = METAL3, Limits<1 , Options=(N), ID= "15.2  Minimum spacing to metal3";
//15.3  Minimum overlap of via2
InDistance: Layer1 = VIA2, Layer2 = METAL3, Limits<0.05 , Options=(T), ID="15.3  Minimum overlap of via2";
Undersize: layer=METAL3, LayerR=&big_metal3, value=5.0;
Oversize: layer=&big_metal3, LayerR=wide_metal3, value=5.0;  
//15.4  Minimum spacing when either metal line is wider than 10 um
OutDistance: Layer1=wide_metal3, Layer2=METAL3, Limits<1.5   , Options=(T), ID="15.4  Minimum spacing when either metal line is wider than 10 um";
///////////////////

///////////////////
//Rules for VIA3
///////////////////
//21.1  Exact size
SQUARE: Layer=VIA3, LayerR=BAD_VIA3, Value=0.4, Type=EQ, Options=(NOT);
Copy: Layer=BAD_VIA3, ID="21.1  Exact size";
//21.2  Minimum spacing
OutDistance: Layer = VIA3, Limits<0.5, Options=(T), ID="21.2  Minimum spacing";
//21.3  Minimum overlap by Metal3
InDistance: Layer1 = VIA3, Layer2 = METAL3, Limits<0.2, Options=(T), ID="21.3  Minimum overlap by Metal3";
//21.4  Minimum spacing to via2"; 
OutDistance: Layer1=VIA3, Layer2=VIA2, Limits<0.3, Options=(T), ID="21.4  Minimum spacing to via2 (no stacked vias)";
///////////////////
//Rules for METAL4
///////////////////
//22.1  METAL4 width
Width: Layer = METAL4, Limits<0.5, ID= "22.1  METAL4 width";
//22.2  METAL4 space
OutDistance: Layer = METAL4, Limits<1, Options=(N), ID= "22.2  METAL4 space";
//22.3  METAL4 overlap of VIA3
InDistance: Layer1 = VIA3, Layer2 = METAL4, Limits<0.2 , Options=(T), ID="22.3  METAL4 overlap of VIA3";
Undersize: layer=METAL4, LayerR=&big_metal4, value=5.0;
Oversize: layer=&big_metal4, LayerR=wide_metal4, value=5.0;
//22.4  Minimum spacing when either metal line is wider than 10 um
OutDistance: Layer1=wide_metal4, Layer2=METAL4, Limits<1.5, Options=(T), ID="22.4  Minimum spacing when either metal line is wider than 10 um";
///////////////////
//Rules for THICK_ACTIVE
///////////////////
//24.1  Minimum width
Width: Layer = THICK_ACTIVE, Limits<4  , ID= "24.1  Minimum width";
//24.2  Minimum spacing
OutDistance: Layer = THICK_ACTIVE, Limits<4, Options=(N), ID= "24.2  Minimum spacing";
//24.3  Minimum ACTIVE overlap
InDistance: Layer1 = ACTIVE, Layer2 = THICK_ACTIVE, Limits<1, ID="24.3  Minimum ACTIVE overlap";
//24.4  Minimum space to external ACTIVE
OutDistance: Layer1=THICK_ACTIVE, Layer2=ACTIVE, Limits<3, ID="24.4  Minimum space to external ACTIVE";
Logicform: TGPOLY=THICK_ACTIVE.and.POLY;
//24.5  Minimum poly width in a THICK_ACTIVE gate
Width: Layer = TGPOLY, Limits<0.35 , ID= "24.5  Minimum poly width in a THICK_ACTIVE gate";
//24.6  Every ACTIVE region is either entirely inside THICK_ACTIVE or entirely outside THICK_ACTIVE  
Select: Layer1=ACTIVE, Layer2=THICK_ACTIVE, LayerR=BAD_ACTIVE, Relation=CUT;
Copy: Layer=BAD_ACTIVE, ID="24.6  ACTIVE is entirely inside THICK_ACTIVE or entirely outside THICK_ACTIVE";
///////////////////
//Rules for VIA4
///////////////////
//25.1  Exact size
SQUARE: Layer=VIA4, LayerR=BAD_VIA4, Value=1, Type=EQ, Options=(NOT);
Copy: Layer=BAD_VIA4, ID="25.1  Exact size";
//25.2  Minimum spacing
OutDistance: Layer = VIA4, Limits<1 , Options=(N), ID= "25.2  Minimum spacing";
//25.3  Minimum overlap by Metal4
InDistance: Layer1 = VIA4, Layer2 = METAL4, Limits<1  , Options=(T), ID="25.3  Minimum overlap by Metal4";
///////////////////
//Rules for METAL5
///////////////////
//26.1  Minimum width
Width: Layer = METAL5, Limits<4, ID= "26.1  Minimum width";
//26.2  Minimum spacing to Metal5
OutDistance: Layer = METAL5, Limits<=2.995 , Options=(N), ID= "26.2  Minimum spacing to Metal5";
//26.3  Minimum overlap of Via4
InDistance: Layer1 = VIA4, Layer2 = METAL5, Limits<1, Options=(T), ID="26.3  Minimum overlap of Via4";
Undersize: layer=METAL5, LayerR=&big_metal5, value=5.0;
Oversize: layer=&big_metal5, LayerR=wide_metal5, value=5.0; 
//26.4  Minimum spacing when either metal line is wider than 10 um
OutDistance: Layer1=wide_metal5, Layer2=METAL5, Limits<8, Options=(T), ID="26.4  Minimum spacing when either metal line is wider than 10 um";
///////////////////
//Rules for VIA5
///////////////////
//29.1  Exact size
SQUARE: Layer=VIA5, LayerR=BAD_VIA5, Value=3, Type=EQ, Options=(NOT);
Copy: Layer=BAD_VIA5, ID="29.1  Exact size";
//29.2  Minimum spacing
OutDistance: Layer = VIA5, Limits<4, Options=(T), ID="29.2  Minimum spacing";
//29.3  Minimum overlap by Metal5
InDistance: Layer1 = VIA5, Layer2 = METAL5, Limits<1, Options=(T), ID="29.3  Minimum overlap by Metal5";
///////////////////
//Rules for METAL6
///////////////////
//30.1  Minimum width
Width: Layer = METAL6, Limits<5, ID= "30.1  Minimum width";
//30.2  Minimum spacing to Metal6
OutDistance: Layer = METAL6, Limits<5  , Options=(N), ID= "30.2  Minimum spacing to Metal6";
//30.3  Minimum overlap of Via5
InDistance: Layer1 = VIA5, Layer2 = METAL6, Limits<1, ID="30.3  Minimum overlap of Via5";
Undersize: layer=METAL6, LayerR=&big_metal6, value=5.0;
Oversize: layer=&big_metal6, LayerR=wide_metal6, value=5.0;  
//30.4  Minimum spacing when either metal line is wider than 10 um
OutDistance: Layer1=wide_metal6, Layer2=METAL6, Limits<10 , Options=(T), ID="30.4  Minimum spacing when either metal line is wider than 10 um";
///////////////////
//Rules for DEEP_N_WELL
///////////////////
//31.1  Minimum Width, Deep_N_Well
Width: Layer = DEEP_N_WELL, Limits<22.5, ID= "31.1  Minimum Width, Deep_N_Well";
//31.2  Minimum Spacing, Deep_N_Well to Deep_N_Well
OutDistance: Layer = DEEP_N_WELL, Limits<5, Options=(N), ID= "31.2  Minimum Spacing, Deep_N_Well to Deep_N_Well";
//31.3  Minimum extension, N_Well beyond Deep_N_Well edge
Logicform: NWELLS=N_WELL.or.DEEP_N_WELL;
InDistance: Layer1 = DEEP_N_WELL, Layer2 = NWELLS, Limits<4, ID="31.3  Minimum extension, N_Well beyond Deep_N_Well edge";
//31.4  Minimum overlap, N_Well over Deep_N_Well edge
OvDistance: Layer1 = N_WELL, Layer2 = DEEP_N_WELL, Limits<0.5, ID="31.4  Minimum overlap, N_Well over Deep_N_Well edge";
//31.5  Minimum spacing, Deep_N_Well to unrelated N_Well
DISCONNECT: Layer=DEEP_N_WELL;
DISCONNECT: Layer=N_WELL;
Connect: Layer1=DEEP_N_WELL, Layer2=DEEP_N_WELL ,Options =(T+);
CONNECT_ORDER:;
OutDistance: Layer1=DEEP_N_WELL, Layer2=N_WELL, Limits<5, Options=(C), ID="31.5  Minimum spacing, Deep_N_Well to unrelated N_Well";
//31.6  Minimum spacing, N+Active in isolated P-well, to N_Well
OutDistance: Layer1=Nactive_in_ISOPWELL, Layer2=REG_NWELL, Limits<5, Options=(T), ID="31.6  Minimum spacing, N+Active in isolated P-well, to N_Well";
//31.7  Minimum spacing, external N+Active to Deep_N_Well
OutDistance: Layer1=Nactive_in_PWELL, Layer2=DEEP_N_WELL, Limits<30, Options=(T), ID="31.7  Minimum spacing, external N+Active to Deep_N_Well";
//31.8  Minimum spacing, P+Active in N_Well to its Deep_N_Well
OutDistance: Layer1=Pactive_in_NWELL, Layer2=DEEP_N_WELL, Limits<10 , Options=(T), ID="31.8  Minimum spacing, P+Active in N_Well to its Deep_N_Well";

demo_sbcd.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 = "VARDUMMY_drawing3"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 48
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "TEXT"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "CTMDUMMY"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 39
  GDS2DataType = 5
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "CTM3"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 39
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "RFDUMMY_drawing1"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 40
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "WELLBODY"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 41
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = 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
  }
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
  }
Layer
  {
  Name = "P_WELL"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "CWC"
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (255,255,0)
  GDS2Num = 59
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "ACTIVE"
  Wire
    {
    MiterAngle = 20
    Width = 0.7
    Joint = MITER
    End = BUTT
    }
  CIFName = "CAA"
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (170,0,255)
  GDS2Num = 43
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
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
  }
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
  }
Layer
  {
  Name = "POLY"
  Wire
    {
    MiterAngle = 20
    Width = 0.5
    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
  }
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
  }
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
  }
Layer
  {
  Name = "N_PLUS_SELECT"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "CSN"
  Stipple = "STP_EMPTY"
  Color = (0,170,0)
  GDS2Num = 45
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
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
  }
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
  }
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
  }
Layer
  {
  Name = "METAL1"
  Wire
    {
    MiterAngle = 20
    Width = 0.3
    Joint = MITER
    End = BUTT
    }
  CIFName = "CM1"
  Stipple = "STP_H_DENSE7"
  Color = (0,170,255)
  GDS2Num = 49
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "M1_port_text"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 49
  GDS2DataType = 6
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "VIA"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "CV1"
  Stipple = "blank"
  Color = (255,0,0)
  GDS2Num = 50
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "METAL2"
  Wire
    {
    MiterAngle = 20
    Width = 0.4
    Joint = MITER
    End = BUTT
    }
  CIFName = "CM2"
  Stipple = "STP_H_DENSE7"
  Color = (0,170,0)
  GDS2Num = 51
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "M2_port_text"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 51
  GDS2DataType = 6
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "M2_LABEL"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = 51
  GDS2DataType = 1
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "RF_DRAIN"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 43
  GDS2DataType = 3
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "VIA2"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "CV2"
  Stipple = "STP_X_CROSS"
  Color = (255,0,0)
  GDS2Num = 61
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "METAL3"
  Wire
    {
    MiterAngle = 20
    Width = 0.5
    Joint = MITER
    End = BUTT
    }
  CIFName = "CM3"
  Stipple = "STP_H_DENSE7"
  Color = (223,228,27)
  GDS2Num = 62
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "M3_port_text"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 62
  GDS2DataType = 6
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "M3_LABEL"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = 62
  GDS2DataType = 1
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "VIA3"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "CV3"
  Stipple = "STP_X_CROSS"
  Color = (255,85,0)
  GDS2Num = 30
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "METAL4"
  Wire
    {
    MiterAngle = 20
    Width = 0.5
    Joint = MITER
    End = BUTT
    }
  CIFName = "CM4"
  Stipple = "STP_H_DIAGCROSS"
  Color = (207,155,46)
  GDS2Num = 31
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "M4_port_text"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 31
  GDS2DataType = 6
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "M4_LABEL"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = 31
  GDS2DataType = 1
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
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
  }
Layer
  {
  Name = "METAL5"
  Wire
    {
    MiterAngle = 20
    Width = 4
    Joint = MITER
    End = BUTT
    }
  CIFName = "CM5"
  Stipple = "blank"
  Color = (255,0,0)
  GDS2Num = 33
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "M5_port_text"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 33
  GDS2DataType = 6
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "M5_LABEL"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = 33
  GDS2DataType = 1
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "METAL6"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "CM6"
  Stipple = "blank"
  Color = (255,0,0)
  GDS2Num = 37
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "M6_port_text"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = 37
  GDS2DataType = 6
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "M6_LABEL"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = 37
  GDS2DataType = 1
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
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
  }
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
  }
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
  }
Layer
  {
  Name = "RES_ID"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = 1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = FALSE
  EdgeLayer = FALSE
  }
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
  }
Layer
  {
  Name = "pnp_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "pnp_e"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "pnp_c"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "npn_e"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "npn_b"
  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
  }
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
  }
Layer
  {
  Name = "p_sd"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "0solid"
  Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00"
  Color = (85,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "n_sd"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "0solid"
  Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00"
  Color = (0,170,127)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "cmosp_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "26"
  Bitmap = "0000000008000000080000000200000001000100AA005500AA005500AA005500AA005500"
  Color = (131,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "cmosn_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "26"
  Bitmap = "0000000008000000080000000200000001000100AA005500AA005500AA005500AA005500"
  Color = (170,255,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvcmosp_id"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_FDIAG"
  Color = (255,0,0)
  ColorName = "0"
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvpmos_d"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvpmos_s"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvcmosn_id"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_FDIAG"
  Color = (0,170,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvnmos_d"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvnmos_s"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "rpplus_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "rnpoly_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "rpoly_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "rnwell_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "rpplus_pin"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (170,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "connect_poly"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "connect_nwell"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (255,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "substrate"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "26"
  Bitmap = "0000000008000000080000000200000001000100AA005500AA005500AA005500AA005500"
  Color = (255,255,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "sub_tie"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "STP_H_DENSE4"
  Color = (255,255,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "well_tie"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "blank"
  Color = (255,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "deepnwell_tie"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "blank"
  Color = (0,0,255)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "p1p2_id"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (255,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "poly_con"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (255,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "poly2cap_con"
  Wire
    {
    MiterAngle = 20
    Width = 0
    Joint = EXTEND
    End = EXTEND
    }
  CIFName = "XXXX"
  Stipple = "blank"
  Bitmap = "000000000800000008000000020000000100010001000200040008001000200040008000"
  Color = (255,0,0)
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
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
  }
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
  }
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
  }
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
  }
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
  }
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
  }
Layer
  {
  Name = "connect_metal1"
  Wire
    {
    MiterAngle = 20
    Width = 1
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE5"
  Color = (26,182,222)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "connect_metal2"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (175,9,165)
  ColorName = "0"
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "connect_metal3"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE6"
  Color = (241,215,59)
  ColorName = "0"
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "connect_metal4"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (92,132,116)
  ColorName = "0"
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "connect_metal5"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (89,47,179)
  ColorName = "0"
  GDS2Num = -1
  GDS2DataType = 0
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "tv3"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE7"
  Color = (121,15,19)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "cv3"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (130,14,86)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "capm3"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (145,183,27)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "metal5x"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (203,77,217)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "p2ind"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE6"
  Color = (142,226,90)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "segs"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (247,129,61)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "gaps_not_end"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE3"
  Color = (164,124,140)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "segs_not_end"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (109,187,15)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "inddev_turn"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE5"
  Color = (101,131,183)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "coil_box_space"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE4"
  Color = (114,158,38)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "inddev_m4"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE5"
  Color = (83,133,49)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "inddev"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE4"
  Color = (215,161,93)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "coil_box_space5"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE4"
  Color = (223,217,181)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "coil_box_space1"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (88,104,200)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "rpolyrf_id"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (17,55,155)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "L_edge_pres_rf"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (126,114,42)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "jvar_rf"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE6"
  Color = (16,240,176)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "jvar3_rf"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE6"
  Color = (76,20,196)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "ngate_rfw5_nthin"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE5"
  Color = (130,14,214)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "ngate_rfw5"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (174,194,58)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "s_ndiff"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (195,149,1)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "d_ndiff"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (76,148,68)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "ngate_rf_poly"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (48,208,144)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "bngate_rfw5_nthin"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (121,143,147)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "bngate_rfw5"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE5"
  Color = (19,197,241)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "s_bndiff"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE3"
  Color = (82,190,198)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "d_bndiff"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE6"
  Color = (98,46,246)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "bngate_rf_poly"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE3"
  Color = (149,211,199)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "bngate_rf_w5"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (62,178,106)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = TRUE
  }
Layer
  {
  Name = "ngate_rf_sw"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE4"
  Color = (150,26,178)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "ngate_rf_dw"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (195,21,129)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "bngate_rf_sw"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DIAGCROSS"
  Color = (126,114,42)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "bngate_rf_dw"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_CROSS"
  Color = (23,225,29)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvnmos_body"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE5"
  Color = (161,39,203)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "hvnmos_wellbody"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE3"
  Color = (233,31,227)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "npn_pbase"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE5"
  Color = (2,142,214)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "dnwc"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE4"
  Color = (254,114,42)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Layer
  {
  Name = "npn_id"
  Wire
    {
    MiterAngle = 20
    Width = 0.01
    Joint = EXTEND
    End = EXTEND
    }
  Stipple = "STP_H_DENSE4"
  Color = (114,158,166)
  ColorName = "0"
  GDS2Num = -32768
  GDS2DataType = -32768
  Scope = FLAT
  UseGridParams = FALSE
  ScratchLayer = TRUE
  EdgeLayer = FALSE
  }
Device
  {
  Type = "p-MOSFET"
  SpName = "mp"
  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 = "mn"
  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.00925
    }
  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 = "hvnmos_wellbody"
    TypeL = PIN
    }
  }
Device
  {
  Type = "npn-BJT"
  SpName = "npn"
  Params = 0
  DevLay
    {
    NameL = "npn_id"
    TypeL = REC
    }
  DevLay
    {
    NameL = "connect_nwell"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "npn_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
    }
  NetlistPrefix = "X"
  }
Device
  {
  Type = "generic"
  SpName = "ind"
  Params = 0
  DevLay
    {
    NameL = "inddev_turn"
    TypeL = REC
    }
  DevLay
    {
    NameL = "metal5x"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "p2ind"
    TypeL = PIN
    }
  GenericParam
    {
    Element = "CUSTOM_SUBCKT"
    Type = "BY_SHAPE"
    Pins = "Top,Bottom"
    Aux = "inddev_m4,coil_box_space,gaps_not_end,segs_not_end,segs"
    Proc = "spiral_turn"
    File = "./hipex/simucad-radiofrequency-demo.lisa"
    }
  }
Device
  {
  Type = "generic"
  SpName = "mimcap"
  Params = 0
  DevLay
    {
    NameL = "capm3"
    TypeL = REC
    }
  DevLay
    {
    NameL = "CTM3"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "METAL3"
    TypeL = PIN
    }
  GenericParam
    {
    Element = "C"
    Type = "BY_SHAPE"
    Pins = "Pos,Neg"
    Proc = "mimcap"
    File = "./hipex/simucad-radiofrequency-demo.lisa"
    }
  NetlistPrefix = "X"
  }
Device
  {
  Type = "generic"
  SpName = "rpoly_rf"
  Params = 0
  DevLay
    {
    NameL = "rpolyrf_id"
    TypeL = REC
    }
  DevLay
    {
    NameL = "connect_poly"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "connect_poly"
    TypeL = PIN
    }
  GenericParam
    {
    Element = "R"
    Type = "BY_SHAPE"
    Pins = "Pos,Neg"
    Aux = "L_edge_pres_rf"
    Proc = "rpolyrf"
    File = "./hipex/simucad-radiofrequency-demo.lisa"
    }
  NetlistPrefix = "X"
  }
Device
  {
  Type = "generic"
  SpName = "varactor"
  Params = 0
  DevLay
    {
    NameL = "jvar_rf"
    TypeL = REC
    }
  DevLay
    {
    NameL = "p_sd"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "well_tie"
    TypeL = PIN
    }
  GenericParam
    {
    Element = "CUSTOM_SUBCKT"
    Type = "BY_NET"
    Pins = "A,K"
    Aux = "jvar3_rf"
    Proc = "varactor"
    File = "./hipex/simucad-radiofrequency-demo.lisa"
    }
  }
Device
  {
  Type = "generic"
  SpName = "rfnmos2v"
  Params = 0
  DevLay
    {
    NameL = "ngate_rfw5_nthin"
    TypeL = REC
    }
  DevLay
    {
    NameL = "d_ndiff"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "ngate_rf_poly"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "s_ndiff"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "substrate"
    TypeL = PIN
    }
  GenericParam
    {
    Element = "CUSTOM_SUBCKT"
    Type = "BY_SHAPE"
    Pins = "D,G,S,SUB"
    Aux = "ngate_rfw5,ngate_rf_dw,ngate_rf_sw"
    Proc = "rfnmos2v"
    File = "./hipex/simucad-radiofrequency-demo.lisa"
    }
  }
Device
  {
  Type = "generic"
  SpName = "rfnmos3v"
  Params = 0
  DevLay
    {
    NameL = "bngate_rfw5_nthin"
    TypeL = REC
    }
  DevLay
    {
    NameL = "d_bndiff"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "bngate_rf_poly"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "s_bndiff"
    TypeL = PIN
    }
  DevLay
    {
    NameL = "substrate"
    TypeL = PIN
    }
  GenericParam
    {
    Element = "CUSTOM_SUBCKT"
    Type = "BY_SHAPE"
    Pins = "D,G,S,SUB"
    Aux = "bngate_rfw5,bngate_rf_dw,bngate_rf_sw"
    Proc = "rfnmos3v"
    File = "./hipex/simucad-radiofrequency-demo.lisa"
    }
  }
Connect = ("connect_metal1","METAL2","VIA")
Connect = ("METAL2","METAL3","VIA2")
Connect = ("METAL3","METAL4","tv3")
Connect = ("METAL4","CTM3","cv3")
Connect = ("METAL4","metal5x","VIA4")
Connect = ("metal5x","METAL6","VIA5")
Connect = ("metal5x","p2ind")
Connect = ("connect_metal1","n_sd","CONTACT")
Connect = ("connect_metal1","s_ndiff","CONTACT")
Connect = ("connect_metal1","d_ndiff","CONTACT")
Connect = ("connect_metal1","s_bndiff","CONTACT")
Connect = ("connect_metal1","d_bndiff","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","hvnmos_body","CONTACT")
Connect = ("hvnmos_wellbody","hvnmos_body")
Connect = ("connect_poly","bngate_rf_poly")
Connect = ("connect_poly","ngate_rf_poly")
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 = ("npn_pbase","npn_b")
Connect = ("connect_nwell","DEEP_N_WELL","dnwc")
Connect = ("connect_nwell","NWEL_port")
Connect = ("connect_poly","GC_port")
Connect = ("connect_metal1","METAL1_port")
Connect = ("METAL2","METAL2_port")
Connect = ("METAL3","METAL3_port")
Connect = ("METAL4","METAL4_port")
Connect = ("metal5x","METAL5_port")
Connect = ("substrate","PSUB_port")
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")
AttachPortText = ("connect_metal1","M1_port_text")
AttachPortText = ("METAL2","M2_port_text")
AttachPortText = ("METAL3","M3_port_text")
AttachPortText = ("METAL4","M4_port_text")
AttachPortText = ("METAL5","M5_port_text")
AttachPortText = ("METAL6","M6_port_text")
GridParams
  {
  MinGridStep = 5
  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 = ("METAL1","metal1")
NetToCap = ("METAL2","metal2")
NetToCap = ("METAL3","metal3")
NetToCap = ("METAL4","metal4")
NetToCap = ("METAL6","metal6")
NetToCap = ("connect_poly","poly1")
NetToCap = ("substrate","substrate")
NetToCap = ("connect_metal1","metal1")
NetToCap = ("metal5x","metal5")
SoftLayer = ("NWEL_port","","false")
SoftLayer = ("PSUB_port","","false")
SoftLayer = ("DEEP_N_WELL","","true")
SoftLayer = ("connect_nwell","","true")
SoftLayer = ("substrate","","true")
SoftLayer = ("dnwc","","true")
PwireTemplate
  {
  TemplateName = "nguard"
  Layer = "N_WELL"
  Width = 5
  Joint = EXTEND
  End = EXTEND
  Offset = 0
  Justification = CENTER
  PwEnclosureWire
    {
    Layer = "ACTIVE"
    BeginOffset = -2
    EndOffset = -2
    Enclosure = 2.15
    }
  PwEnclosureWire
    {
    Layer = "METAL1"
    BeginOffset = -2.5
    EndOffset = -2.5
    Enclosure = 2.25
    }
  PwBox
    {
    Layer = "CONTACT"
    BeginOffset = -3
    EndOffset = -3
    Width = 0.3
    Length = 0.3
    Justification = CENTER
    Distribution = EVEN
    Offset = 0
    Space = 0.5
    BeginCornerOffset = 0
    EndCornerOffset = 0
    }
  }
PwireTemplate
  {
  TemplateName = "pguard"
  Layer = "P_PLUS_SELECT"
  Width = 1
  Joint = EXTEND
  End = EXTEND
  Offset = 0
  Justification = CENTER
  PwEnclosureWire
    {
    Layer = "ACTIVE"
    BeginOffset = -2
    EndOffset = -2
    Enclosure = 0.15
    }
  PwEnclosureWire
    {
    Layer = "METAL1"
    BeginOffset = -2.5
    EndOffset = -2.5
    Enclosure = 0.25
    }
  PwBox
    {
    Layer = "CONTACT"
    BeginOffset = -3
    EndOffset = -3
    Width = 0.3
    Length = 0.3
    Justification = CENTER
    Distribution = EVEN
    Offset = 0
    Space = 0.5
    BeginCornerOffset = 0
    EndCornerOffset = 0
    }
  }
DeviceContact
  {
  ContactName = "M1_ACT"
  ContactLayer = "CONTACT"
  Layer1 = "ACTIVE"
  Layer2 = "METAL1"
  Layer1Margin = 0.1
  Layer2Margin = 0.1
  ContactWidth = 0.3
  ContactLength = 0.3
  ContactRows = 1
  ContactCols = 1
  ContactRowDelta = 0.8
  ContactColDelta = 0.8
  Justification = MIDDLECENTER
  }
DeviceContact
  {
  ContactName = "M1_M2"
  ContactLayer = "VIA"
  Layer1 = "METAL1"
  Layer2 = "METAL2"
  Layer1Margin = 0.05
  Layer2Margin = 0.05
  ContactWidth = 0.4
  ContactLength = 0.4
  ContactRows = 1
  ContactCols = 1
  ContactRowDelta = 0.9
  ContactColDelta = 0.9
  Justification = MIDDLECENTER
  }
DeviceContact
  {
  ContactName = "M1_POLY1"
  ContactLayer = "CONTACT"
  Layer1 = "POLY"
  Layer2 = "METAL1"
  Layer1Margin = 0.5
  Layer2Margin = 0.1
  ContactWidth = 0.3
  ContactLength = 0.3
  ContactRows = 1
  ContactCols = 1
  ContactRowDelta = 0.8
  ContactColDelta = 0.8
  Justification = MIDDLECENTER
  }
DeviceContact
  {
  ContactName = "M2_M3"
  ContactLayer = "VIA2"
  Layer1 = "METAL2"
  Layer2 = "METAL3"
  Layer1Margin = 0.05
  Layer2Margin = 0.05
  ContactWidth = 0.4
  ContactLength = 0.4
  ContactRows = 1
  ContactCols = 1
  ContactRowDelta = 0.9
  ContactColDelta = 0.9
  Justification = MIDDLECENTER
  }
DeviceContact
  {
  ContactName = "M3_M4"
  ContactLayer = "VIA3"
  Layer1 = "METAL3"
  Layer2 = "METAL4"
  Layer1Margin = 0.2
  Layer2Margin = 0.2
  ContactWidth = 0.4
  ContactLength = 0.4
  ContactRows = 1
  ContactCols = 1
  ContactRowDelta = 0.9
  ContactColDelta = 0.9
  Justification = MIDDLECENTER
  }
DeviceContact
  {
  ContactName = "M4_M5"
  ContactLayer = "VIA4"
  Layer1 = "METAL4"
  Layer2 = "METAL5"
  Layer1Margin = 1.5
  Layer2Margin = 1.5
  ContactWidth = 1
  ContactLength = 1
  ContactRows = 1
  ContactCols = 1
  ContactRowDelta = 2
  ContactColDelta = 2
  Justification = MIDDLECENTER
  }

Related Articles