
library (multiply_add_64x64_lib) {
    delay_model : "table_lookup";
    time_unit : "1ns";
    voltage_unit : "1V";
    current_unit : "1mA";
    pulling_resistance_unit : "1kohm";
    leakage_power_unit : "1nW";
    capacitive_load_unit (1.0, pf);

    input_threshold_pct_fall : 50;
    output_threshold_pct_fall : 50;
    input_threshold_pct_rise : 50;
    output_threshold_pct_rise : 50;
    slew_derate_from_library : 1.0;
    slew_lower_threshold_pct_fall : 20;
    slew_lower_threshold_pct_rise : 20;
    slew_upper_threshold_pct_fall : 80;
    slew_upper_threshold_pct_rise : 80;

    default_max_transition : 1.5;
    default_cell_leakage_power : 0.0;
    default_fanout_load : 1.0;
    default_inout_pin_cap : 0.0;
    default_input_pin_cap : 0.0;
    default_output_pin_cap : 0.0;

    nom_process : 1.0;
    nom_temperature : 25.0;
    nom_voltage : 1.8;

    default_operating_conditions : "tt_025C_1v80";
    operating_conditions ("tt_025C_1v80") {
        voltage : 1.8;
        process : 1.0;
        temperature : 25.0;
        tree_type : "balanced_tree";
    }

    type (bits_64) {
        base_type : array;
        data_type : bit;
        bit_width : 64;
        bit_from : 63;
        bit_to : 0;
    }

    type (bits_128) {
        base_type : array;
        data_type : bit;
        bit_width : 128;
        bit_from : 127;
        bit_to : 0;
    }

    cell (multiply_add_64x64) {
        interface_timing : true;

        pg_pin ("VPWR") {
            pg_type : "primary_power";
            voltage_name : "VPWR";
        }

        pg_pin ("VGND") {
            pg_type : "primary_ground";
            voltage_name : "VGND";
        }

        pin(rst) {
            clock : false;
            direction : input;
            related_ground_pin : "VGND";
            related_power_pin : "VPWR";

            capacitance : 0.002103;
            rise_capacitance : 0.002191;
            fall_capacitance : 0.002015;
            max_transition : 1.5;
            timing() {
                timing_type : setup_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("0.0000");
                }
                fall_constraint(scalar) {
                    values("0.0000");
                }
            }

            timing() {
                timing_type : hold_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("0.0000");
                }
                fall_constraint(scalar) {
                    values("0.0000");
                }
            }

        }

        bus(a) {
            bus_type : bits_64;
            clock : false;
            direction : input;
            related_ground_pin : "VGND";
            related_power_pin : "VPWR";

            capacitance : 0.002103;
            rise_capacitance : 0.002191;
            fall_capacitance : 0.002015;
            max_transition : 1.5;
            timing() {
                timing_type : setup_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("5.0900");
                }
                fall_constraint(scalar) {
                    values("5.0900");
                }
            }

            timing() {
                timing_type : hold_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("0.8300");
                }
                fall_constraint(scalar) {
                    values("0.8300");
                }
            }

        }

        bus(b) {
            bus_type : bits_64;
            clock : false;
            direction : input;
            related_ground_pin : "VGND";
            related_power_pin : "VPWR";

            capacitance : 0.002103;
            rise_capacitance : 0.002191;
            fall_capacitance : 0.002015;
            max_transition : 1.5;
            timing() {
                timing_type : setup_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("4.7000");
                }
                fall_constraint(scalar) {
                    values("4.7000");
                }
            }

            timing() {
                timing_type : hold_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("0.8600");
                }
                fall_constraint(scalar) {
                    values("0.8600");
                }
            }

        }

        bus(c) {
            bus_type : bits_128;
            clock : false;
            direction : input;
            related_ground_pin : "VGND";
            related_power_pin : "VPWR";

            capacitance : 0.002103;
            rise_capacitance : 0.002191;
            fall_capacitance : 0.002015;
            max_transition : 1.5;
            timing() {
                timing_type : setup_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("2.9700");
                }
                fall_constraint(scalar) {
                    values("2.9700");
                }
            }

            timing() {
                timing_type : hold_rising;
                related_pin : "clk";
                rise_constraint(scalar) {
                    values("0.8500");
                }
                fall_constraint(scalar) {
                    values("0.8500");
                }
            }

        }

        bus(o) {
            bus_type : bits_128;
            direction : output;
            related_ground_pin : "VGND";
            related_power_pin : "VPWR";

            max_capacitance : 0.130015;
            max_transition : 1.5;
            timing() {
                related_pin : "clk";
                timing_type : rising_edge
                cell_rise(scalar) {
                    values("3.9600");
                }
                cell_fall(scalar) {
                    values("3.9600");
                }
                rise_transition(scalar) {
                    values("0.7500");
                }
                fall_transition(scalar) {
                    values("0.7500");
                }
            }

        }

        pin(clk) {
            clock : true;
            direction : input;
            related_ground_pin : "VGND";
            related_power_pin : "VPWR";

            capacitance : 0.002103;
            rise_capacitance : 0.002191;
            fall_capacitance : 0.002015;
            max_transition : 1.5;
        }
    }
}
