--- Quote Start ---
One point on Brad's comment above, the set_max_delay and set_min_delay do use clock skew in their calculations. (Basically, all they do is override the launch and latch edge times for your setup and hold analysis. So set_max_delay of 10.0 will override that path so the launch edge is at 0.0 and the latch edge is at 10.0. The clock delays to the destination registrs is then used.
--- Quote End ---
Which I understand, but isn't what I want to achieve!
--- Quote Start ---
For the second post, it sounds like clock skew is important. If the skew to the clock on data was 3 clock cycles, then your enable would occur before the data did.
--- Quote End ---
This is exactly the reason why I want to set a max delay on the data to be equal to those 2 or 3 clock cycles! I want the data to reach the destination register before the data_enable. Since the data_enable is delayed by a few clock cycles, I want to specify this period of time as the max delay for the data.
--- Quote Start ---
Note that I don't get the Edit: comment, that you don't want a fixed number. Are you saying you want Quartus to figure out how many delay elements you pass the enable through and apply a delay requirement for that? Or just that you will change the value for different parts of the design, which is doable, you just have to apply the constraint between registers and not clock domains.
--- Quote End ---
Sorry for the confusion: I wanted to express the second interpretation: I will change the value for different parts of the design by applying the constraint between registers and not clock domains (I was basically eliminating the use of set_max_delay between the two clock signals as a possible solution to my problem).
I'm unsure on how to proceed with this one, hence my question in the first place. Does anyone have any ideas on how to constrain this scenario?