Forum Discussion
Hi Renardo18,
"Isn't there a missing '}' after the first 'path' of the command you want me to run?"
- Yes you can run for first path one time and see if it taking effect for testing purpose. After recompiling, you can see in the timing report for this path whether fail or not. If not, then you can proceed with the remaining path.
"You mention "value is 10% more than the data delay of path", do you mean I need to run this command for each and every failing path?"
- Yes you have to run for each and every path. But in the Quartus, you can use wildcard character.
- You may refer for details in this link: https://www.intel.com/content/www/us/en/programmable/quartushelp/13.0/mergedProjects/reference/glossary/def_wildcard.htm
"In my first question, I mentioned that there were 29 failing paths, but today, after I relaunched the build yesterday, I have 75 failing paths in the DDR.. So more than yesterday, and probably some different ones."
- Is this occur after applying the constraint in your SDC?
- Any other changes that you have made?
In general, Fast Forward is use to analyze on how fast the design can go and could be useful to provide recommendation in timing issue particularly in setup.
In this case seems your setup is all good, fast forward is not applicable.
Another thing is you can run a few seeds maybe around 10 to 20 seeds and see if you can find the best timing among them.
Just asking, what is your memory frequency that you run on this IP?
Have you tried to use different compiler setting? Do some tweaks on the mode setting.
- Renardo183 years ago
New Contributor
Hi Adzim,
- "Yes you have to run for each and every path. But in the Quartus, you can use wildcard character.
I know that I use wildcard character, but what about the value of 10% more than the data delay of path, that means I need to use a specified value for every path, and thus, I can't use the wildcard isn't it?
- Is this occur after applying the constraint in your SDC?
- Any other changes that you have made?
I did not apply any constraint in my SDC, and I did not make any change to this part. I might have just cleaned timing on unrelated parts of the design and just relaunched the build.
So the only thing you are telling me to do at the end of the day is :
You can try to set min delay like below:
if { ! [is_post_route]} {
set_min_delay -from [get_keepers {path}] -to [path] value
}
value is 10% more than the data delay of the path.
Please see the } [IN RED] that I added to your code and tell me if I am right?
Also, am I right saying that I can't use the wildcard character because every path will need a different value value ?
Thanks
- SyafieqS3 years ago
Super Contributor
Hi Renardo,
1. Please see the } [IN RED] that I added to your code and tell me if I am right?
- Yes you are right, and if you are unsure about the syntax, you can always use constraint menu in TA, just select any constraint and locate the node in the node finder to make sure right collection is specified, then change to your desired constraint type, e.g set_max_skew or set_min_delay for your case. This is just for the sake of verification of the nodes and tcl syntax. Let me know if you are not understand.2. Also, am I right saying that I can't use the wildcard character because every path will need a different value value ?
- You can still use wildcards for that, in this case wildcard, the value specified will be normally used referred to the data delay of the worst negative slack path (usually the first path in column when report timing). Thus you no need to specified every path a value.Cheers
- Renardo183 years ago
New Contributor
Hi SyafieqS,
I am sorry I didn't have time to test it this week, please let me test this now and I'll tell you if anything changes
Thank you