cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Anonymous
Not applicable
9,665 Views

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

0 Kudos
4 Replies
Highlighted
Professor
Professor
9,664 Views
Registered: ‎08-14-2007

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
0 Kudos
Highlighted
Anonymous
Not applicable
9,657 Views

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

0 Kudos
Highlighted
Historian
Historian
9,645 Views
Registered: ‎02-25-2008

Re: Fifo with a non-free running wr_clk


@Anonymous 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.
0 Kudos
Anonymous
Not applicable
9,639 Views

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.

 

0 Kudos