1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
/* Synopsys synlib example */
library(example) {

    date : "Mar 20, 2006";
    revision : 1.0;

    default_inout_pin_cap        :  1.0;
    default_inout_pin_fall_res   :  0.0;
    default_inout_pin_rise_res   :  0.0;
    default_input_pin_cap        :  1.0;
    default_intrinsic_fall       :  1.0;
    default_intrinsic_rise       :  1.0;
    default_output_pin_cap       :  0.0;
    default_output_pin_fall_res  :  0.0;
    default_output_pin_rise_res  :  0.0;
    default_slope_fall           :  0.0;
    default_slope_rise           :  0.0;
    default_fanout_load          :  1.0;

    default_wire_load_capacitance : 1.0;
    default_wire_load_resistance : 1.0;
    default_wire_load_area       : 1.0;

    k_process_drive_fall         :  1.0;
    k_process_drive_rise         :  1.0;
    k_process_intrinsic_fall     :  1.0;
    k_process_intrinsic_rise     :  1.0;
    k_process_pin_cap            :  0.0;
    k_process_slope_fall         :  1.0;
    k_process_slope_rise         :  1.0;
    k_process_wire_cap           :  0.0;
    k_process_wire_res           :  1.0;
    k_temp_drive_fall            :  0.0037;
    k_temp_drive_rise            :  0.0037;
    k_temp_intrinsic_fall        :  0.0037;
    k_temp_intrinsic_rise        :  0.0037;
    k_temp_pin_cap               :  0.0;
    k_temp_slope_fall            :  0.0;
    k_temp_slope_rise            :  0.0;
    k_temp_wire_cap              :  0.0;
    k_temp_wire_res              :  0.0;
    k_volt_drive_fall            : -0.26;
    k_volt_drive_rise            : -0.26;
    k_volt_intrinsic_fall        : -0.26;
    k_volt_intrinsic_rise        : -0.26;

    k_volt_pin_cap               :  0.0;
    k_volt_slope_fall            :  0.0;
    k_volt_slope_rise            :  0.0;
    k_volt_wire_cap              :  0.0;
    k_volt_wire_res              :  0.0;

    time_unit : "1ns";
    voltage_unit : "1V";
    current_unit : "1uA";
    pulling_resistance_unit : "1kohm";
    capacitive_load_unit (0.1,ff);

    nom_process                  :  1.0;
    nom_temperature 	         : 25.0;
    nom_voltage                  :  3.3;

    in_place_swap_mode : match_footprint;

    wire_load("05x05") {
        resistance : 0 ;
        capacitance : 1 ;
        area : 0 ;
        slope : 0.186 ;
        fanout_length(1,0.39) ;
    }
    wire_load("10x10") {
        resistance : 0 ;
        capacitance : 1 ;
        area : 0 ;
        slope : 0.311 ;
        fanout_length(1,0.53) ;
    }
    wire_load("20x20") {
        resistance : 0 ;
        capacitance : 1 ;
        area : 0 ;
        slope : 0.547 ;
        fanout_length(1,0.86) ;
    }

    wire_load_selection() {
	wire_load_from_area(0,1000,05x05);
	wire_load_from_area(1001,2000,10x10);
	wire_load_from_area(2001,3000,20x20);
    }

    cell(nand2) {
      area : 1;
      cell_footprint : "nand2";
      pin(Y) {
	direction : output;
	function : "(A B)'";
	timing() {
	  intrinsic_rise : 0.5;
	  intrinsic_fall : 0.13;
	  rise_resistance : 0.1377;
	  fall_resistance : 0.0854;
	  slope_rise : 0.0;
	  slope_fall : 0.0;
	  related_pin : "A";
	}
	timing() {
	  intrinsic_rise : 0.5;
	  intrinsic_fall : 0.13;
	  rise_resistance : 0.1377;
	  fall_resistance : 0.0854;
	  slope_rise : 0.0;
	  slope_fall : 0.0;
	  related_pin : "B";
	}
      }
      pin(A) {
	direction : input;
	capacitance : 1;
      }
      pin(B) {
	direction : input;
	capacitance : 1;
      }
    }

    cell(nor2) {
      area : 1;
      cell_footprint : "nor2";
      pin(Y) {
	direction : output;
	function : "(A + B)'";
	timing() {
	  intrinsic_rise : 0.5;
	  intrinsic_fall : 0.13;
	  rise_resistance : 0.1377;
	  fall_resistance : 0.0854;
	  slope_rise : 0.0;
	  slope_fall : 0.0;
	  related_pin : "A";
	}
	timing() {
	  intrinsic_rise : 0.5;
	  intrinsic_fall : 0.13;
	  rise_resistance : 0.1377;
	  fall_resistance : 0.0854;
	  slope_rise : 0.0;
	  slope_fall : 0.0;
	  related_pin : "B";
	}
      }
      pin(A) {
	direction : input;
	capacitance : 1;
      }
      pin(B) {
	direction : input;
	capacitance : 1;
      }
    }

}