library (caravel_clocking) { comment : ""; delay_model : table_lookup; simulation : false; capacitive_load_unit (1,pF); leakage_power_unit : 1pW; current_unit : "1A"; pulling_resistance_unit : "1kohm"; time_unit : "1ns"; voltage_unit : "1v"; library_features(report_delay_calculation); input_threshold_pct_rise : 50; input_threshold_pct_fall : 50; output_threshold_pct_rise : 50; output_threshold_pct_fall : 50; slew_lower_threshold_pct_rise : 20; slew_lower_threshold_pct_fall : 20; slew_upper_threshold_pct_rise : 80; slew_upper_threshold_pct_fall : 80; slew_derate_from_library : 1.0; nom_process : 1.0; nom_temperature : 25.0; nom_voltage : 1.80; lu_table_template(template_1) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_10) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00232, 0.01077, 0.05000, 0.23208, 1.07722, 5.00000"); } lu_table_template(template_11) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_12) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_13) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_14) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_15) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_16) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_17) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_18) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_19) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_2) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_20) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_3) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_4) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_5) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_6) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_7) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_8) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00191, 0.00726, 0.02767, 0.10546, 0.40192, 1.53169"); } lu_table_template(template_9) { variable_1 : total_output_net_capacitance; index_1 ("0.00050, 0.00232, 0.01077, 0.05000, 0.23208, 1.07722, 5.00000"); } type ("sel") { base_type : array; data_type : bit; bit_width : 3; bit_from : 2; bit_to : 0; } type ("sel2") { base_type : array; data_type : bit; bit_width : 3; bit_from : 2; bit_to : 0; } cell ("caravel_clocking") { pin("core_clk") { direction : output; capacitance : 0.2094; timing() { related_pin : "ext_clk"; timing_type : falling_edge; cell_rise(template_1) { values("-13.28561,-13.28373,-13.27730,-13.25767,-13.19945,-12.99762,-12.23708"); } rise_transition(template_1) { values("0.02433,0.02582,0.03117,0.05049,0.12302,0.40939,1.50434"); } cell_fall(template_2) { values("-10.81571,-10.81400,-10.80813,-10.79159,-10.74828,-10.62111,-10.15966"); } fall_transition(template_2) { values("0.02326,0.02436,0.02827,0.04095,0.08430,0.25146,0.91403"); } } timing() { related_pin : "ext_clk"; timing_type : rising_edge; cell_rise(template_3) { values("1.19763,1.19950,1.20594,1.22557,1.28379,1.48561,2.24616"); } rise_transition(template_3) { values("0.02433,0.02582,0.03117,0.05049,0.12302,0.40939,1.50434"); } cell_fall(template_4) { values("-0.11202,-0.11031,-0.10444,-0.08790,-0.04459,0.08258,0.54403"); } fall_transition(template_4) { values("0.02326,0.02436,0.02827,0.04095,0.08430,0.25146,0.91403"); } } timing() { related_pin : "core_clk"; timing_type : rising_edge; cell_rise(template_5) { values("1.19763,1.19950,1.20594,1.22557,1.28379,1.48561,2.24616"); } rise_transition(template_5) { values("0.02433,0.02582,0.03117,0.05049,0.12302,0.40939,1.50434"); } cell_fall(template_6) { values("-0.11202,-0.11031,-0.10444,-0.08790,-0.04459,0.08258,0.54403"); } fall_transition(template_6) { values("0.02326,0.02436,0.02827,0.04095,0.08430,0.25146,0.91403"); } } timing() { related_pin : "core_clk"; timing_type : falling_edge; cell_rise(template_7) { values("-12.65693,-12.65505,-12.64862,-12.62899,-12.57076,-12.36894,-11.60840"); } rise_transition(template_7) { values("0.02433,0.02582,0.03117,0.05049,0.12302,0.40939,1.50434"); } cell_fall(template_8) { values("1.68429,1.68600,1.69187,1.70841,1.75172,1.87889,2.34034"); } fall_transition(template_8) { values("0.02326,0.02436,0.02827,0.04095,0.08430,0.25146,0.91403"); } } } pin("ext_clk") { direction : input; capacitance : 0.0113; } pin("ext_clk_sel") { direction : input; capacitance : 0.0038; timing() { related_pin : "pll_clk"; timing_type : hold_rising; rise_constraint(scalar) { values("0.02150"); } fall_constraint(scalar) { values("0.00319"); } } timing() { related_pin : "pll_clk"; timing_type : setup_rising; rise_constraint(scalar) { values("0.11637"); } fall_constraint(scalar) { values("0.09388"); } } } pin("ext_reset") { direction : input; capacitance : 0.0043; timing() { related_pin : "pll_clk"; timing_type : hold_rising; rise_constraint(scalar) { values("-0.27921"); } fall_constraint(scalar) { values("0.10560"); } } timing() { related_pin : "pll_clk"; timing_type : setup_rising; rise_constraint(scalar) { values("1.06807"); } fall_constraint(scalar) { values("1.12612"); } } timing() { related_pin : "ext_clk"; timing_type : hold_falling; fall_constraint(scalar) { values("1.36428"); } } timing() { related_pin : "ext_clk"; timing_type : setup_falling; fall_constraint(scalar) { values("-0.67456"); } } timing() { related_pin : "pll_clk"; timing_type : hold_falling; fall_constraint(scalar) { values("0.01574"); } } timing() { related_pin : "pll_clk"; timing_type : setup_falling; fall_constraint(scalar) { values("0.70940"); } } timing() { related_pin : "pll_clk90"; timing_type : hold_rising; fall_constraint(scalar) { values("0.71263"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_rising; fall_constraint(scalar) { values("0.77865"); } } timing() { related_pin : "pll_clk90"; timing_type : hold_falling; fall_constraint(scalar) { values("0.03221"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_falling; fall_constraint(scalar) { values("0.71067"); } } } pin("pll_clk") { direction : input; capacitance : 0.0205; } pin("pll_clk90") { direction : input; capacitance : 0.0164; } pin("porb") { direction : input; capacitance : 0.0037; timing() { related_pin : "pll_clk"; timing_type : hold_rising; rise_constraint(scalar) { values("0.15779"); } fall_constraint(scalar) { values("-0.29391"); } } timing() { related_pin : "pll_clk"; timing_type : setup_rising; rise_constraint(scalar) { values("1.06844"); } fall_constraint(scalar) { values("1.06704"); } } timing() { related_pin : "ext_clk"; timing_type : hold_falling; rise_constraint(scalar) { values("1.41647"); } } timing() { related_pin : "ext_clk"; timing_type : setup_falling; rise_constraint(scalar) { values("-0.73224"); } } timing() { related_pin : "pll_clk"; timing_type : hold_falling; rise_constraint(scalar) { values("0.06792"); } } timing() { related_pin : "pll_clk"; timing_type : setup_falling; rise_constraint(scalar) { values("0.65172"); } } timing() { related_pin : "pll_clk90"; timing_type : hold_rising; rise_constraint(scalar) { values("0.76482"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_rising; rise_constraint(scalar) { values("0.72097"); } } timing() { related_pin : "pll_clk90"; timing_type : hold_falling; rise_constraint(scalar) { values("0.08440"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_falling; rise_constraint(scalar) { values("0.65299"); } } } pin("resetb") { direction : input; capacitance : 0.0040; timing() { related_pin : "pll_clk"; timing_type : hold_rising; rise_constraint(scalar) { values("0.22336"); } fall_constraint(scalar) { values("-0.24088"); } } timing() { related_pin : "pll_clk"; timing_type : setup_rising; rise_constraint(scalar) { values("0.99597"); } fall_constraint(scalar) { values("1.03383"); } } timing() { related_pin : "ext_clk"; timing_type : hold_falling; rise_constraint(scalar) { values("1.48204"); } } timing() { related_pin : "ext_clk"; timing_type : setup_falling; rise_constraint(scalar) { values("-0.80471"); } } timing() { related_pin : "pll_clk"; timing_type : hold_falling; rise_constraint(scalar) { values("0.13349"); } } timing() { related_pin : "pll_clk"; timing_type : setup_falling; rise_constraint(scalar) { values("0.57924"); } } timing() { related_pin : "pll_clk90"; timing_type : hold_rising; rise_constraint(scalar) { values("0.83039"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_rising; rise_constraint(scalar) { values("0.64850"); } } timing() { related_pin : "pll_clk90"; timing_type : hold_falling; rise_constraint(scalar) { values("0.14997"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_falling; rise_constraint(scalar) { values("0.58052"); } } } pin("resetb_sync") { direction : output; capacitance : 0.2000; timing() { related_pin : "ext_clk"; timing_type : falling_edge; cell_rise(template_9) { values("2.26354,2.26587,2.27541,2.30999,2.45006,3.08944,6.04212"); } rise_transition(template_9) { values("0.01893,0.02095,0.02999,0.07071,0.26573,1.18103,5.38149"); } cell_fall(template_10) { values("2.49102,2.49300,2.50064,2.52386,2.59262,2.86413,4.11151"); } fall_transition(template_10) { values("0.01882,0.02007,0.02507,0.04325,0.11874,0.48520,2.21294"); } } } pin("user_clk") { direction : output; capacitance : 0.2000; timing() { related_pin : "pll_clk"; timing_type : rising_edge; cell_rise(template_11) { values("1.60877,1.61064,1.61707,1.63657,1.69473,1.89674,2.66296"); } rise_transition(template_11) { values("0.02438,0.02586,0.03120,0.05053,0.12314,0.40898,1.50597"); } cell_fall(template_12) { values("1.94967,1.95135,1.95733,1.97393,2.01711,2.14432,2.60586"); } fall_transition(template_12) { values("0.02337,0.02442,0.02828,0.04104,0.08437,0.25147,0.91312"); } } timing() { related_pin : "ext_clk"; timing_type : falling_edge; cell_rise(template_13) { values("-12.65038,-12.64851,-12.64208,-12.62258,-12.56442,-12.36241,-11.59618"); } rise_transition(template_13) { values("0.02438,0.02586,0.03120,0.05053,0.12314,0.40898,1.50597"); } cell_fall(template_14) { values("1.52622,1.52790,1.53388,1.55047,1.59366,1.72086,2.18241"); } fall_transition(template_14) { values("0.02337,0.02442,0.02828,0.04104,0.08437,0.25147,0.91312"); } } timing() { related_pin : "ext_clk"; timing_type : rising_edge; cell_rise(template_15) { values("1.05506,1.05693,1.06336,1.08286,1.14102,1.34303,2.10926"); } rise_transition(template_15) { values("0.02438,0.02586,0.03120,0.05053,0.12314,0.40898,1.50597"); } cell_fall(template_16) { values("-0.10801,-0.10633,-0.10034,-0.08375,-0.04056,0.08664,0.54819"); } fall_transition(template_16) { values("0.02337,0.02442,0.02828,0.04104,0.08437,0.25147,0.91312"); } } timing() { related_pin : "pll_clk90"; timing_type : rising_edge; cell_rise(template_17) { values("2.00640,2.00827,2.01470,2.03420,2.09236,2.29437,3.06060"); } rise_transition(template_17) { values("0.02438,0.02586,0.03120,0.05053,0.12314,0.40898,1.50597"); } cell_fall(template_18) { values("2.03397,2.03565,2.04164,2.05823,2.10142,2.22862,2.69017"); } fall_transition(template_18) { values("0.02337,0.02442,0.02828,0.04104,0.08437,0.25147,0.91312"); } } timing() { related_pin : "pll_clk90"; timing_type : falling_edge; cell_rise(template_19) { values("2.13142,2.13329,2.13972,2.15922,2.21739,2.41939,3.18562"); } rise_transition(template_19) { values("0.02438,0.02586,0.03120,0.05053,0.12314,0.40898,1.50597"); } cell_fall(template_20) { values("2.13679,2.13847,2.14445,2.16104,2.20423,2.33143,2.79298"); } fall_transition(template_20) { values("0.02337,0.02442,0.02828,0.04104,0.08437,0.25147,0.91312"); } } } pin("VPWR") { direction : input; capacitance : 0.0000; } pin("VGND") { direction : input; capacitance : 0.0000; } bus("sel") { bus_type : sel; direction : input; capacitance : 0.0000; pin("sel[2]") { direction : input; capacitance : 0.0058; } pin("sel[1]") { direction : input; capacitance : 0.0044; } pin("sel[0]") { direction : input; capacitance : 0.0047; } } bus("sel2") { bus_type : sel2; direction : input; capacitance : 0.0000; pin("sel2[2]") { direction : input; capacitance : 0.0044; timing() { related_pin : "pll_clk90"; timing_type : hold_rising; rise_constraint(scalar) { values("0.82195"); } fall_constraint(scalar) { values("0.77211"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_rising; rise_constraint(scalar) { values("-0.62868"); } fall_constraint(scalar) { values("-0.53148"); } } } pin("sel2[1]") { direction : input; capacitance : 0.0049; timing() { related_pin : "pll_clk90"; timing_type : hold_rising; rise_constraint(scalar) { values("0.82476"); } fall_constraint(scalar) { values("0.80673"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_rising; rise_constraint(scalar) { values("-0.63716"); } fall_constraint(scalar) { values("-0.57965"); } } } pin("sel2[0]") { direction : input; capacitance : 0.0041; timing() { related_pin : "pll_clk90"; timing_type : hold_rising; rise_constraint(scalar) { values("0.81600"); } fall_constraint(scalar) { values("0.76783"); } } timing() { related_pin : "pll_clk90"; timing_type : setup_rising; rise_constraint(scalar) { values("-0.62218"); } fall_constraint(scalar) { values("-0.52686"); } } } } } }