"Andy Peters" <> wrote in message
news: ups.com...
> > With both clk and isda as clocking signals, the timing
> > analyzer computed the shortest and longest path, the
> > shortest and longest delay and, as a warning, concluded
> > that the circuit may not operate.
>
> Why two clocks?
>
> -a
ISDA is used locally to drive a flip flop clock. I
needed to detect its edges. Well, a flip flop clock
input would do that. The falling and rising edges of
SDA, in i2c, trigger the start and end conditions while
SCL holds high. So once the always block is triggered,
to detected the condition is just a matter of checking
SCL. I didn't invent anything. I had an application note
where the edges of SDA and mostly SCL were used
like that. I don't remember the AppNote case, but in
my case ISDA is internally generated (that's why
I-SDA) by my humble i2c master. I'm using the
Quartus II timing analyzer and i guess the ISDA's way
of driving the flip flop is what Altera calls a Registered
Clock and the analyzer might complain with warnings.
I'm not really interested in the ISDA thing now (as
i said i ended up in using a synchronous edge detector),
but i find that with Quartus' timing analyzer this kind of
issues arises frequently, even with clock dividers. Altera
explains why:
http://www.altera.com/literature/wp/...ngAnalysis.pdf
The key concept of the document is that the analyzer
does its best to check every possible issue in timing.
I guess that some of the warnings might be ignored or
you could instruct the analyzer on what you are doing
by setting up the analysis with detailed contraints. I'll
have to find out a way (or a way out

to set a threshold
above or under which i can shrug my shoulder.
--