07-25-2019 12:16 PM
I have a single reset recovery timing violation located within the AXI VDMA IP (version 6.3, in Vivado 2017.4). My S2MM AXIS slave clock is 85 MHz and S2MM AXI master clock is 100 MHz. The violation is a result of a reset on a FIFO that uses the 100MHz clock being driven by a flop clocked at 85MHz.
Is it safe to set_false_path to ignore this timing violation?
Name | Slack | Levels | Routes | High Fanout | From | To | Total Delay | Logic Delay | Net Delay | Requirement | Source Clock | Destination Clock | Exception |
Path 445 | -1.54 | 1 | 2 | 3 | [x]/axi_vdma_0/U0/GEN_SPRT_FOR_S2MM.S2MM_LINEBUFFER_I/GEN_S2MM_FLUSH_SOF_LOGIC.GEN_LINEBUFFER_FLUSH_SOF.GEN_ASYNC_FIFO_FLUSH_SOF.LB_BUILT_IN.I_LINEBUFFER_FIFO/fg_builtin_fifo_inst/inst_fifo_gen/gconvfifo.rf/gbi.bi/g7ser_birst.rstbt/rsync.ric.wr_rst_reg_reg/C | [x]/axi_vdma_0/U0/GEN_SPRT_FOR_S2MM.S2MM_LINEBUFFER_I/GEN_S2MM_FLUSH_SOF_LOGIC.GEN_LINEBUFFER_FLUSH_SOF.GEN_ASYNC_FIFO_FLUSH_SOF.LB_BUILT_IN.I_LINEBUFFER_FIFO/fg_builtin_fifo_inst/inst_fifo_gen/gconvfifo.rf/gbi.bi/v7_bi_fifo.fblk/gextw[1].gnll_fifo.inst_extd/gonep.inst_prim/gf36e1_inst.sngfifo36e1/RST | 1.05 | 0.40 | 0.65 | 1.95 | bclk_85_[x] | bclk_100_[x] |
07-30-2019 09:24 AM
Hi @banschu
As you are working on 7-series you might want to check the following AR:
https://www.xilinx.com/support/answers/71984.html
There are missing constraints for the VDMA when the stream and Memory mapped interfaces are using different clocks.
You might want to use 2019.1 to avoid this issue (or use the constraints mentioned in the AR).
Regards
07-30-2019 08:45 AM
Hi @banschu,
I would not recommend setting a false path. I don't know enough about the internal logic of the FIFO36 to know if this will be an issue or not.
However, this should not be an issue in the first place. Are you in 7-Series, US or US+?
If you open up a schematic and select the FIFO, in the Cell Properties menu, is the FIFO set so Synchronous or Asynchronous?
In 7 series, this is the DO_REG (UG743)
In US/US+, this is CLOCK_DOMAINS (UG573/UG974)
I am guessing that for some reason this is set to Synchronous in your system.
-Sam
07-30-2019 09:12 AM
Hello @samk
This is 7-Series logic (Zynq). The FIFO appears to bet set as Asynchronous. DO_REG=1, but I think you want to know EN_SYN=false.
07-30-2019 09:24 AM
Hi @banschu
As you are working on 7-series you might want to check the following AR:
https://www.xilinx.com/support/answers/71984.html
There are missing constraints for the VDMA when the stream and Memory mapped interfaces are using different clocks.
You might want to use 2019.1 to avoid this issue (or use the constraints mentioned in the AR).
Regards
07-30-2019 09:36 AM
Hi @banschu,
Thank you for checking, it looks like Florent found an AR that addresses the issue, and it looks like a false path will solve the problem.
Regards,
Sam