Hi,
We're faced with a strange problem ... While investigating a bug in one design, we could only observe that behavior on real board and not in simulation.
Using chipscope, we finally traced down the problem by monitoring both write and read port of a FIFO16 configured as 18x1024, using the same rd/wr clocks. That fifo was used in a "weird" way, by setting a ALMOSTFULL threshold very high (but still within spec), so that it turn on very quicly. And what we observed is that we push a data with some parity bits (which are not 'true' parity but some critical control), we continue to push, the almost full goes up (normal), and we still push (we still have plenty of room) and at the same time we re-read but slower (not at each clock cycle) and when we finally re-read the data where the parity bit was set, the data (15:0) are there but the parity bit is not, it's just 0 ...
The chipscope 'probes' were tied directly to the fifo signals, no logic in between. That fifo is supposed to cross clock domains but for debugging, we just sent the same clock everywhere. And the behavior of the surrounding logic is consitent with that bit being missed.
Instead of using ALMOSTFULL set to a very high value, we used not ALMOSTEMPTY (here since we're debugging with just 1 clock domain, it's ok), and there it looks like we never observe such a miss.
Has someone ever observed such a behavior ?
Sylvain