You can get them in a single chip, there really fast and dont consume a lot of power.
If you only going to be doing random read and writes then its Activate -> READ/WRITE -> BurstTerminate -> Precharge -> repeat
At 'repeat' go do a refresh once in a while.
The vhdl for the gen cart is there, but I really suggest using SDRAM digikey pn# MT48LC16M16A2 or better yet just snag one off some PC ram. There should be some tsop to dip adapter so you can work with it.
How big does this end up being? It looks like you've synthesized it for a Spartan-II... do you think an SDRAM controller is feasible in, say, an XC95144? I'm not so concerned about unit cost; frankly for the logic/IO density a Spartan-II is a vastly better value than any flash CPLD, but I'd prefer something nonvolatile for a flash cart...
Also, how do you generate/condition the clock signal for your SDRAM?
You can trim the source up and use that xilinx webpack and try to synthesize it for whatever chip you want to use. [module view->select the chip-> properties ->select alt chip]
I get a clock off the cypress usb fx2. It drives the state machine and the sdram.
I did an experiment making a clock from a simple and cheap RC circuit with a cpld board I have. It works pretty good. It seems to be really device dependant since I could only tweak it in around 20mhz (+/1 a few mhz) something to do with the pin hysteresis.