Forum Discussion
Timing Constraint for modules
You say you've heard this recommendation of a false path on the input of the synchronizer from everyone. I've never seen or heard of this and I've been constraining designs for a long time. Reference? Or are you referring to something asynchronous or completely asynchronous like a button press on the input? This of course would be a false path.
Typically, for synchronous clocks, the clocks are both generated by the same PLL. That's why you wouldn't need to do this. The relationship on both sides of the synchronize is set by the PLL. You may need to use multicycle to describe the relationship between data coming in and out of the synchronizer, but you don't need a false path in this case.
For metastability, instead of using timing constraints, it's usually recommended to make the synchronizer chain longer with extra register(s). Quartus can recognize synchronizer chains, choose good placement for the registers in the chain, and maintain them through compilation. There's even a metastability report you can generate in the timing analyzer to see the MTBF for each synchronizer.
The rest of your query is scripting stuff, which I'm not an expert in, but of course there are lots of references available.
As I said in my first post, I develop modules that can be used in many projects where clock relationship can be different.
Sometimes they can be synchronous and sometines not. That's why I need to put a set false path to be more general.
Moreover, if clocks are effectively synchronous, indeed I don't need a set_false path ... but i don't need a synchronizer neither ... so I won't use this synchronizer module.... (If I know that clocks are synchronous by design)
Well, my question was not about the need or not of a timing constraint but how to find a specific register based on a module name. And if i had already found some scripts to do that I wouldn't ask the question here. So if you know where I can find these script I will be grateful.
best regards
- RichardT_altera4 years ago
Super Contributor
Hi @rhe
I am not sure if there is a particular script that can help you in regards to this case.
However, you may checkout the Intel Quartus Prime Pro Edition User Guide: Scripting for a comprehensive reference of all the Intel Quartus Prime Tcl packages and commands.
You could also type quartus_sh --qhelp in the command prompt (make sure the dir at <quartus installation directory>/quartus/bin64) to starts the Intel Quartus Prime Command-Line and Tcl API Help browser, a viewer for information about the Intel Quartus Prime Command-Line executables and Tcl API.
Best Regards,
Richard Tan
p/s: If any answer from the community or Intel support are helpful, please feel free to give Kudos.