#### Technology wizard data file
####
#### All dimensions in nanometers.

$tech_name = "mocmos180nm";
$tech_description = "MoCmos 180 Electric";
$num_metal_layers = 6;
#$psubstrate_process = false; ## false is the default
$horizontal_transistors = true;
$defaultSquareContacts = true;

## stepsize is minimum granularity that will be used as movement grid
## set to manufacturing grid or lowest common denominator with design rules
$stepsize = 1;

######  DIFFUSION RULES  #####
$diff_width = 3;
$diff_width_rule = "2.1 Mosis";
$diff_poly_overhang = 3;        # min. diff overhang from gate edge
$diff_poly_overhang_rule = "3.4 Mosis";        # min. diff overhang from gate edge
$diff_contact_overhang = 1.5;     # min. diff overhang contact
$diff_contact_overhang_rule = "6.2 Mosis";     # min. diff overhang contact
$diff_spacing = 3;
$diff_spacing_rule = "2.2 Mosis";

######  POLY RULES  #####
$poly_width = 2;
$poly_width_rule = "3.1 Mosis";
$poly_endcap = 2;               # min. poly gate extension from edge of diffusion
$poly_endcap_rule = "3.3 Mosis";               # min. poly gate extension from edge of diffusion
$poly_spacing = 3;
$poly_spacing_rule = "3.2 Mosis";
$poly_diff_spacing = 1;         # min. spacing between poly and diffusion
$poly_diff_spacing_rule = "3.5 Mosis";         # min. spacing between poly and diffusion

######  GATE RULES  #####
$gate_length = 2;               # min. transistor gate length
$gate_length_rule = "3.1 Mosis";               # min. transistor gate length
$gate_width = 3;                # min. transistor gate width
$gate_width_rule = "2.1 Mosis";                # min. transistor gate width
$gate_spacing = 3;             # min. gate to gate spacing on diffusion
$gate_spacing_rule = "3.2 Mosis";             # min. gate to gate spacing on diffusion
$gate_contact_spacing = 5;      # min. spacing from gate edge to contact inside diffusion
$gate_contact_spacing_rule = "5.5b Mosis";      # min. spacing from gate edge to contact inside diffusion

######  CONTACT RULES  #####
$contact_size = 2;
$contact_size_rule = "6.1 Mosis";
$contact_spacing = 3;
$contact_spacing_rule = "6.3 Mosis";
$contact_array_spacing = 3;
$contact_array_spacing_rule = "6.3 Mosis";
$contact_metal_overhang_inline_only = 1;      # metal overhang when overhanging contact from two sides only
$contact_metal_overhang_inline_only_rule = "8.3 Mosis";      # metal overhang when overhanging contact from two sides only
$contact_metal_overhang_all_sides = 1;         # metal overhang when surrounding contact
$contact_metal_overhang_all_sides_rule = "8.3 Mosis";         # metal overhang when surrounding contact
$contact_poly_overhang = 1.5;                    # poly overhang contact
$contact_poly_overhang_rule = "6.2 Mosis";                    # poly overhang contact
$polycon_diff_spacing = 3;                    # spacing between poly-metal contact edge and diffusion
$polycon_diff_spacing_rule = "5.3, 6.3 Mosis";                    # spacing between poly-metal contact edge and diffusion

######  WELL AND IMPLANT RULES  #####
$nplus_width = 2;
$nplus_width_rule = "4.4 Mosis";
$nplus_overhang_diff = 2;
$nplus_overhang_diff_rule = "4.2 Mosis";
$nplus_overhang_strap = 2;
$nplus_overhang_strap_rule = "4.2 Mosis";
$nplus_overhang_poly = 0;
$nplus_overhang_poly_rule = "Mosis";
$nplus_spacing = 2;
$nplus_spacing_rule = "4.4 Mosis";

$pplus_width = 2;
$pplus_width_rule = "4.4 Mosis";
$pplus_overhang_diff = 2;
$pplus_overhang_diff_rule = "4.2 Mosis";
$pplus_overhang_strap = 2;
$pplus_overhang_strap_rule = "4.2 Mosis";
$pplus_overhang_poly = 0;
$pplus_overhang_poly_rule = "Mosis";
$pplus_spacing = 2;
$pplus_spacing_rule = "4.4 Mosis";

$nwell_width = 12;
$nwell_width_rule = "1.1 Mosis";
$nwell_overhang_diff_p = 6;
$nwell_overhang_diff_rule_p = "2.3 Mosis";
$nwell_overhang_diff_n = 3;
$nwell_overhang_diff_rule_n = "2.4 Mosis";
$nwell_spacing = 18;
$nwell_spacing_rule = "1.2 Mosis";

######  METAL RULES  #####
@metal_width = (3, 3, 3, 3, 3, 5);
@metal_width_rule = ("7.1 Mosis", "9.1 Mosis", "15.1 Mosis", "22.1 Mosis", "26.1 Mosis", "30.1 Mosis");
@metal_spacing = (3, 3, 3, 3, 3, 5);
@metal_spacing_rule = ("7.2 Mosis", "9.2 Mosis", "15.2 Mosis", "22.2 Mosis", "26.2 Mosis", "30.2 Mosis");

######  VIA RULES  #####
@via_size = (2, 2, 2, 2, 3);
@via_size_rule = ("8.1 Mosis", "14.1 Mosis", "21.1 Mosis", "25.1 Mosis", "29.1 Mosis");
@via_spacing = (3, 3, 3, 3, 4);
@via_spacing_rule = ("8.2 Mosis", "14.2 Mosis", "21.2 Mosis", "25.2 Mosis", "29.2 Mosis");

## "sep2d" spacing, close proximity via array spacing
@via_array_spacing = (3, 3, 3, 3, 4);
@via_array_spacing_rule = ("8.2 Mosis", "14.2 Mosis", "21.2 Mosis", "25.2 Mosis", "29.2 Mosis");
@via_overhang_inline = (1, 1, 1, 1, 1);
@via_overhang_inline_rule = ("8.3 Mosis", "14.3 Mosis", "21.3 Mosis", "25.3 Mosis", "29.3 Mosis");

######  ANTENNA RULES  #####
$poly_antenna_ratio = 0;
@metal_antenna_ratio = (0, 0, 0, 0, 0, 0);

######  GDS-II LAYERS  #####
$gds_diff_layer = 43;
$gds_poly_layer = 46;
$gds_nplus_layer = 45;
$gds_pplus_layer = 44;
$gds_nwell_layer = 42;
$gds_contact_layer = 25;
@gds_metal_layer = (49, 51, 62, 31, 33, 37);
@gds_via_layer = (50, 61, 30, 32, 36);

## Device marking layer. -1 for unknown value
$gds_marking_layer = -1;

# End of techfile
