[Hardware] FPGA Pointers and Device Poll

Jecel Assumpcao Jr jecel at merlintec.com
Mon Jun 11 16:34:12 UTC 2007


Travis Kay wrote on Fri, 08 Jun 2007 16:00:05 -0700
> I've recently bought a Spartan 3E Starter Kit and I'm wondering what other  
> devices people are using.

That is a pretty good development kit. I have a XSA100 board from Xess
(100Kgates Spartan 2) and have borrowed a Spartan 3 Starter Kit
(200Kgate FPGA), each of which has some limitations that make it
complicated to develop Smalltalk computers on them. Here is a very
complete list of currently available boards:

http://www.fpga-faq.com/FPGA_Boards.shtml

Things to look for:

- Large enough FPGA: though I had a lot of fun trying to fit a whole
Smalltalk processor into a FPGA with only 15 thousand gates (my dietST
project) it is best to have as large a FPGA as possible. Things are
complicated when it is too small but if it is too large you can just
ignore what you don't need.

- Large enough RAM: you might be able to run Little Smalltalk or one of
the Spoon images with 1MB or less, but for something more like Squeak
you need 8MB or more. Normally boards with small RAMs use static RAM
chips which are very easy to use. The larger SDRAM (DDR or not) chips
are much more complicated but probably worth the trouble. It is easy to
find cores that will make a SDRAM look like a simple SRAM to the rest of
the circuit, but normally they don't make good use of the fast block
transfer features of SDRAMs and you end up with just a fraction of the
performance you should have.

- Local storage: either some Flash soldered on the board with enough
space left over after the FPGA programming bits or some Compact Flash or
SD card. Without this you will have to reload the image from the PC over
the communication line (and then save it the same way) on each reset.

- Communication: Ethernet or USB are pretty good, though you can make do
with RS232 if you are pacient enough. Sometimes you can use the JTAG
interface to communicate with the PC after the FPGA programming is done.

- Video output: a text-only Smalltalk can use the communication channel,
but it is much nicer if you can have a graphical output. Normally there
aren't many limitations in terms of resolution but it is common for
development boards to have very few colors.

- Keyboard and mouse: if you use the video output, then you will want to
have a keyboard and a mouse as well. Unfortunately, many kits which
include a PS/2 interface only have one. An alternative is USB but that
complicates things considerably.

> I'm new to hardware design and any pointers to material would be  
> appreciated. I've found a few online
> resources for soft cores and stack machines etc... However, I know this  
> list is for squeak and I would
> like to do some research in this area.

JOP is a very good starting point even though it is for Java:

http://www.jopdesign.com/

Forth processors are also a very good source of inspiration:

http://www.ultratechnology.com/chips.htm

I'll post more links in a few days when I will have a little more time.

-- Jecel


More information about the Hardware mailing list