I have read the ppt.
Totally it should be a great presentation for midium & advanced user as well as newer.
But if you add some vivid & typical example related to real application, it will be more helpful for newer.
For me, could you give more information for the following words:
As long as user is aware of caveats, set_max/min_delay can be useful
Case# 1: Requirement is not related to clock edges
Output Enable launch edge may have to switch at output before latch edge occurs to minimize bus contention
Reduce metastability – If user has two registers for demetasabilizing a signal, they should transfer as quickly as possible. set_max_delay 1.0 can be used here
Question1: I think I never run into the first case, so I don't understand what you mean.(that is why I say if you add some vivid & typical example related to real application, it will be more helpful for newer)
Question2: Actually, In my current project, I use lots of synchronizer(containing two registers reg1®2 for demetasabilizing a signal), so basing on your presentation, I do the following constraint, does it right?
set_max_delay -from [get_registers {|General_Synchronizer:*|reg1}] -to [get_registers {|General_Synchronizer:*|reg2}] 1
I will be very thankful if you can explain why If user has two registers for demetasabilizing a signal, they should transfer as quickly as possible