@@ -3,29 +3,41 @@ set clk_period 1000
33set clk_io_pct 0.2
44set clk_port [get_ports $top_clk_name ]
55create_clock -name $top_clk_name -period $clk_period $clk_port
6+ set top_io_clk_name vclk_$top_clk_name
7+ create_clock -name $top_io_clk_name -period $clk_period
8+ set_clock_latency [expr $clk_period * $clk_io_pct * 0.5] [get_clocks $top_clk_name ]
9+ set_clock_latency [expr $clk_period * $clk_io_pct * 0.5] [get_clocks $top_io_clk_name ]
610set non_clock_inputs [all_inputs -no_clocks]
7- set_input_delay [expr $clk_period * $clk_io_pct ] -clock $top_clk_name $non_clock_inputs
8- set_output_delay [expr $clk_period * $clk_io_pct ] -clock $top_clk_name [all_outputs]
11+ set_input_delay [expr $clk_period * $clk_io_pct ] -clock $top_io_clk_name $non_clock_inputs
12+ set_output_delay [expr $clk_period * $clk_io_pct ] -clock $top_io_clk_name [all_outputs]
913
1014set tx_clk_name mtx_clk_pad_i
1115set tx_clk_port [get_ports $tx_clk_name ]
1216set tx_clk_period 300
1317create_clock -name $tx_clk_name -period $tx_clk_period $tx_clk_port
18+ set tx_io_clk_name vclk_$tx_clk_name
19+ create_clock -name $tx_io_clk_name -period $tx_clk_period
20+ set_clock_latency [expr $tx_clk_period * $clk_io_pct * 0.5] [get_clocks $tx_clk_name ]
21+ set_clock_latency [expr $tx_clk_period * $clk_io_pct * 0.5] [get_clocks $tx_io_clk_name ]
1422set mtx_non_clock_inputs [lsearch -inline -all -not -exact [all_inputs] $tx_clk_port ]
15- set_input_delay [expr $tx_clk_period * $clk_io_pct ] -clock $tx_clk_name $mtx_non_clock_inputs
16- set_output_delay [expr $tx_clk_period * $clk_io_pct ] -clock $tx_clk_name [all_outputs]
23+ set_input_delay [expr $tx_clk_period * $clk_io_pct ] -clock $tx_io_clk_name $mtx_non_clock_inputs
24+ set_output_delay [expr $tx_clk_period * $clk_io_pct ] -clock $tx_io_clk_name [all_outputs]
1725
1826set rx_clk_name mrx_clk_pad_i
1927set rx_clk_port [get_ports $rx_clk_name ]
2028set rx_clk_period 300
2129create_clock -name $rx_clk_name -period $rx_clk_period $rx_clk_port
30+ set rx_io_clk_name vclk_$rx_clk_name
31+ create_clock -name $rx_io_clk_name -period $rx_clk_period
32+ set_clock_latency [expr $rx_clk_period * $clk_io_pct * 0.5] [get_clocks $rx_clk_name ]
33+ set_clock_latency [expr $rx_clk_period * $clk_io_pct * 0.5] [get_clocks $rx_io_clk_name ]
2234set mrx_non_clock_inputs [lsearch -inline -all -not -exact [all_inputs] $rx_clk_port ]
23- set_input_delay [expr $rx_clk_period * $clk_io_pct ] -clock $rx_clk_name $mrx_non_clock_inputs
24- set_output_delay [expr $rx_clk_period * $clk_io_pct ] -clock $rx_clk_name [all_outputs]
35+ set_input_delay [expr $rx_clk_period * $clk_io_pct ] -clock $rx_io_clk_name $mrx_non_clock_inputs
36+ set_output_delay [expr $rx_clk_period * $clk_io_pct ] -clock $rx_io_clk_name [all_outputs]
2537
2638set_clock_groups -name core_clock -logically_exclusive \
27- -group [get_clocks $top_clk_name ] \
28- -group [get_clocks $tx_clk_name ] \
29- -group [get_clocks $rx_clk_name ]
39+ -group [concat [ get_clocks $top_clk_name ] [get_clocks $top_io_clk_name ] ] \
40+ -group [concat [ get_clocks $tx_clk_name ] [get_clocks $tx_io_clk_name ] ] \
41+ -group [concat [ get_clocks $rx_clk_name ] [get_clocks $rx_io_clk_name ] ]
3042
3143set_max_fanout 10 [current_design]
0 commit comments