View Single Post
  #9 (permalink)  
Old 11-10-2007, 08:00 PM
Marlboro
Guest
 
Posts: n/a
Default Re: FIFO interface design

On Nov 9, 10:56 pm, Readon <[email protected]> wrote:
> On Nov 9, 10:54 am, Gabor <[email protected]> wrote:
>
>
>
>
>
> > On Nov 8, 8:25 pm, Readon <[email protected]> wrote:

>
> > > On Nov 9, 8:07 am, Dave Pollum <[email protected]> wrote:

>
> > > > On Nov 8, 8:15 am, Readon <[email protected]> wrote:

>
> > > > > i want to read & write data to/from a fifo placed in fpga. MCU's
> > > > > external bus is connected to the chip. I am using the sync-fifo ip of
> > > > > Altera CycloneII. The data bus and control signal are connected to
> > > > > fifo directly. it's unfortune that when i read once from bus, data
> > > > > would be read twice from fifo because there are two clock rising edges
> > > > > during read signal(low active) is resetted. I think it will read more
> > > > > datas from fifo if the read signal is resetted long enough.
> > > > > Is there any good design for fifo interface connecting on the
> > > > > exteranl bus?

>
> > > > Using a Synchronous FIFO implies that the read clock and the write
> > > > clock are in the same clock domain. Is your MCU supplying the FIFO's
> > > > clock or is the FPGA supplying the MCU's clock? If the clock sources
> > > > are different, then you either need an Asynchronous FIFO, or you need
> > > > to run the MCU and FPGA from the same clock.
> > > > HTH
> > > > -Dave Pollum

>
> > > It is in different clock, i tried altera's asynchronous FIFO which
> > > need two extra clock for reading.
> > > is there any better solution?

>
> > If your MCU is running much slower than the FPGA, you can use the
> > FPGA's internal clock to run the synchronous FIFO, and a little
> > state logic to generate the necessary (single cycle) pulses for
> > read and write from the MCU interface signals.

>
> unfortunately, the problem i met is on the contrary. MCU is much
> faster then FPGA, about 4 times.- Hide quoted text -
>
> - Show quoted text -



Some how you need to synchronize your MCU read to the FIFO read clock
(edge detect as others said), then make sure the read connects to the
FIFO has 1 clock wide only

btw, building your own FIFO isn't difficult if the speed fairly "slow"





Reply With Quote