Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Visitor
razi.marjani
Posts: 7
Registered: ‎06-10-2012
0

Fifo with a non-free running wr_clk

Hi

I need an async fifo based distribured with independent clock in my design,

the wr_clk isn,t free running.

it seems 4 first word don,t write in Fifo.

 

I simulate my design with structural model of fifo and problem is exist.

 

Is a non-free running clk is n,t suitable for Wr-Clk?

thanks

Expert Contributor
gszakacs
Posts: 5,346
Registered: ‎08-14-2007
0

Re: Fifo with a non-free running wr_clk

The standard "asynchronous" (dual-clock) FIFO is designed for free-running clocks.  I suspect

that the data that "isn't written" is actually in the FIFO, but the flags (EMPTY, DATA_COUNT...) won't

show it because they need more write clocks to push the status through to the read clock domain.

If you have access to a free-running clock synchronous to your write signal, then use that for the

FIFO write clock.  Otherwise you may need to use another approach to transfer your write data

to another free-running clock domain.

 

-- Gabor

-- Gabor
Visitor
razi.marjani
Posts: 7
Registered: ‎06-10-2012
0

Re: Fifo with a non-free running wr_clk

Hi

My project  is about write and read to/from an ide device. I coded the UDMA protocol for these porpuse.

In read UDMA, ide device send Data to hose on falling and rising edge of a srobe.

I used strobe as wr-clk and when I want to store data to fifo I assert wr_en but strobe isn't free running.

is there another approach?

thanks

Expert Contributor
bassman59
Posts: 4,741
Registered: ‎02-25-2008
0

Re: Fifo with a non-free running wr_clk


razi.marjani wrote:

Hi

My project  is about write and read to/from an ide device. I coded the UDMA protocol for these porpuse.

In read UDMA, ide device send Data to hose on falling and rising edge of a srobe.

I used strobe as wr-clk and when I want to store data to fifo I assert wr_en but strobe isn't free running.

is there another approach?

thanks


Synchronize your strobe to the FPGA's system clock, and use the valid edges of the strobe to generate a write enable synchronous to the clock. Also, you probably should make sure that your data and your addresses are also synchronous to the clock.


----------------------------------------------------------------
Yes, I do this for a living.
Visitor
razi.marjani
Posts: 7
Registered: ‎06-10-2012
0

Re: Fifo with a non-free running wr_clk

Hi

I Solved the problem.

I used an Async Fifo .

Strobe that come from Ide Devise is used as wr_clk of this Async_Fifo.

the fifo that I used is according the XAPP768c.

I write my own Async Fifo with Async DualPort RAM16 inside FPGA.