generate_cdc_constraints.tcl fails when using gc_sync_word* if some of Q[?] have been optimized out after synth
Using a 48bit gc_sync_word_wr, turns out only the lower 12 bits were used on the Q side, which means that all the other get optimized away.
The script still tries to generate the apropriate constraints, but this will not match anything:
# will return an empty list
set dst_pins [get_pins -filter {DIRECTION==IN} -of_objects $src_nets]
# will fail because of the empty list
set dst_ff [get_cells -of_objects $dst_pins]
set clk [ get_clocks -of_objects [ get_pins -filter {REF_PIN_NAME=~C} -of $dst_ff ] ]
set clk_period [get_property PERIOD [ lindex $clk 0 ] ]
will try to to a PR, but i'm not familiar enough with the other syncronizers available here to see if others might suffer the same issue!