D
devices
Guest
I was trying to detect a start (or stop) condition (i2c).
A first approach consisted in "always @ (negedge isda)"
and setting a flag accordingly. The simulation woked.
When i wanted to check whether the module were
synthesizable the troubles began. No error, actually.
But the warnings were serious. The Timing Analysis
started to blame it on Ripple Clocks, Gated Clocks
and mostly on Clock skews. I fixed things by deploying
the common "always @ (posedge clk)" and detecting
the edges. I would like to know what happens behind
the scenes when a synthesis tool comes across a case
like the first "always" i listed.
A first approach consisted in "always @ (negedge isda)"
and setting a flag accordingly. The simulation woked.
When i wanted to check whether the module were
synthesizable the troubles began. No error, actually.
But the warnings were serious. The Timing Analysis
started to blame it on Ripple Clocks, Gated Clocks
and mostly on Clock skews. I fixed things by deploying
the common "always @ (posedge clk)" and detecting
the edges. I would like to know what happens behind
the scenes when a synthesis tool comes across a case
like the first "always" i listed.