Re: SimmStick FPGA module

From: Jim Granville (
Date: 02/15/05

Date: Tue, 15 Feb 2005 19:50:56 +1300

Martin Schoeberl wrote:
>>>Another idea: What do you guys think about adding a slot for a SD Card [1].
>>>They are cheap (about EUR 10,- for 128MB) and you get them up to 1GB!
>>>However, the impact on the board is high: The connector is 'big' and
>>>increases the board hight. A FPGA with a higher pin-count is needed. For
>>>the solution without the SD Card a 100pin TQFP would fit, but now a 144pin
>>>is needed - again a larger board.
>>>And this adds again a few EUR/$. All these design decissions! You start with
>>>a minimal core design and than start adding (unnecesssary) features again.
>>>BTW: Has somebody inplemented an SD Card interface in an FPGA. It should
>>>not be too hard [2]. The simplest solution would be the SPI bus.
>> You might want to consider two variants: one that is on the KISS path,
>>and is on the lower price knee, and just sufficent to operate a workable
>>JOP, and another that is more maximal, and more able to launch an
>>operating system as well.
> I would be happy to go the KISS path, but I don't know how one can keep
> a soft-cpu module simple to handle. You have too many options: You're
> developing on two levels: the CPU inside the FPGA with peripheral components
> and software for the CPU. During development on one of these areas different
> ways for downloading the configuration/software fits best:
> Simplest: Flash is configured with JOP waiting for a download of a Java program.
> How do you donwload it? Via a serial interface - Then we need a serial interface.
> Program the serial Flash with the Java program. Not very comfortable during
> development - You have to use Quartus for the Flash programming, but you are
> only interested in Java development.
> Now you start changing JOP, e.g. do some FPGA development. Do you want to
> program the Flash for every try or do you prefere to download the configuration
> direct to the FPGA. Then we need a second ByteBlaster adapter (one for the Flash
> and one for the Cyclone). Two pin heads need space and make it more complicate
> to handle the board (not the KISS path).

  It depends on the bandwidths, but I like Pablo's idea of a FT2232C -
there may be enough smarts between that device, and your FPGA, to
improve PC-target bandwidths for debug (single step?) and download ->
SDRAM, prior to code FLASH for final pass.
  Perhaps a 'virtual jumper' in the FPGA code, or'd with a FT2232C pin,
could select Load from USB.FIFO, or top of SerialConfig ?

  Another device that appeals for Soft-cpu is this one :
with 75MHz burst, 32 bits wide, that's 2400MB/s, vs 25-50MB/s on a SD card.
  So the SD card looses on speed, but gains on universal supply/size,
and you CAN easily remove it - hmmm... perhaps put the M58BW032 on the
other side of the PCB ?

  Maybe option the SD socket, and M58BW032, on the more complex model ?

Next, some form of Codec would be nice, what about something from this
selection ?
$5-7 for 22-60Msps ADC & DAC ?
This ties in well with a SD socket, & USB link...

> Any ideas are highly welcome ;-)
>> For package, I'd vote against pin-modules, as they are expensive
>>to make, have a pin count ceiling, and are easily damaged. The only
>>benefit is they can save a little time in first deployment.
>> Better are the memory-card formats, as they have low cost and sturdy
>>connections, that can still be socket managed on 1 & 2 layer PCB, and
>>you can offer a socket-pcb for users starting from nothing.
> First ideas about the memory card format (still SIMM):
> One format is very small with a FPGA in TQFP100. There are just enough pins
> for the SDRAM and the SimmStick bus. The second variant is larger with
> a TQFP144 FPGA and a slot for a SD card.

SD starts to look nice on this basis...

>> Besides the simmmstick itself, you should consider the SODIMM modules,
>>as seen in TINI :
> Yes, another option. However, is there a kind of 'standard' for this larger modules.
> Are there peripheral modules available for this form factor?

The TINI itself ? ;)
- plus as TINI also has Java path, you could get some cross-polination ?

>> For "smart expansion", SD would be one option, but smaller and
>>more flexible might be USB-Drive ?. Not as cheap at the lowest node,
>>but universally portable - few PCs can R/W SD cards, but they can all
>>R/W a USB drive.
>> Of course, that means the FPGA needs to be smarter :)
> Do you mean USB host? That's not so earsy. I would expect that the FPGA
> (and the software) has to be too smart ;-)

You are probably right, but you did ask for suggestions :)

> Martin
> PS.: Thanks for all suggestions from the usenet group! It's really fun to discuss several
> options during development of a board.