create_clock [get_ports $::env(CLOCK_PORT)]  -name $::env(CLOCK_PORT) -period $::env(CLOCK_PERIOD)
set_propagated_clock [get_clocks $::env(CLOCK_PORT)]

set input_delay_value [expr $::env(CLOCK_PERIOD) * $::env(IO_PCT)]
set output_delay_value [expr $::env(CLOCK_PERIOD) * $::env(IO_PCT)]
puts "\[INFO\]: Setting output delay to: $output_delay_value"
puts "\[INFO\]: Setting input delay to: $input_delay_value"

set_max_fanout $::env(SYNTH_MAX_FANOUT) [current_design]

# Should we create a virtual clock to constrain this?
set_input_delay $input_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports {io_in[5]}]
set_output_delay $output_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports {io_out[6]}]

# Synchronous reset
set_input_delay $input_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports {io_in[7]}]

# SPI
set_output_delay $output_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports {io_out[8]}]
set_output_delay $output_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports {io_out[9]}]
set_output_delay $output_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports {io_out[10]}]
set_input_delay $input_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports {io_in[11]}]

# JTAG on its own clock domain
create_clock -name jtag_clk -period 100 [get_ports {io_in[14]}] 
set_clock_transition 0.1500 [get_clocks jtag_clk]
set_clock_uncertainty 0.2500 jtag_clk
set_propagated_clock [get_clocks jtag_clk]
set_output_delay 10 -clock [get_clocks jtag_clk] -add_delay [get_ports {io_out[12]}]
set_input_delay 10 -clock [get_clocks jtag_clk] -add_delay [get_ports {io_in[13]}]
set_input_delay 10 -clock [get_clocks jtag_clk] -add_delay [get_ports {io_in[15]}]
set_clock_groups -name group1 -logically_exclusive \
    -group [get_clocks jtag_clk]\
    -group [get_clocks $::env(CLOCK_PORT)]

# GPIOs/external bus
foreach i {0 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37} {
    set_input_delay $input_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_in[$i]]
    set_output_delay $output_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_out[$i]]
    set_output_delay $output_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_oeb[$i]]
}

# Alt reset
set_input_delay $input_delay_value -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_in[35]]

# To avoid check_setup complaining about unused ports, add some arbitrary constraints

# Unused bidirectional ports
foreach i {analog_io*} {
    set_input_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports $i]
    set_output_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports $i]
}

# Unused output ports
foreach i {la_data_out* user_irq* wbs_ack_o wbs_dat_o*} {
    set_output_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports $i]
}

# Unused input ports
foreach i {la_data_in* la_oenb* wb_clk_i wb_rst_i wbs_stb_i wbs_cyc_i wbs_we_i wbs_sel_i* wbs_dat_i* wbs_adr_i*} {
    set_input_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports $i]
}

# Unused GPIOs
foreach i {1 2 3 4} {
    set_input_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_in[$i]]
    set_output_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_out[$i]]
    set_output_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_oeb[$i]]
}

# Unused GPIO outputs
foreach i {6 8 9 10 12} {
    set_input_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_in[$i]]
    set_output_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_oeb[$i]]
}

# Unused GPIO inputs
foreach i {5 7 11 13 14 15 35} {
    set_output_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_out[$i]]
    set_output_delay 0.1 -clock [get_clocks $::env(CLOCK_PORT)] -add_delay [get_ports io_oeb[$i]]
}

# TODO set this as parameter
set_driving_cell -lib_cell $::env(SYNTH_DRIVING_CELL) -pin $::env(SYNTH_DRIVING_CELL_PIN) [all_inputs]
set cap_load [expr $::env(SYNTH_CAP_LOAD) / 1000.0]
puts "\[INFO\]: Setting load to: $cap_load"
set_load  $cap_load [all_outputs]

puts "\[INFO\]: Setting clock uncertainty to: $::env(SYNTH_CLOCK_UNCERTAINTY)"
set_clock_uncertainty $::env(SYNTH_CLOCK_UNCERTAINTY) [get_clocks $::env(CLOCK_PORT)]

puts "\[INFO\]: Setting clock transition to: $::env(SYNTH_CLOCK_TRANSITION)"
set_clock_transition $::env(SYNTH_CLOCK_TRANSITION) [get_clocks $::env(CLOCK_PORT)]

puts "\[INFO\]: Setting timing derate to: [expr {$::env(SYNTH_TIMING_DERATE) * 10}] %"
set_timing_derate -early [expr {1-$::env(SYNTH_TIMING_DERATE)}]
set_timing_derate -late [expr {1+$::env(SYNTH_TIMING_DERATE)}]
