library (sram_1rw1r_32_256_8_sky130_TT_1p8V_0C_lib){
    delay_model : "table_lookup";
    time_unit : "1ns" ;
    voltage_unit : "1V" ;
    current_unit : "1mA" ;
    resistance_unit : "1kohm" ;
    capacitive_load_unit(1, pF) ;
    leakage_power_unit : "1mW" ;
    pulling_resistance_unit :"1kohm" ;
    operating_conditions(OC){
    process : 1.0 ;
    voltage : 1.8 ;
    temperature : 0;
    }

    input_threshold_pct_fall       :  50.0 ;
    output_threshold_pct_fall      :  50.0 ;
    input_threshold_pct_rise       :  50.0 ;
    output_threshold_pct_rise      :  50.0 ;
    slew_lower_threshold_pct_fall  :  10.0 ;
    slew_upper_threshold_pct_fall  :  90.0 ;
    slew_lower_threshold_pct_rise  :  10.0 ;
    slew_upper_threshold_pct_rise  :  90.0 ;

    nom_voltage : 1.8;
    nom_temperature : 25;
    nom_process : 1.0;
    default_cell_leakage_power    : 0.0 ;
    default_leakage_power_density : 0.0 ;
    default_input_pin_cap    : 1.0 ;
    default_inout_pin_cap    : 1.0 ;
    default_output_pin_cap   : 0.0 ;
    default_max_transition   : 0.5 ;
    default_fanout_load      : 1.0 ;
    default_max_fanout   : 4.0 ;
    default_connection_class : universal ;

    voltage_map ( VDD, 1.8 );
    voltage_map ( GND, 0 );

    lu_table_template(CELL_TABLE){
        variable_1 : input_net_transition;
        variable_2 : total_output_net_capacitance;
        index_1("0.00125, 0.005, 0.04");
        index_2("0.0017225, 0.00689, 0.02756");
    }

    lu_table_template(CONSTRAINT_TABLE){
        variable_1 : related_pin_transition;
        variable_2 : constrained_pin_transition;
        index_1("0.00125, 0.005, 0.04");
        index_2("0.00125, 0.005, 0.04");
    }

    default_operating_conditions : OC; 


    type (data){
    base_type : array;
    data_type : bit;
    bit_width : 32;
    bit_from : 0;
    bit_to : 31;
    }

    type (addr){
    base_type : array;
    data_type : bit;
    bit_width : 8;
    bit_from : 0;
    bit_to : 7;
    }

    type (wmask){
    base_type : array;
    data_type : bit;
    bit_width : 4;
    bit_from : 0;
    bit_to : 3;
    }

cell (sram_1rw1r_32_256_8_sky130){
    memory(){ 
    type : ram;
    address_width : 8;
    word_width : 32;
    }
    interface_timing : true;
    dont_use  : true;
    map_only   : true;
    dont_touch : true;
    area : 167998.5528;

    pg_pin(vdd) {
         voltage_name : VDD;
         pg_type : primary_power;
    }

    pg_pin(gnd) {
         voltage_name : GND;
         pg_type : primary_ground;
    }

    leakage_power () {
      value : 0.009512;
    }
    cell_leakage_power : 0.009512;
    bus(din0){
        bus_type  : data; 
        direction  : input; 
        capacitance : 0.006889999999999999;  
        memory_write(){ 
            address : addr0; 
            clocked_on  : clk0; 
        }
        pin(din0[31:0]){
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
        }
    }
    bus(dout0){
        bus_type  : data; 
        direction  : output; 
        max_capacitance : 0.027559999999999998;  
        min_capacitance : 0.0017224999999999999;  
        memory_read(){ 
            address : addr0; 
        }
        pin(dout0[31:0]){
        timing(){ 
            timing_sense : non_unate; 
            related_pin : "clk0"; 
            timing_type : falling_edge; 
            cell_rise(CELL_TABLE) {
            values("0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455");
            }
            cell_fall(CELL_TABLE) {
            values("0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455");
            }
            rise_transition(CELL_TABLE) {
            values("0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012");
            }
            fall_transition(CELL_TABLE) {
            values("0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012");
            }
        }
        }
    }

    bus(addr0){
        bus_type  : addr; 
        direction  : input; 
        capacitance : 0.006889999999999999;  
        max_transition       : 0.04;
        pin(addr0[7:0]){
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
        }
    }

    bus(wmask0){
        bus_type  : wmask; 
        direction  : input; 
        capacitance : 0.006889999999999999;  
        max_transition       : 0.04;
        pin(wmask0[3:0]){
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
        }
    }

    pin(csb0){
        direction  : input; 
        capacitance : 0.006889999999999999;  
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
    }

    pin(web0){
        direction  : input; 
        capacitance : 0.006889999999999999;  
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk0"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
    }

    pin(clk0){
        clock             : true;
        direction  : input; 
        capacitance : 0.006889999999999999;  
        internal_power(){
            when : "!csb0 & !web0"; 
            rise_power(scalar){
                values("2.489593e+01");
            }
            fall_power(scalar){
                values("2.489593e+01");
            }
        }
        internal_power(){
            when : "csb0 & !web0"; 
            rise_power(scalar){
                values("2.489593e+01");
            }
            fall_power(scalar){
                values("2.489593e+01");
            }
        }
        internal_power(){
            when : "!csb0 & web0"; 
            rise_power(scalar){
                values("2.489593e+01");
            }
            fall_power(scalar){
                values("2.489593e+01");
            }
        }
        internal_power(){
            when : "csb0 & web0"; 
            rise_power(scalar){
                values("2.489593e+01");
            }
            fall_power(scalar){
                values("2.489593e+01");
            }
        }
        timing(){ 
            timing_type :"min_pulse_width"; 
            related_pin  : clk0; 
            rise_constraint(scalar) {
                values("0.0455"); 
            }
            fall_constraint(scalar) {
                values("0.0455"); 
            }
         }
        timing(){ 
            timing_type :"minimum_period"; 
            related_pin  : clk0; 
            rise_constraint(scalar) {
                values("0.091"); 
            }
            fall_constraint(scalar) {
                values("0.091"); 
            }
         }
    }

    bus(dout1){
        bus_type  : data; 
        direction  : output; 
        max_capacitance : 0.027559999999999998;  
        min_capacitance : 0.0017224999999999999;  
        memory_read(){ 
            address : addr1; 
        }
        pin(dout1[31:0]){
        timing(){ 
            timing_sense : non_unate; 
            related_pin : "clk1"; 
            timing_type : falling_edge; 
            cell_rise(CELL_TABLE) {
            values("0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455");
            }
            cell_fall(CELL_TABLE) {
            values("0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455",\
                   "0.343, 0.366, 0.455");
            }
            rise_transition(CELL_TABLE) {
            values("0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012");
            }
            fall_transition(CELL_TABLE) {
            values("0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012",\
                   "0.001, 0.004, 0.012");
            }
        }
        }
    }

    bus(addr1){
        bus_type  : addr; 
        direction  : input; 
        capacitance : 0.006889999999999999;  
        max_transition       : 0.04;
        pin(addr1[7:0]){
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk1"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk1"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
        }
    }

    bus(wmask1){
        bus_type  : wmask; 
        direction  : input; 
        capacitance : 0.006889999999999999;  
        max_transition       : 0.04;
        pin(wmask1[3:0]){
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk1"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk1"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
        }
    }

    pin(csb1){
        direction  : input; 
        capacitance : 0.006889999999999999;  
        timing(){ 
            timing_type : setup_rising; 
            related_pin  : "clk1"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
            fall_constraint(CONSTRAINT_TABLE) {
            values("0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165",\
                   "0.165, 0.165, 0.165");
            }
        }
        timing(){ 
            timing_type : hold_rising; 
            related_pin  : "clk1"; 
            rise_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
              }
            fall_constraint(CONSTRAINT_TABLE) {
            values("-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052",\
                   "-0.052, -0.052, -0.052");
            }
        }
    }

    pin(clk1){
        clock             : true;
        direction  : input; 
        capacitance : 0.006889999999999999;  
        internal_power(){
            when : "!csb1"; 
            rise_power(scalar){
                values("2.489593e+01");
            }
            fall_power(scalar){
                values("2.489593e+01");
            }
        }
        internal_power(){
            when : "csb1"; 
            rise_power(scalar){
                values("2.489593e+01");
            }
            fall_power(scalar){
                values("2.489593e+01");
            }
        }
        timing(){ 
            timing_type :"min_pulse_width"; 
            related_pin  : clk1; 
            rise_constraint(scalar) {
                values("0.0455"); 
            }
            fall_constraint(scalar) {
                values("0.0455"); 
            }
         }
        timing(){ 
            timing_type :"minimum_period"; 
            related_pin  : clk1; 
            rise_constraint(scalar) {
                values("0.091"); 
            }
            fall_constraint(scalar) {
                values("0.091"); 
            }
         }
    }

    }
}
