RAM - DIMM vs SO-DIMM: price vs. (hardware & software) ease

S

sdaau

Guest
Hi all,

I am speculating about starting an FPGA based project soon, which may nee
to use RAM. So I'd like to leverage the (relative) abundance (and thus
hopefully low price) of desktop (or laptop) PC memory modules for thi
purpose - and I was wandering if the community had any comments o
suggestions.

Primary points of interest are:

* What is, in your opinion, the cheapest type of DIMM (desktop?) an
SO-DIMM (laptop?) modules currently available (2010-2011)? From a quic
scan, I can find
** SO DIMM 200-PIN, 1x512 MB module (DDR2 SDRAM) 667 MHz
** DIMM 240-PIN, 1x1GB module (DDR3 SDRAM) 1066 MHz
... for approx the same price ( below 13 Euro per GB). I'm aware this ma
be location dependent - but would the above represent the (currently
cheapest/most abundant modules on the market? If not, what would yo
consider cheapest/most abundant - and what would be a good referenc
(website) to consult?

* Do the PCB sockets for the diverse module types differ significantly i
price (maybe SO-DIMM sockets usually cost twice as much as DIMM?) Also, an
(negative) experiences in soldering any of these by hand?

* When they say stuff like "DDR2 SO-DIMM memory modules commonly have cloc
speeds from 200 MHz up to 800 MHz" (http://en.wikipedia.org/wiki/SO-DIMM)
I'd assume they talk of max frequencies - does that still mean, that I ca
clock the modules with _less_ of a frequency (say 50 MHz)?

* Given that, say, "DDR2 is neither forward nor backward compatible wit
either DDR or DDR3" (http://en.wikipedia.org/wiki/DDR2_SDRAM), obviousl
there is a need for dedicated hardware signaling interface for each type o
RAM. Is there something like a 'base interface' (say, maybe something lik
SPI), which would be relatively easy to use, and that all RAM modules woul
support (at the expense of reaching top speeds)?

* Assuming that there (most likely) isn't such a 'base interface' for al
RAM types, what (of the currently cheapest and most available types o
modules) would you feel is easiest to learn to interface with?

I'd also love to hear any other considerations in this type of usage that
may have missed - as well as any links to tutorials/previous projects usin
FPGA and these types of RAM for PCs..


Looking forward to any responses - thanks in advance,
Cheers!



---------------------------------------
Posted through http://www.FPGARelated.com
 
sdaau wrote:
* What is, in your opinion, the cheapest type of DIMM (desktop?) and
SO-DIMM (laptop?) modules currently available (2010-2011)?

what would be a good reference
(website) to consult?
dealram.com
 
Hi all,

I am speculating about starting an FPGA based project soon, which ma
need
to use RAM. So I'd like to leverage the (relative) abundance (and thus,
hopefully low price) of desktop (or laptop) PC memory modules for this
purpose - and I was wandering if the community had any comments or
suggestions.

Primary points of interest are:

* What is, in your opinion, the cheapest type of DIMM (desktop?) and
SO-DIMM (laptop?) modules currently available (2010-2011)? From a quick
scan, I can find
** SO DIMM 200-PIN, 1x512 MB module (DDR2 SDRAM) 667 MHz
** DIMM 240-PIN, 1x1GB module (DDR3 SDRAM) 1066 MHz
.. for approx the same price ( below 13 Euro per GB). I'm aware this may
be location dependent - but would the above represent the (currently)
cheapest/most abundant modules on the market? If not, what would you
consider cheapest/most abundant - and what would be a good reference
(website) to consult?

* Do the PCB sockets for the diverse module types differ significantly in
price (maybe SO-DIMM sockets usually cost twice as much as DIMM?) Also
any
(negative) experiences in soldering any of these by hand?

* When they say stuff like "DDR2 SO-DIMM memory modules commonly hav
clock
speeds from 200 MHz up to 800 MHz
(http://en.wikipedia.org/wiki/SO-DIMM),
I'd assume they talk of max frequencies - does that still mean, that
can
clock the modules with _less_ of a frequency (say 50 MHz)?

* Given that, say, "DDR2 is neither forward nor backward compatible with
either DDR or DDR3" (http://en.wikipedia.org/wiki/DDR2_SDRAM), obviously
there is a need for dedicated hardware signaling interface for each typ
of
RAM. Is there something like a 'base interface' (say, maybe somethin
like
SPI), which would be relatively easy to use, and that all RAM module
would
support (at the expense of reaching top speeds)?

* Assuming that there (most likely) isn't such a 'base interface' for all
RAM types, what (of the currently cheapest and most available types of
modules) would you feel is easiest to learn to interface with?

I'd also love to hear any other considerations in this type of usage tha
I
may have missed - as well as any links to tutorials/previous project
using
FPGA and these types of RAM for PCs..


Looking forward to any responses - thanks in advance,
Cheers!



---------------------------------------
Posted through http://www.FPGARelated.com
If you want to start learning how to use DDR, DDR2 or DDR3 memory then yo
are probably best to buy a cheap devlopment board. This way you dont hav
to worry to start with about the pcb layout which can be quite tricky for
novice. The interface for all three DDR memories is similar but not th
same. The newer the memory technology the faster they can be clocked, an
the faster the clocking the harder the design. I believe you can clock the
slower by disabling the PLL but its not something I have done. Xilinx has
product called MIG that will generate a memory controller for you but yo
still really need to know how the memory operates. So I would pick a Micro
data sheet or find a tutorial and read that.

Jon

---------------------------------------
Posted through http://www.FPGARelated.com
 
"rickman" <gnuarm@gmail.com> a écrit:
Based on some of the questions you are asking, it appears that you are
a newbie to working with DRAM. Each version of DRAM has its own
characteristics, always optimized for transfer speed. SDRAM transfers
one word on each clock cycle. DDR SDRAM transfers two words on each
clock cycle. DDR2 transfers four words on each clock cycle and I
don't know for sure, but I expect DDR3 transfers eight words on each
clock cycle. There are also electrical differences because typical
TTL/CMOS levels just don't cut it anymore at the rates data moves in
and out of these devices.

I don't think you are going to find good information for a newbie in
using SDRAM modules. I recall that I looked once and didn't find the
info in data sheets and such like I could find for individual RAM data
sheets. So for starters, you might want to use RAM chips and not
modules. Also for starters, I would suggest that you work with SDRAM
instead of the more complex faster devices. Once you have SDRAM under
your belt, the others will not be such a large step.
Hi,

Yet another newbie question:
Is SDRAM fast enough to generate a 720p or 1024p video stream (VGA or
DVI output) using a Spartan-3 or -3E FPGA ?
 
On Mar 19, 10:03 am, "sdaau" <sd@n_o_s_p_a_m.n_o_s_p_a_m.imi.aau.dk>
wrote:
Hi all,

I am speculating about starting an FPGA based project soon, which may need
to use RAM. So I'd like to leverage the (relative) abundance (and thus,
hopefully low price) of desktop (or laptop) PC memory modules for this
purpose - and I was wandering if the community had any comments or
suggestions.

Primary points of interest are:

* What is, in your opinion, the cheapest type of DIMM (desktop?) and
SO-DIMM (laptop?) modules currently available (2010-2011)? From a quick
scan, I can find
** SO DIMM 200-PIN, 1x512 MB module (DDR2 SDRAM) 667 MHz
** DIMM 240-PIN, 1x1GB module (DDR3 SDRAM) 1066 MHz
.. for approx the same price ( below 13 Euro per GB). I'm aware this may
be location dependent - but would the above represent the (currently)
cheapest/most abundant modules on the market? If not, what would you
consider cheapest/most abundant - and what would be a good reference
(website) to consult?

* Do the PCB sockets for the diverse module types differ significantly in
price (maybe SO-DIMM sockets usually cost twice as much as DIMM?) Also, any
(negative) experiences in soldering any of these by hand?

* When they say stuff like "DDR2 SO-DIMM memory modules commonly have clock
speeds from 200 MHz up to 800 MHz" (http://en.wikipedia.org/wiki/SO-DIMM),
I'd assume they talk of max frequencies - does that still mean, that I can
clock the modules with _less_ of a frequency (say 50 MHz)?

* Given that, say, "DDR2 is neither forward nor backward compatible with
either DDR or DDR3" (http://en.wikipedia.org/wiki/DDR2_SDRAM), obviously
there is a need for dedicated hardware signaling interface for each type of
RAM. Is there something like a 'base interface' (say, maybe something like
SPI), which would be relatively easy to use, and that all RAM modules would
support (at the expense of reaching top speeds)?

* Assuming that there (most likely) isn't such a 'base interface' for all
RAM types, what (of the currently cheapest and most available types of
modules) would you feel is easiest to learn to interface with?

I'd also love to hear any other considerations in this type of usage that I
may have missed - as well as any links to tutorials/previous projects using
FPGA and these types of RAM for PCs..

Looking forward to any responses - thanks in advance,
Cheers!

Based on some of the questions you are asking, it appears that you are
a newbie to working with DRAM. Each version of DRAM has its own
characteristics, always optimized for transfer speed. SDRAM transfers
one word on each clock cycle. DDR SDRAM transfers two words on each
clock cycle. DDR2 transfers four words on each clock cycle and I
don't know for sure, but I expect DDR3 transfers eight words on each
clock cycle. There are also electrical differences because typical
TTL/CMOS levels just don't cut it anymore at the rates data moves in
and out of these devices.

I don't think you are going to find good information for a newbie in
using SDRAM modules. I recall that I looked once and didn't find the
info in data sheets and such like I could find for individual RAM data
sheets. So for starters, you might want to use RAM chips and not
modules. Also for starters, I would suggest that you work with SDRAM
instead of the more complex faster devices. Once you have SDRAM under
your belt, the others will not be such a large step.

Rick
 
On Sat, 19 Mar 2011 09:03:50 -0500, sdaau wrote:

Hi all,

I am speculating about starting an FPGA based project soon, which may
need to use RAM. So I'd like to leverage the (relative) abundance (and
thus, hopefully low price) of desktop (or laptop) PC memory modules for
this purpose - and I was wandering if the community had any comments or
suggestions.

Primary points of interest are:

* What is, in your opinion, the cheapest type of DIMM (desktop?) and
SO-DIMM (laptop?) modules currently available (2010-2011)? From a quick
scan, I can find
** SO DIMM 200-PIN, 1x512 MB module (DDR2 SDRAM) 667 MHz ** DIMM
240-PIN, 1x1GB module (DDR3 SDRAM) 1066 MHz .. for approx the same price
( below 13 Euro per GB). I'm aware this may be location dependent - but
would the above represent the (currently) cheapest/most abundant modules
on the market? If not, what would you consider cheapest/most abundant -
and what would be a good reference (website) to consult?

* Do the PCB sockets for the diverse module types differ significantly
in price (maybe SO-DIMM sockets usually cost twice as much as DIMM?)
Also, any (negative) experiences in soldering any of these by hand?

* When they say stuff like "DDR2 SO-DIMM memory modules commonly have
clock speeds from 200 MHz up to 800 MHz"
(http://en.wikipedia.org/wiki/SO-DIMM), I'd assume they talk of max
frequencies - does that still mean, that I can clock the modules with
_less_ of a frequency (say 50 MHz)?

* Given that, say, "DDR2 is neither forward nor backward compatible with
either DDR or DDR3" (http://en.wikipedia.org/wiki/DDR2_SDRAM), obviously
there is a need for dedicated hardware signaling interface for each type
of RAM. Is there something like a 'base interface' (say, maybe something
like SPI), which would be relatively easy to use, and that all RAM
modules would support (at the expense of reaching top speeds)?

* Assuming that there (most likely) isn't such a 'base interface' for
all RAM types, what (of the currently cheapest and most available types
of modules) would you feel is easiest to learn to interface with?

I'd also love to hear any other considerations in this type of usage
that I may have missed - as well as any links to tutorials/previous
projects using FPGA and these types of RAM for PCs..


Looking forward to any responses - thanks in advance, Cheers!



--------------------------------------- Posted through
http://www.FPGARelated.com
The differences in prices between desktop and laptop DIMMs are small, just
look on Newegg to get an idea of what prices are like. Assuming you are
using an FPGA that can support it you want to use DDR3 because that the
current generation of DRAMs and it's cheapest and highest bandwidth.
However not all FPGAs can support it so use the most recent generation
that the target FPGA can support.
 
rickman <gnuarm@gmail.com> wrote:

On Mar 19, 10:03 am, "sdaau" <sd@n_o_s_p_a_m.n_o_s_p_a_m.imi.aau.dk
wrote:
Hi all,

I am speculating about starting an FPGA based project soon, which may need
to use RAM. So I'd like to leverage the (relative) abundance (and thus,
hopefully low price) of desktop (or laptop) PC memory modules for this
purpose - and I was wandering if the community had any comments or
suggestions.

Primary points of interest are:

* What is, in your opinion, the cheapest type of DIMM (desktop?) and
SO-DIMM (laptop?) modules currently available (2010-2011)? From a quick
scan, I can find
** SO DIMM 200-PIN, 1x512 MB module (DDR2 SDRAM) 667 MHz
** DIMM 240-PIN, 1x1GB module (DDR3 SDRAM) 1066 MHz
.. for approx the same price ( below 13 Euro per GB). I'm aware this may
be location dependent - but would the above represent the (currently)
cheapest/most abundant modules on the market? If not, what would you
consider cheapest/most abundant - and what would be a good reference
(website) to consult?

* Do the PCB sockets for the diverse module types differ significantly in
price (maybe SO-DIMM sockets usually cost twice as much as DIMM?) Also, any
(negative) experiences in soldering any of these by hand?

* When they say stuff like "DDR2 SO-DIMM memory modules commonly have clock
speeds from 200 MHz up to 800 MHz" (http://en.wikipedia.org/wiki/SO-DIMM),
I'd assume they talk of max frequencies - does that still mean, that I can
clock the modules with _less_ of a frequency (say 50 MHz)?

* Given that, say, "DDR2 is neither forward nor backward compatible with
either DDR or DDR3" (http://en.wikipedia.org/wiki/DDR2_SDRAM), obviously
there is a need for dedicated hardware signaling interface for each type of
RAM. Is there something like a 'base interface' (say, maybe something like
SPI), which would be relatively easy to use, and that all RAM modules would
support (at the expense of reaching top speeds)?

* Assuming that there (most likely) isn't such a 'base interface' for all
RAM types, what (of the currently cheapest and most available types of
modules) would you feel is easiest to learn to interface with?

I'd also love to hear any other considerations in this type of usage that I
may have missed - as well as any links to tutorials/previous projects using
FPGA and these types of RAM for PCs..

Looking forward to any responses - thanks in advance,
Cheers!


Based on some of the questions you are asking, it appears that you are
a newbie to working with DRAM. Each version of DRAM has its own
characteristics, always optimized for transfer speed. SDRAM transfers
one word on each clock cycle. DDR SDRAM transfers two words on each
clock cycle. DDR2 transfers four words on each clock cycle and I
don't know for sure, but I expect DDR3 transfers eight words on each
clock cycle. There are also electrical differences because typical
Wrong. All DDR memories transfer two words for each clock cycle.
Higher versions offer more facilities like on-die-termination, on chip
PLLs, higher speeds and lower voltages.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico@nctdevpuntnl (punt=.)
--------------------------------------------------------------
 
Don't worry about compatibility between different
RAM types. Your board will need to be re-designed
to change type. First of all there are different
core voltages for each type. Then if you use a
DIMM or SO-DIMM there are differences in the socket
keying.

One thing that would normally point to using
chips rather than SO-DIMM or DIMM is that the
cheapest FPGA families often don't support
DIMM memory. This is true of Spartan 6 for
example. So saving a few bucks on DIMM memory
may cost you big bucks going for a higher end
FPGA. My only reason to go away from chip
memory would be that I need a very large amount
of memory (more than a couple of the densest
chips).

Finally the price sweet spot for memory is a
moving target. I think right now your best
price per bit is still DDR2, but DDR3 should
take over soon enough. That being said it
does you no good to decide on DDR3 until you
know your FPGA will support it at a reasonable
speed (watch out - all DDR families have relatively
high minimum operating frequencies).

-- Gabor
 
Hi,

Yet another newbie question:
Is SDRAM fast enough to generate a 720p or 1024p video stream (VGA or
DVI output) using a Spartan-3 or -3E FPGA ?
I am also interested if SDRAM is sufficient for video streaming? E.g.
Video-over-IP.
 
Using standard DIMMs or SODIMMs is good for cost but only for a
limited period until the next speed garde or type takes over in
popularity. The choice of vendors is good as well and these can be big
advantages over discrete memory chips. At the moment the memory of
choice is DDR3. Price per bit is best and density is also a big
winner. However some FPGA families cannot support this memory type and
your PCB design needs to be fairly good to run at these speeds.

Note that DDR2/3 do have minimum speeds if you are going to use DLL/
PLLs that they use internally. You may be operate them out of this
mode but I have never seen anyone do that and there will be very in
examples out there to reference.

There may be other things to consider. DIMMs and SODIMMs need a lot of
I/O to use them. Probably 80-100 depending on a few things. That can
impact the size of FPGA packacge you use and that is a cost as well if
you go up in package size because of it.

Hard memory cores are also another thing to consider. All of our
Spartan-6 based development boards have a x16 DDR3 on board and that's
because there is hard memory controller in the FPGA. That means we are
not using FPGA fabric for a memory controller that is in itself a
cost. The hard controller will have a cost that is advertised into the
FPGA cost but it will be a small fraction of the equivalent soft core
fabric approach. Big upside of the hard memory controller is that it
is relatively easy to get going. Note that the Spartan-6 controller
will only go to x16 data and won;t support a DIMM/SODIMM.

DIMM/SODIMM are different for each memory type. Usually there is a
different polarisation notch. Pinout and operating voltages are also
different.

For simplicity don't ignore conventional SDRAM. Personally if I don't
have a high performance, density, issue or even a hard controller
available this is my memory type of choice. No minimum frequency on
this either. I certainly won't bother with DDR1 and would only use
DDR2 things like Cyclone IV boards as we have done in our Raggedstone3
product because the DDR3 isn't really an option.

John Adair
Enterpoint Ltd. - Home of Merrick1. The cost effective HPC board.

On Mar 19, 2:03 pm, "sdaau" <sd@n_o_s_p_a_m.n_o_s_p_a_m.imi.aau.dk>
wrote:
Hi all,

I am speculating about starting an FPGA based project soon, which may need
to use RAM. So I'd like to leverage the (relative) abundance (and thus,
hopefully low price) of desktop (or laptop) PC memory modules for this
purpose - and I was wandering if the community had any comments or
suggestions.

Primary points of interest are:

* What is, in your opinion, the cheapest type of DIMM (desktop?) and
SO-DIMM (laptop?) modules currently available (2010-2011)? From a quick
scan, I can find
** SO DIMM 200-PIN, 1x512 MB module (DDR2 SDRAM) 667 MHz
** DIMM 240-PIN, 1x1GB module (DDR3 SDRAM) 1066 MHz
.. for approx the same price ( below 13 Euro per GB). I'm aware this may
be location dependent - but would the above represent the (currently)
cheapest/most abundant modules on the market? If not, what would you
consider cheapest/most abundant - and what would be a good reference
(website) to consult?

* Do the PCB sockets for the diverse module types differ significantly in
price (maybe SO-DIMM sockets usually cost twice as much as DIMM?) Also, any
(negative) experiences in soldering any of these by hand?

* When they say stuff like "DDR2 SO-DIMM memory modules commonly have clock
speeds from 200 MHz up to 800 MHz" (http://en.wikipedia.org/wiki/SO-DIMM),
I'd assume they talk of max frequencies - does that still mean, that I can
clock the modules with _less_ of a frequency (say 50 MHz)?

* Given that, say, "DDR2 is neither forward nor backward compatible with
either DDR or DDR3" (http://en.wikipedia.org/wiki/DDR2_SDRAM), obviously
there is a need for dedicated hardware signaling interface for each type of
RAM. Is there something like a 'base interface' (say, maybe something like
SPI), which would be relatively easy to use, and that all RAM modules would
support (at the expense of reaching top speeds)?

* Assuming that there (most likely) isn't such a 'base interface' for all
RAM types, what (of the currently cheapest and most available types of
modules) would you feel is easiest to learn to interface with?

I'd also love to hear any other considerations in this type of usage that I
may have missed - as well as any links to tutorials/previous projects using
FPGA and these types of RAM for PCs..

Looking forward to any responses - thanks in advance,
Cheers!

---------------------------------------        
Posted throughhttp://www.FPGARelated.com
 
"PovTruffe" <PovTache@gaga.invalid> a écrit :
Hi,

Yet another newbie question:
Is SDRAM fast enough to generate a 720p or 1024p video stream (VGA or
DVI output) using a Spartan-3 or -3E FPGA ?
No response :-((
Maybe my question was not very clear. Let me paraphrase it:
What kind of RAM would you use for a video frame buffer (Spartan-3E) ?
Or would either type of RAM work ?
 
"PovTruffe" <PovTache@gaga.invalid> a �crit :
Hi,

Yet another newbie question:
Is SDRAM fast enough to generate a 720p or 1024p video stream (VGA or
DVI output) using a Spartan-3 or -3E FPGA ?

No response :-((
Maybe my question was not very clear. Let me paraphrase it:
What kind of RAM would you use for a video frame buffer (Spartan-3E) ?
Or would either type of RAM work ?
For any application you must calculate what size and speed of ram yo
require. So for your application you must determine the memory bandwidt
and the size of memory needed to fit the data into the memory. You kno
what your application is and the relevan parameters so you just need t
match those to the standard ram available. You may find that it is no
possible to with the fpga you want to use and you need to choose a highe
spec device.

Jon

---------------------------------------
Posted through http://www.FPGARelated.com
 
"maxascent" <maxascent@n_o_s_p_a_m.n_o_s_p_a_m.yahoo.co.uk> a écrit :
No response :-((
Maybe my question was not very clear. Let me paraphrase it:
What kind of RAM would you use for a video frame buffer (Spartan-3E) ?
Or would either type of RAM work ?

For any application you must calculate what size and speed of ram you
require. So for your application you must determine the memory bandwidth
and the size of memory needed to fit the data into the memory. You know
what your application is and the relevan parameters so you just need to
match those to the standard ram available. You may find that it is not
possible to with the fpga you want to use and you need to choose a higher
spec device.
Thank you for your response. However I was in fact expecting more a rule
of thumb response such as for example "SDRAM would probably work for
VGA resolution at 30Hz rate no more...".

I am still choosing the right components for my first FPGA design that is just
a learning project with no other specific purpose. If I can generate a video
stream thats fine, if not I will do something else (or lower the frame size,
refresh rate, etc).

The challenge is also to design a working Spartan-3 FPGA board with the
largest non BGA package and with only 2 layers. The risk of course is the
board will never work.
 
"PovTruffe" <PovTache@gaga.invalid> wrote in message
news:4d876ea8$0$19933$426a74cc@news.free.fr...
"maxascent" <maxascent@n_o_s_p_a_m.n_o_s_p_a_m.yahoo.co.uk> a écrit :
No response :-((
Maybe my question was not very clear. Let me paraphrase it:
What kind of RAM would you use for a video frame buffer (Spartan-3E) ?
Or would either type of RAM work ?

For any application you must calculate what size and speed of ram you
require. So for your application you must determine the memory bandwidth
and the size of memory needed to fit the data into the memory. You know
what your application is and the relevan parameters so you just need to
match those to the standard ram available. You may find that it is not
possible to with the fpga you want to use and you need to choose a higher
spec device.

Thank you for your response. However I was in fact expecting more a rule
of thumb response such as for example "SDRAM would probably work for
VGA resolution at 30Hz rate no more...".

I am still choosing the right components for my first FPGA design that is
just
a learning project with no other specific purpose. If I can generate a
video
stream thats fine, if not I will do something else (or lower the frame
size,
refresh rate, etc).

The challenge is also to design a working Spartan-3 FPGA board with the
largest non BGA package and with only 2 layers. The risk of course is the
board will never work.
For a full HD display running at 60Hz frame rate you need about 125Mpix/s x
24 or 30 bits. Easily within the lowest spec DDR SDRAM as you only need
sequential access. You can always up the bitwidth of the memory to increase
bandwidth if access time proves inadequate but obviously you'll need to
determine that at the outset.

Phil
 
If I was you I would have a look at some of Xilinx boards. Download th
schematics and gerbers to see how they have designed them. From you
comments you dont seem to have much knowledge about designing boards. Ther
is no way that you can use two layers for a bga design. The minimum woul
be 4 and this would have to be a fairly low frequency design.

Jon

---------------------------------------
Posted through http://www.FPGARelated.com
 
In article <8JKdnaSMPotTFxrQnZ2dnUVZ8qOdnZ2d@brightview.co.uk>,
Phil Jessop <phil@noname.org> wrote:
"PovTruffe" <PovTache@gaga.invalid> wrote in message
news:4d876ea8$0$19933$426a74cc@news.free.fr...
"maxascent" <maxascent@n_o_s_p_a_m.n_o_s_p_a_m.yahoo.co.uk> a écrit :
No response :-((
Maybe my question was not very clear. Let me paraphrase it:
What kind of RAM would you use for a video frame buffer (Spartan-3E) ?
Or would either type of RAM work ?

For any application you must calculate what size and speed of ram you
require. So for your application you must determine the memory bandwidth
and the size of memory needed to fit the data into the memory. You know
what your application is and the relevan parameters so you just need to
match those to the standard ram available. You may find that it is not
possible to with the fpga you want to use and you need to choose a higher
spec device.

Thank you for your response. However I was in fact expecting more a rule
of thumb response such as for example "SDRAM would probably work for
VGA resolution at 30Hz rate no more...".

I am still choosing the right components for my first FPGA design that is
just
a learning project with no other specific purpose. If I can generate a
video
stream thats fine, if not I will do something else (or lower the frame
size,
refresh rate, etc).

The challenge is also to design a working Spartan-3 FPGA board with the
largest non BGA package and with only 2 layers. The risk of course is the
board will never work.



For a full HD display running at 60Hz frame rate you need about 125Mpix/s x
24 or 30 bits. Easily within the lowest spec DDR SDRAM as you only need
sequential access. You can always up the bitwidth of the memory to increase
bandwidth if access time proves inadequate but obviously you'll need to
determine that at the outset.
The original question is too ill-posed - I wouldn't take any "rule of thumb"
type response with respect to video - the numbers add up too fast.

One would assume you're not just reading or writing to the DDR - you probably
need to do (at least one) of both a frame-buffer read, and a frame-buffer write.
So 2X (at least) the BW requirements there. How are you going to pack
(20-bit, 24-bit, 30-bit and/or 32-bit?) pixel data onto a (16/32/48/64 bit)
memory interface? Pack it, or throw away bandwidth?

Reads and Writes at same time? - can you still guarantee "sequential access"
enough so you don't lose bandwidth efficiencies to the DRAM? Is there
anything else (a CPU?) using the DRAM too that throws this off?

To the OP - there's no "rule of thumb". Sit down with a pen and paper,
or excel spreadsheet, and calculate you're requirements.

--Mark
 
In article <im8d2q$um6$2@news.eternal-september.org>,
glen herrmannsfeldt <gah@ugcs.caltech.edu> wrote:
Mark Curry <gtwrek@sonic.net> wrote:
(snip)

The original question is too ill-posed - I wouldn't take any
"rule of thumb" type response with respect to video - the
numbers add up too fast.

One would assume you're not just reading or writing to the DDR -
you probably need to do (at least one) of both a frame-buffer read,
and a frame-buffer write. So 2X (at least) the BW requirements there.
How are you going to pack (20-bit, 24-bit, 30-bit and/or 32-bit?)
pixel data onto a (16/32/48/64 bit) memory interface? Pack it,
or throw away bandwidth?

There is the old trick (IBM CGA days) of doing the writes during
refresh times. For the CGA, I believe that there was an interrupt
on vertical refresh, such that you do all the writes then.
That's implied now anyway - the one response gave the number of ~125Mpixels/sec.
That implies using the blanking time to do something "useful". The actual
pixel clock for 1080P is around 145MHz.

--Mark
 
Mark Curry <gtwrek@sonic.net> wrote:
(snip)

The original question is too ill-posed - I wouldn't take any
"rule of thumb" type response with respect to video - the
numbers add up too fast.

One would assume you're not just reading or writing to the DDR -
you probably need to do (at least one) of both a frame-buffer read,
and a frame-buffer write. So 2X (at least) the BW requirements there.
How are you going to pack (20-bit, 24-bit, 30-bit and/or 32-bit?)
pixel data onto a (16/32/48/64 bit) memory interface? Pack it,
or throw away bandwidth?
There is the old trick (IBM CGA days) of doing the writes during
refresh times. For the CGA, I believe that there was an interrupt
on vertical refresh, such that you do all the writes then.

Reads and Writes at same time? - can you still guarantee "sequential access"
enough so you don't lose bandwidth efficiencies to the DRAM? Is there
anything else (a CPU?) using the DRAM too that throws this off?
-- glen
 
"maxascent" <maxascent@n_o_s_p_a_m.n_o_s_p_a_m.yahoo.co.uk> a écrit :
If I was you I would have a look at some of Xilinx boards. Download the
schematics and gerbers to see how they have designed them.
I already have several schematics but I am not yet working on the memory and video
circuits. I asked a question because I saw people talking about DRAM there...

From your comments you dont seem to have much knowledge about designing
boards. There is no way that you can use two layers for a bga design.
The minimum would be 4 and this would have to be a fairly low frequency design.
I wrote: "largest NON-BGA package". That is a PQ208 one. I am mostly worried
by the lack of power planes and higher pin capacitance. By the way I have a
significant experience about PCB design but never with a FPGA.
 
The original question is too ill-posed - I wouldn't take any "rule of thumb"
type response with respect to video - the numbers add up too fast.
OK but I have the freedom to choose whatever video size, rate, # of bits I like.
If I can generate only a 100 x 100 pixel video at 10Hz, thats is fine.

One would assume you're not just reading or writing to the DDR - you probably
need to do (at least one) of both a frame-buffer read, and a frame-buffer write.
So 2X (at least) the BW requirements there. How are you going to pack
(20-bit, 24-bit, 30-bit and/or 32-bit?) pixel data onto a (16/32/48/64 bit)
memory interface? Pack it, or throw away bandwidth?
Yes I am aware of the multiple accesses, read and write, that will be required.
Because of the PQ208 package the memory interface will probably be limited
to 16 bit. And some address lines may not be used as well. I am mainly worried
about the PQ208 high pin capacitance.

Reads and Writes at same time? - can you still guarantee "sequential access"
enough so you don't lose bandwidth efficiencies to the DRAM? Is there
anything else (a CPU?) using the DRAM too that throws this off?
I will probably include a CPU later and try to access the RAM as a learning
exercise.

To the OP - there's no "rule of thumb". Sit down with a pen and paper,
or excel spreadsheet, and calculate you're requirements.
I will do that later. I tryed to make it clear that for this project I do not have
the professional / engineering approach that most of you in this group are
used to. There are no predefined and rigid features for the board. I will just
choose a FPGA, throw a RAM and a few peripherals, then play with the board.
However the PCB will be designed as optimally as possible (shortest trace
lengths, equal length for buses, etc). Later things will become clearer and I will
get a much better feel about the capabilities of a FPGA. Because of the steep
learning curve, if I begin working with all the details, the board will never be
finished this year and I would probably run out of motivation...
 

Welcome to EDABoard.com

Sponsor

Back
Top