Altera_Forum
Honored Contributor
13 years agoDCFIFO turns into LIFO
Hello,
I encountered a strange behaviour in one of my design in which I use a DCFIFO. The fifo is used to convert a 32 input to 8 bit output with rdclk different from wrclk. The configurations of the fifo are: 32 bit input/8 bit output =>wrclk/rdclk ; best metastability protection selected(3 sync stage); asynchronous clear; show ahead fifo;none of circuity protection disabled. I made the necessary (or which I thought necessary to be precise) time constraints: asynchronous clocks ( set_clock_groups -asynchronous with the two clocks involved in the fifo case being in different groups) and set_false_path copied from the SCFIFO/DCFIFO UG( although I understand that in Quartus 9 "the false path assignments are automatically added through the HDL-embedded Synopsis design constraint (SDC) commands when you compile your design") After a time of good behaviour, I observed that the fifo doesn't work properly. Sometimes I have on the output side some extra bytes(it seams that I give fewer rdreq, although the last message send from the fifo, before this, was complete, and the ones after are "ok", having the correct content, shifted with the amount of bytes that apeared on the first error) and other times I observed a lifo behaviour. Had anyone experienced something similar? or any ideas about the source of the problem? Have a nice day, Alex