A
alb
Guest
Hi Rick,
rickman <gnuarm@gmail.com> wrote:
[]
Imagine your path between two registers (A and B) is set by another
register C. The resulting operation is to be stored in register D. If
you do not set a /through/ clause you will constraint each path with the
maximum delay, which is not desirable.
I've often done post-par sims, but it was combined with an STA,
therefore I've always been sure the design was correct as long as STA
did not report anything fishy *and* post-par sim succeeded.
Recently I started to look at post-par sims as an additional step which
is not necessarily required for synchronous logic as long as your input
constraints are well defined.
In this case we cannot use STA to do time analysis and I'm
unconfortable.
I certainly was talking about the /through/ clause I mentioned earlier.
The synthesis tool might optimize away (or maybe rename) certain nets
and you're constraint will not be applicable anymore.
That is why you'd be better off if you didn't have them!
rickman <gnuarm@gmail.com> wrote:
[]
1. multicycle constraints need not only a /from/ and /to/
parameter, they also
need a /through/ parameter. When you have a logic depth of 111 gates
you start to
understand why a multicycle constraint cannot be a sustainable solution.
I can't say I follow that. I have only ever specified a from and to
parameter for a timing constraint. I have never needed to indicate a
"through" parameter. If you have special sections of the logic that
need a shorter timing constraint than others, I would expect that to be
a subset of the from and to, not a special "though" path. Is there
something unique about your design that a simple from and to spec
doesn't capture the nuance?
Imagine your path between two registers (A and B) is set by another
register C. The resulting operation is to be stored in register D. If
you do not set a /through/ clause you will constraint each path with the
maximum delay, which is not desirable.
2. My experience in setting up multicycle constraints is nearly
zero and starting
off with such an approach on this type of project would be begging
for troubles.
How much experience do you have with any of the other approaches you are
trying? I mean, you are here asking for advice. So clearly there are
things about each of these approaches you are not familiar with.
I've often done post-par sims, but it was combined with an STA,
therefore I've always been sure the design was correct as long as STA
did not report anything fishy *and* post-par sim succeeded.
Recently I started to look at post-par sims as an additional step which
is not necessarily required for synchronous logic as long as your input
constraints are well defined.
In this case we cannot use STA to do time analysis and I'm
unconfortable.
a. is difficult to maintain them; if the logic path has been
optimized the
constraint does not work anymore
I don't follow that either. It is seldom that any from/to path would be
optimized away. If it is, it is likely due to an error in your code
which you will need to fix anyway.
I certainly was talking about the /through/ clause I mentioned earlier.
The synthesis tool might optimize away (or maybe rename) certain nets
and you're constraint will not be applicable anymore.
b. is difficult to verify them; if the path *is not* multicycle you
may wrongly
relax the timing too much and never realize until another
optimization takes place
and your circuit does not work any more.
ALL timing constraints are difficult to verify... no, make that
impossible. That has always been one of my complaints about static
timing analysis, there is no way to verify the constraints other than
the coverage number which is just a pass/fail sort of thing.
That is why you'd be better off if you didn't have them!