mirror of https://github.com/efabless/caravel.git
677 lines
18 KiB
Plaintext
677 lines
18 KiB
Plaintext
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");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|