FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 09-13-2005, 10:34 PM
Remco
Guest
 
Posts: n/a
Default FIFO design using Virtex-II block ram..

Hi all
We've set up a simple FIFO on a Spartan3 FPGA using the free code from
Xilinx XApp258 (FifoCTLR_IC_V2.vhd)
Initially this mechanism was tied to a DMA and we were having a hard
time figuring out what was going on.
By process of elimination, we tied the FIFO to an address and used the
read/write strobed to read and write to the fifo.

We can scribble data and read it back.
The weird thing we're seeing is that the "empty" does not become true
until data is read for the first time. It also becomes untrue with data
left in the FIFO (usually 2 longs remaining).

Has anyone seen this before? Or do we need to pay for the libary to get
it fixed

TIA
Remco

Reply With Quote
  #2 (permalink)  
Old 09-13-2005, 11:36 PM
John_H
Guest
 
Posts: n/a
Default Re: FIFO design using Virtex-II block ram..

"Remco" <whybcuz@yahoo.com> wrote in message
news:1126643665.621179.25160@g44g2000cwa.googlegro ups.com...
> Hi all
> We've set up a simple FIFO on a Spartan3 FPGA using the free code from
> Xilinx XApp258 (FifoCTLR_IC_V2.vhd)
> Initially this mechanism was tied to a DMA and we were having a hard
> time figuring out what was going on.
> By process of elimination, we tied the FIFO to an address and used the
> read/write strobed to read and write to the fifo.
>
> We can scribble data and read it back.
> The weird thing we're seeing is that the "empty" does not become true
> until data is read for the first time. It also becomes untrue with data
> left in the FIFO (usually 2 longs remaining).
>
> Has anyone seen this before? Or do we need to pay for the libary to get
> it fixed
>
> TIA
> Remco


Or you could use the Xilinx FIFO Generator v2.2 Logicore for a more fully
specified interface. The user guide has timing diagrams and signal
descriptions that are probably much better than the XAPP258.


Reply With Quote
  #3 (permalink)  
Old 09-14-2005, 03:42 PM
Vladislav Muravin
Guest
 
Posts: n/a
Default Re: FIFO design using Virtex-II block ram..

Why not designing a FIFO on your own?

V


"Remco" <whybcuz@yahoo.com> wrote in message
news:1126643665.621179.25160@g44g2000cwa.googlegro ups.com...
> Hi all
> We've set up a simple FIFO on a Spartan3 FPGA using the free code from
> Xilinx XApp258 (FifoCTLR_IC_V2.vhd)
> Initially this mechanism was tied to a DMA and we were having a hard
> time figuring out what was going on.
> By process of elimination, we tied the FIFO to an address and used the
> read/write strobed to read and write to the fifo.
>
> We can scribble data and read it back.
> The weird thing we're seeing is that the "empty" does not become true
> until data is read for the first time. It also becomes untrue with data
> left in the FIFO (usually 2 longs remaining).
>
> Has anyone seen this before? Or do we need to pay for the libary to get
> it fixed
>
> TIA
> Remco
>



Reply With Quote
  #4 (permalink)  
Old 09-14-2005, 04:47 PM
Remco
Guest
 
Posts: n/a
Default Re: FIFO design using Virtex-II block ram..


Vladislav Muravin wrote:
> Why not designing a FIFO on your own?
>
> V
>


Yeah, that's what we're doing now.

It is just that when they give you the freebie library of components
why re-invent the wheel, right?

Of course, their %#$%$%$^@# component doesn't work for crap, so they
basically steer you down a dark alley for a day or so.
We had it integrated in a DMA mechanism and when stuff doesn't work,
you don't immediately assume it is the commercially availbable
component -- one would hope they test their junk before it is thrown
over the wall (I guess they didn't).
So the first thing you assume is bad is your own code..

I guess you get what you pay for.

Remco


>


> "Remco" <whybcuz@yahoo.com> wrote in message
> news:1126643665.621179.25160@g44g2000cwa.googlegro ups.com...
> > Hi all
> > We've set up a simple FIFO on a Spartan3 FPGA using the free code from
> > Xilinx XApp258 (FifoCTLR_IC_V2.vhd)
> > Initially this mechanism was tied to a DMA and we were having a hard
> > time figuring out what was going on.
> > By process of elimination, we tied the FIFO to an address and used the
> > read/write strobed to read and write to the fifo.
> >
> > We can scribble data and read it back.
> > The weird thing we're seeing is that the "empty" does not become true
> > until data is read for the first time. It also becomes untrue with data
> > left in the FIFO (usually 2 longs remaining).
> >
> > Has anyone seen this before? Or do we need to pay for the libary to get
> > it fixed
> >
> > TIA
> > Remco
> >


Reply With Quote
  #5 (permalink)  
Old 09-14-2005, 06:50 PM
Mike Treseler
Guest
 
Posts: n/a
Default Re: FIFO design using Virtex-II block ram..

Remco wrote:

> It is just that when they give you the freebie library of components
> why re-invent the wheel, right?


Yes, the components are presented like
jelly beans in a candy store.
I didn't notice the handcuffs, the black box,
and the lawyer until the sugar wore off.

> Of course, their %#$%$%$^@# component doesn't work for crap, so they
> basically steer you down a dark alley for a day or so.


Even if they worked perfectly,
I don't need the complications of their
sim models and libraries. Running
synthesis and simulation using the
same code that I wrote and
understand is a huge advantage.

Many of the components are one-liners anyway.
Even a fifo is just two counters
and a block ram template.

> We had it integrated in a DMA mechanism and when stuff doesn't work,
> you don't immediately assume it is the commercially availbable
> component -- one would hope they test their junk before it is thrown
> over the wall (I guess they didn't).


I don't doubt that some vendor testing is
done, but I don't have the source and I have
to redo it anyway in my own testbench.

> So the first thing you assume is bad is your own code..


If I write my own code, I don't have to assume.
The problem is always in my own code,
but I am free to sim/edit/trace it as
much as I like.

> I guess you get what you pay for.


The only payment required is time and thought.

-- Mike Treseler
Reply With Quote
  #6 (permalink)  
Old 09-14-2005, 07:27 PM
Remco
Guest
 
Posts: n/a
Default Re: FIFO design using Virtex-II block ram..

Mike Treseler wrote:
> Remco wrote:
>
> > It is just that when they give you the freebie library of components
> > why re-invent the wheel, right?

>
> Yes, the components are presented like
> jelly beans in a candy store.
> I didn't notice the handcuffs, the black box,
> and the lawyer until the sugar wore off.
>
> > Of course, their %#$%$%$^@# component doesn't work for crap, so they
> > basically steer you down a dark alley for a day or so.

>
> Even if they worked perfectly,
> I don't need the complications of their
> sim models and libraries. Running
> synthesis and simulation using the
> same code that I wrote and
> understand is a huge advantage.
>
> Many of the components are one-liners anyway.
> Even a fifo is just two counters
> and a block ram template.
>
> > We had it integrated in a DMA mechanism and when stuff doesn't work,
> > you don't immediately assume it is the commercially availbable
> > component -- one would hope they test their junk before it is thrown
> > over the wall (I guess they didn't).

>
> I don't doubt that some vendor testing is
> done, but I don't have the source and I have
> to redo it anyway in my own testbench.
>
> > So the first thing you assume is bad is your own code..

>
> If I write my own code, I don't have to assume.
> The problem is always in my own code,
> but I am free to sim/edit/trace it as
> much as I like.
>
> > I guess you get what you pay for.

>
> The only payment required is time and thought.
>
> -- Mike Treseler


All good points - thanks for the reality check.
Remco

Reply With Quote
  #7 (permalink)  
Old 09-15-2005, 06:24 AM
jtw
Guest
 
Posts: n/a
Default Re: FIFO design using Virtex-II block ram..


"Mike Treseler" <mike_treseler@comcast.net> wrote in message
news:3or2mhF752qmU1@individual.net...
> Remco wrote:
>
>> It is just that when they give you the freebie library of components
>> why re-invent the wheel, right?

>
> Yes, the components are presented like
> jelly beans in a candy store.
> I didn't notice the handcuffs, the black box,
> and the lawyer until the sugar wore off.
>
>> Of course, their %#$%$%$^@# component doesn't work for crap, so they
>> basically steer you down a dark alley for a day or so.

>
> Even if they worked perfectly,
> I don't need the complications of their
> sim models and libraries. Running
> synthesis and simulation using the
> same code that I wrote and
> understand is a huge advantage.
>
> Many of the components are one-liners anyway.
> Even a fifo is just two counters
> and a block ram template.
>
>> We had it integrated in a DMA mechanism and when stuff doesn't work,
>> you don't immediately assume it is the commercially availbable
>> component -- one would hope they test their junk before it is thrown
>> over the wall (I guess they didn't).

>
> I don't doubt that some vendor testing is
> done, but I don't have the source and I have
> to redo it anyway in my own testbench.
>
>> So the first thing you assume is bad is your own code..

>
> If I write my own code, I don't have to assume.
> The problem is always in my own code,
> but I am free to sim/edit/trace it as
> much as I like.
>
>> I guess you get what you pay for.

>
> The only payment required is time and thought.
>
> -- Mike Treseler


I haven't looked at their FIFO app note, but in general, the app notes are
just that: notes to help you get an understanding of how to work with the
device. Their IP (Coregen or $) will be expected to be more reliable and,
presumably, application appropriate.

For an asynchronous FIFO I need, I just ran Coregen and trust that it is
doing it right. (Yes, I simulated it, and yes, I'll test it in the lab.)
For another kind, where I need lots of FIFOs of varying sizes (perhaps
dynamic), I need to create my own: and I've done it. Seems every
application, though quite similar to a previous design, has some new quirks.

JTW (Wright, not Weddick)


Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to determine number of block rams in a Coregen Fifo rootz Verilog 4 06-11-2005 06:35 PM
FIFO design Simone Winkler FPGA 9 12-11-2003 11:32 PM
Generating Asynchronous FIFO in Block Memory of Sparatn-II in CoreGen Atif FPGA 0 09-03-2003 06:30 AM


All times are GMT +1. The time now is 06:15 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved