A Multi-cycle path in a design is a Register-to-Register path, through some combinational logic where if the source register changes, the path will require N number of clock cycles (where N>1) before the computation is propagated to the destination register. It is a good practice for a designer to document these multi cycle paths.
Figure shows path P1 that starts at flip-flop U1, goes through gates G1, G3, G5, and G6, and ends at flip-flop U5. This path has a total propagation delay longer than the clock period for CLK1.
In synthesis, it is encouraged that the designer inform the synthesis tool of any multi-cycle paths. This would allow the synthesis tool to more efficiently optimize the other logic paths that are not meeting the setup requirements rather than to attempt to optimize this multi-cycle path.
To specify this timing exception in STA, use the set_multicycle_path command which has -from, -to, and -through switches. For this example, it would look like this:
set_multicycle_path -from U1 -to U5Figure shows path P1 that starts at flip-flop U1, goes through gates G1, G3, G5, and G6, and ends at flip-flop U5. This path has a total propagation delay longer than the clock period for CLK1.
In synthesis, it is encouraged that the designer inform the synthesis tool of any multi-cycle paths. This would allow the synthesis tool to more efficiently optimize the other logic paths that are not meeting the setup requirements rather than to attempt to optimize this multi-cycle path.
To specify this timing exception in STA, use the set_multicycle_path command which has -from, -to, and -through switches. For this example, it would look like this:
False path
In a false path, there is a logical connection from one point to another. Because of the way the logic is designed, this path can never control the timing. For example, a small piece of a design might look like the one in figure.
When select is 0, there's a path from FF1 to FF2 through both multiplexer inputs. Because both selects can never be 0 concurrently (perhaps they are 1 hot signals), this circuit topology will prevent the path from occurring. As a result, this path doesn't need to be optimized to meet the clock cycle timing from the first to the second flip flop. This path is a false one because it can never occur. Even though it is false, a STA tool would flag it as a path. If the delay on the path misses its target, it would flag it as a failing signal. Placing a false-path constraint on this path will allow the synthesis tool to forgo optimizing this path for speed, thereby generating a smaller, lower-power implementation.
14 comments:
Thanks Suresh,
For that simple and fast explanation of those 2 concepts..
the multi cycle path description is wrong with respect to the figure. Figure shows a single cycle path rather a multi cycle path.
Thanks man, it's very helpful and simple to understand
I really like this blog, you are very good making them. I say that the issue discussed in this blog is quite interesting and of high quality.
Hello buddy very interesting post about Multi-cycle path thanks for sharing!!
I liked this blog, i think is very interesting, most of all for the new ideas that this blog talk.
Nicely stated. Thanks!
Thanks a lot for this simple and good explanations.
Awesome.. simple and understandable explanation. Remarkable!
Many thanks Suresh
1. Didn't know false path situation for other than asynchronous paths.
2. Also the MCP concept is more clearer now.
Hello,
Thank you very much. I understood the meaning of MCP and False Path.
Thank you
Howdy would you mind sharing which blog platform you're using? I'm
looking to start my own blog soon but I'm having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design seems different then most blogs and I'm looking for something unique.
P.S My apologies for getting off-topic but I had to ask!
Also visit my homepage :: perfumes originales
Great post. The concept is nicely explained
Great post. The concept is nicely explained
Post a Comment