Forum Discussion
Altera_Forum
Honored Contributor
13 years agomulticycle setup has a -start/-end option that defaults to -end if not specified. Imagine drawing the waveforms and then an arrow for your default setup relationship from the launch edge to your latch edge. A multicycle -end moves the end of that arrow out, so it increases your setup relationship by the latch clock period. A multicycle -setup -end of 2 would move it from 20ns to 40ns, and it would still fail big time. A multicycle -setup -start of 2 would move the start of the arrow back, increasing the setup relationship by 10000ns to 10020ns. That would have met timing(assuming you added the multicycle -hold -start of 1 with it).
The way I tend to think of it is to ask if there is a hard limit in time that defines pass/fail. Is there some delay on the signal coming into PS2_DAT and feeding this register in CLOCK_50 domain, whereby if it were XXns it would work but if it were 100ps later, say XX.1ns, then it would fail. That's the way synchronous relationships work and what's being analyzed. (There's a subset of requests I see that is more ambiguous. Users sometimes say, I don't want to cut that path, because then it could be anything. What if the delay were 100ns? 1000ns? 100us? At some point it wouldn't work. Personally, I know that's not going to happen, but understand the argument. In those cases there isn't a black-and-white line of what works and what doesn't, but they don't want to cut it completely.)