I'm using a Spartan 3 FPGA, and I was wondering if there were any pitfalls or special considerations when designing a board with external dram. For starters, does dram or SRAM really matter? Which is more common? What's a good low cost ram IC, and what's a good middle point for total size? I'm just supposed to choose the most commonly used external ram module and connect it to a FPGA. Thanks!
Sorry about this, but your problem/question is pretty much very contradictionary. You start with asking about design of "a board with external dram"; like you've already desided to use DRAM. And while I understand that you want to keep the question simple, you provide too little information to get a good answer. The specifications of "most common", "good low cost", etc only have "depends" answers.
Yes, there are a lot of pitfalls using DRAMs. Especially, if you have to ask, then IMO, you should
go for SRAM. If you don't know enough to tell if DRAM or SRAM matters, then any (S)DRAM interface is just too much to start with, both in terms of design and layout. Just take a look into a mDDR or DDR2 device datasheet and try to figure out how to design the interface. For example, you can start with taking a look at the initialization of the device.
Do you mean "module" or "device"? If you really are set to use "the most commonly used external ram
module" then, in practice, there is only DDR2 or possibly DDR3 modules to choose from.
Although there nothing wrong with Spartan 3 in particular, mixing it with modern memory technology like DDR2 or DDR3 isn't very logical. Older (S)DRAM technologies I wouldn't even consider for a new design.