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.


Relevant Pages

  • Re: SimmStick FPGA module
    ... >> Program the serial Flash with the Java program. ... >> Now you start changing JOP, e.g. do some FPGA development. ... It was not the idea to exectue code direct from the SD card. ... As the TINI is a VERY slow JVM, JOP could be a fine replacement ...
  • problem in loading from flash to spartan-3 xc3s200
    ... Hello, I'm learning to use FPGA, and i've designed and realized some ... I'm using the xilinx ise 9.2 updated sp4, ... In particular, I can create the .mcs file for the flash, I can program ... I tried to see the signal CCLK (pin 104) with a scope but the signal was ...
  • Re: FPGA with 5V and PLCC package
    ... of Craignell ... The main points are FPGA XC3S100E or XC3S250E or XC3S500E. ... 4Mbit flash but up to 16Mbit is possible. ... pin versions added to the range. ...
  • Re: fpga reset (re-initialize) of spartan3e
    ... transfered new configuration data to a flash, ... and want to reinitialize the fpga without using the external prog_b ... Can you not just drive the PROG_B pin from the FPGA itself by connecting it ...
  • Re: divide-by-N
    ... find some spare pins on your FPGA. ... These days we have EEPROM and using RS232 you only need _one_ pin to set it. ... In the old days sound cards, and I/O cards especially, were full of DIP switches. ... FLASH will be OK, as it will lose value when everything else FLASH based does... ...