UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
2,473 Views

Vivado block ram & FIFO usage problem

Hi,

I have many different experiences using block ram and fifo in xilinx ise and i'm not so newbie in vivado. I have a code developed for clock domain crossing using fifo ip core in vivado 2016.4 and my coding structure was same as previous works treating fifo but there is many strange behaviors hear. After finalizing behavioral simulation and verification of code and implementation without any timing violation, post implementation timing simulation shows fifo output data is only zeroes in each output domain clock cycle(Clock frequency is 250 MHz and related xdc consists of required create_clock timing constraint). After programming this code into the FPGA(kintex7 FPGA with -2 speedgrade), outputs of related block were stable without any dynamic. These steps repeated by disabling implementation optimization. After this new implementation, post implementation simulation was OK and again hardware test failed, unfortunately. Replacing two simple dual port block rams with this fifo shows same problems too. Which considerations are absent hear or which problems with my code can generate these fails?

Thanks 

mhmontazeri61

0 Kudos
3 Replies
Adventurer
Adventurer
2,453 Views

Re: Vivado block ram & FIFO usage problem

@mhmontazeri61

Try increasing the synchronizing stages to maximum and see if your timing works. This option is available while configuring the IP.

0 Kudos
Adventurer
Adventurer
2,427 Views

Re: Vivado block ram & FIFO usage problem

@tn45eng,

Using this option from 2 to 5 was not affected. The results are same.

Re

mhmontazeri61

0 Kudos
Visitor terumi
Visitor
2,269 Views

Re: Vivado block ram & FIFO usage problem

I had the same problems as you!

 

Last month I used the AXI4-Stream Data FIFO, and the behavior simulation and post-implementation simulation is perfect . Everything seems good. But when I downloaded the bit stream file into the board (ku095), it didn't work! Data was input into the FIFO, but there is no output. And then I changed the stages from 2 to other numbers, but made no sense.

 

So I abandoned AXI4-Stream data FIFO, alternatively I use FIFO generator to generate a FIFO, so far it works well. 

 

But it remains a question, that is I don't know how to make use of the s_asis_tuser signal. As this FIFO is connected to a MAC, the MAC will assert/de-assert  the _tuser signal to inform if the frame received is a good frame or not. And the FIFO is supposed to be able to discard the frame when _tuser signal is de-assert.

 

Any suggestion will be appreciative. THX

0 Kudos