Forum Discussion
Altera_Forum
Honored Contributor
15 years agoSynchronous Design Timing (VHDL)
Hi All, I am very new to VHDL and working with hardware so I'm hoping this forum can fill in some of the giant holes in my knowledge. My current question relates to timing in synchronous d...
Altera_Forum
Honored Contributor
15 years agoThanks a bunch for the responses. I had some time to play around with ModelSim and the DCFIFO and I've noticed that there's a one cycle delay from when the simulator wave shows a change in the signal and when my component can see that change.
Example as seen from ModelSim: -After adding a byte to the FIFO, 'fifo_e' goes to '0' (i.e. no longer empty) -One cycle later my VHDL code sees that change and sets 'rdreq' to '1'. -One cycle later DCFIFO sees my request and outputs the next word. -One cycle later that word is now finally visible to my VHDL piece. So it seems that after I assert 'rdreq', I need to wait two cycles before reading from the FIFO's data out. Does that sound correct? So: "Changes made to a signal on the rising edge by component A aren't noticed until the next rising edge of component B". That makes sense to me at least (as it avoids the race condition thoughts that pop into my head). I haven't had a chance to look at the TimeQuest stuff yet, so if I'm way off in the above statements, then that might clear everything up. Thanks again!