FPGARelated.com
Forums

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

Started by sdaau March 19, 2011
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
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 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 >
If you want to start learning how to use DDR, DDR2 or DDR3 memory then you are probably best to buy a cheap devlopment board. This way you dont have to worry to start with about the pcb layout which can be quite tricky for a novice. The interface for all three DDR memories is similar but not the same. The newer the memory technology the faster they can be clocked, and the faster the clocking the harder the design. I believe you can clock them slower by disabling the PLL but its not something I have done. Xilinx has a product called MIG that will generate a memory controller for you but you still really need to know how the memory operates. So I would pick a Micron data sheet or find a tutorial and read that. Jon --------------------------------------- Posted through http://www.FPGARelated.com
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
"rickman" <gnuarm@gmail.com> a &#4294967295;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 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=A0pm, "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 nee=
d
> 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, a=
ny
> (negative) experiences in soldering any of these by hand? > > * When they say stuff like "DDR2 SO-DIMM memory modules commonly have clo=
ck
> 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=
n
> 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 lik=
e
> SPI), which would be relatively easy to use, and that all RAM modules wou=
ld
> 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 usi=
ng
> FPGA and these types of RAM for PCs.. > > Looking forward to any responses - thanks in advance, > Cheers! > > --------------------------------------- =A0 =A0 =A0 =A0 > Posted throughhttp://www.FPGARelated.com