cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
goychman
Explorer
Explorer
3,628 Views
Registered: ‎11-03-2013

Xilinx' fifo core - timing issues

Hi,

 

I'm using Xilinx' fifo IP (in vivado 2014.1) and I'm unable to close the timing because of the fifo it self. I'm getting a warning for the following data path:

 

from :

.../XILINX_GEN.fifo_d148_a8_i/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/wr_pntr_gc_reg[0]/C

 

to:

.../XILINX_GEN.fifo_d148_a8_i/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage[1].rd_stg_inst/Q_reg_reg[0]/D

 

I'm not sure how I can solve timing issues within the fifo itself. The fifo is a dual clock fifo, both are 156.25Mhz clocks, just the phase is (could be) diffrent. I have 2 sync stages between clocks.

 

Any ideas what is going on and how I can fix it?

t_f.png
0 Kudos
Reply
7 Replies
vijayak
Xilinx Employee
Xilinx Employee
3,606 Views
Registered: ‎10-24-2013

Hi,
Are you seeing the timing issues in standalone IP?
Can you please attach the timing report?
Thanks,Vijay
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
0 Kudos
Reply
aher
Xilinx Employee
Xilinx Employee
3,603 Views
Registered: ‎07-21-2014

Hi,

 

please make sure that you have not disabled any xdc file that is generated by tool when you synthesize the IP in OOC.

 

thanks,

Shreyas

----------------------------------------------------------------------------------------------
Try to search answer for your issue in forums or xilinx user guides before you post a new thread.

Kindly note- Please mark the Answer as "Accept as solution" if information provided solves your query.
Give Kudos (star provided in right) to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos
Reply
goychman
Explorer
Explorer
3,553 Views
Registered: ‎11-03-2013

Hello,

 

What do you mean by a standalone IP?

 

I've created the fifo using Xilinx' IP wizard and just connected it to my system.

 

I've attached the timing report(I ran the "report_timing_summary" tcl command is that what you ment?)

 

 

0 Kudos
Reply
goychman
Explorer
Explorer
3,499 Views
Registered: ‎11-03-2013

Did any one encountere this issue or have any idea what I can do to fix this?

0 Kudos
Reply
vijayak
Xilinx Employee
Xilinx Employee
3,488 Views
Registered: ‎10-24-2013

Hi,
I see very less slack and suggest you to use Performance_Explore implementation strategy which generally improves timing results.
Refer to page 139 of below document for information on different strategies available with Vivado.
http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_3/ug904-vivado-implementation.pdf
3) One more strategy that may help meeting timing is Performance_RefinePlacement

Thanks,Vijay
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
0 Kudos
Reply
avrumw
Guide
Guide
3,479 Views
Registered: ‎01-23-2009

The paths you are seeing are clearly the clock crossing paths within the FIFO (I recognize the names); to be sure you should give the detailed timing report of the top path, but I am pretty confident it will show that the path starts and ends on different clocks (one end on your read clock and one on the write clock).

 

These paths are proper clock crossing paths, and, as such, they need constraints to override the default timing analysis behavior of the tool.

 

One of the advantages to the IP mechanism in Vivado is that it doesn't only generate a netlist for you, it also generates all the constraints for the block. When the IP was generated, it also generated an .xdc file with the proper exceptions for these paths. You can see this by going into the IP pane in the sources window, and looking at all the files generated for the IP - there will be .xdc files there. These files become part of your project automatically when the IP block is created in your project or imported to your project.

 

Clearly, though, these files are not being used properly in your design. This means either

  - you did something "odd" when you generated/imported the IP into your project or

  - something went wrong when the IP constraints were applied to your design

 

Look through your messages to make sure that there weren't any warnings about a "set_max_delay" command - I think this might even show up as a critical warning. The constraint file for the core assumes your design is already constrained - specifically that both the read clock port and write clock port of the FIFO have a clock associated with them; that a create_clock or create_generated_clock, or an automatically generated clock is associated with the nets connected to the ports of the FIFO. If you don't have a clock defined for one of the ports, then the set_max_delay constraint in the FIFO's .xdc will fail (with a warning or critical warning). Even if you add the clock "later", the set_max_delay will still not be in place, which will cause these timing errors.

 

Avrum

0 Kudos
Reply
mghadiri
Visitor
Visitor
1,803 Views
Registered: ‎03-24-2016

Hi,

I have a similar issue with the FIFO IP. I am using the FIFO for interfacing two clock domains (write clock is at 560MHz and read clock is at 70MHz). But I get a lot of timing failing points inside the FIFO IP. The whole point of the project is to read a bunch of data from FMC connectors and connect them to an ila so that I can store the data. I have attached the timing report and would appreciate it if anyone could help with this.

Thanks

 

0 Kudos
Reply