I disagree with you on this specific example. My module is here to cross clock domain, whatever the clock are synchronous or not.
If clock are asynchronous, by setting clock as asynchronous in my SDC it will of course disable any timing constraint between these 2 clock domains.
If clock are synchronous ... yes by constraining source clock and destination clock, all path will be constrained including the input of the synchronizer. But, it could be very difficult to meet the timing due to clock frequencies and phase relation ship. This is the reason why I want to add a set false path at the input of the synchronizer as it is recommended by everyone.
The reason why I want to put a max delay between the 2 FlipFlop is to deal with metastability that will occur on first flip flop since input can be totally asynchronous to destination clock (It can be pushbutton for example ...). By setting a maxdelay between the 2 FFs, it will "force" to place the 2 FFs relatively close one of each other : and this will reduce metastability probability.
One more time, my question is more global than this example. I try to find a solution to constrain any module which needs a specific constraint quite automatically like quartus does it when creating some ip core like LVDS_SERDES IP core on Cyclone10 Gx.
Here find attach the 2 files that quartus create which constrains any instantiation of this module in the design.
TCL file include some generic function that will find modules and targets elements
SDC file will call this tcl file apply specific constraint to some element in each module instantiation.
I try to modify these file for my project but I do not succeed ...
Note : I had to change file extension to import files in this forum because it doesn't allow TCL file and SDC files ....