Hi all,
I am using a Virtex-II Pro in ISE 8.1i and have generated a couple of asynchronous FIFOs in Coregen. The data path is shown below:
Input @ 133 MHz ---> Core @ 150 MHz ---> Output @ 133 MHz
The 133 MHz clock is from the DCM and the 150 MHz clock is from the DCM FX output. The problem is that when compiling, ISE tries to meet a timing constraint equal to the difference in the two clock periods (i.e. 0.852ns) for some nets in the FIFOs. Specifically, the nets with problems are of the form:
source: output_fifo/BU2/U0/fgas/flblk/clkmod/wrx/pntr_gc_* dest: output_fifo/BU2/U0/fgas/flblk/clkmod/wrx/pntr_gc_x_*
and
source: input_fifo/BU2/U0/fgas/flblk/clkmod/rdx/pntr_gc_* dest: input_fifo/BU2/U0/fgas/flblk/clkmod/rdx/pntr_gc_x_*
I am guessing these must be something to do with the Gray code counter and that it is a false constraint. Is that so? If so, why is ISE getting confused?
I don't if it is relevant but the FIFOs have full and empty flags which are not actually being used and count outputs which are (and I have checked that they are connected in the right clock domains too!).
Any help appreciated. Thanks, Rob.