[LMH] Ooh, look! List traffic!

Jaap Weel weel@caltech.edu
Thu Mar 4 23:22:01 2004


On 4 Mar 2004, at 18:57, Dan Moniz wrote:
> On Thursday, March 04, 2004 7:01 PM +0000 Robert Swindells 
> <rjs@fdy2.demon.co.uk> wrote:
>> I was only half joking about translating it to VHDL.
>> [...]
>> The whole CPU would fit into a $15 FPGA using current technology, add
>> a couple of 16bit SDRAMs and some boot flash and you have a 10x faster
>> microExplorer.
>
> [...]
> Of course, there's the longer term problem of getting a monitor and 
> input devices to talk to it, which would be painful, and disks, file 
> systems, a running install, oh my!
> Probably, now that I think about it, an FPGA-based Explorer processor 
> on a PCI card, with some interface glue would be the way to go.

I don't know if this is applicable, but hey, you never know. When they 
made OpenGenera (you know, the virtual Symbolics-on-Alpha), they didn't 
give it any intrinsic knowledge about DEC's hardware. All it knew how 
to do was to talk on the network. It would then find its filesystem 
through NSF, display its interface through X11, and in various other 
ways leverage the fact that there was always a copy of OSF/1 to take 
care of bit-diddling IO. It's not very purist, but you could do a lot 
with a network interface, while a $200 Walmart FORTRAN Machine can take 
care of I/O.

> If someone is willing to buy me a simple Xilinx setup (usable FPGA for 
> this purpose, test-board, Verilog compiler, etc.), I'll take a crack 
> at it. I won't hold my breath, but this equipment has come down in 
> price. I think the FPGA we'd want/need is more expensive than the one 
> included in their $70 - $100 starter kit.

In all the following, please keep in mind that I just happen to have 
become interested in FPGA's like, what, three weeks ago, so don't take 
any of this to literally:

Xilinx development boards are overpriced and geared towards industries, 
not hackers or students; third-party suppliers are cheaper. Some of 
their boards come as PCI cards, which would be a Good Thing. There's 
www.geda.seul.org for various GPL'ed design tools, including a Verilog 
simulator. Xilinx put out a student edition of their software that you 
can order on Amazon for $65. It contains VHDL and Verilog tools as well 
as lower-level tools. It has a limitation on the size of FPGA it can 
deal with, but I don't think that need be prohibitive. It says for an 
older version: "any XC9500 CPLD, any Spartan FPGA, any XC4000 FPGA up 
to an XC4010, or the XCV50 Virtex FPGA." Spartan goes up to 28*42 CLB's 
with 56kbits on-chip "block ram". The d*(&%^*& Xilinx website is down 
so I can't check what the limitations on the current version are or how 
many CLB's are on a Virtex.

At the risk of seriously offending the intellect of readers who know 
computer architecture much better than I do from just reading 
Hennesy&Patterson:
  Even though on LISP machines the microcode has the added advantage 
that it can be reprogrammed easily, the original reason for Microcode 
as opposed to Hardwired Control is that you could conserve precious 
silicon area by having a really simple control unit (in the CADR, 
practically none, since the microcode instruction set is notoriously 
simple; I don't know much about the Exploder, but I imagine it's 
similar). This is why I'm not too worried about needing humongous 
amounts of silicon. Many FPGA's have built-in fast RAM that could 
contain microcode.

Question: What is the Exploder microcode instruction set like? Is it 
*much* different, conceptually, from CADR microcode? This would 
determine the amount of FPGA area needed to implement the controller. 
If it's anything like the CADR, my hunch is: not much.
Question: What is the word length on a uExploder again? (I'm sorry, I 
can't ever keep the word lengths of all different LISP machines 
detangled in my head.) The size of the datapath part of a design should 
scale about linearly in the word length. Of course, it also depends on 
how many different operations you need to do, how many registers you 
need &c.
Question: How much microcode is there? I.e. how much microcode RAM do 
you need?

It is my impression, but then again, I am by no means well-versed in 
this stuff (yet), that "naive" Verilog coding and then letting a 
synthesis program figure out which wires go where decreases performance 
by a factor of something manageable but annoying, and that people 
prefer to tweak their code, potentially later on in the process, to get 
better cycle times. For example, the LEON-1 SPARC implementation from 
ESA (http://www.estec.esa.nl/wsmwww/leon/) is written in portable VHDL, 
independent of the flavor of silicon. It runs at 45 MHz on a biggish 
Xilinx, but only "after layout", which I *assume* means after somebody 
who knew his Xilinx stuff gave extra hints to the Xilinx software as to 
what to put where and maybe tweaked some of the code. To do that, you 
would probably need simulation tools that come with your FPGA, which 
implies buying them from Xilinx. To just get working Verilog code, you 
could probably use the free Ikaros simulator.

I'm trying to get into the whole FPGA thing because I'm supposed to 
implement a CPU in one for my summer job. There have been various 
reports from people doing interesting projects in surprisingly little 
time given the right tools; look up fpgacpu.org for some pointers and 
lots of FPGA shop talk. Especially his circuit cellar article gives a 
good idea of the practicalities involved, I think. Once again, he's 
doing RISC-like hardwired control, not microcoded control. I don't know 
if anyone has tried microcoded control yet.

	/jaap

========================================================================
Jaap Weel                   Campus address:        | dorm (626) 795-9748
Caltech, Blacker '05        Caltech MSC #874, Pasadena, CA 91126, U.S.A.
www.its.caltech.edu/~weel   Permanent address:     | home +31-46-4337033
E-mail: weel@caltech.edu    Kelderstraat 2-4, 6171 GB Stein, Netherlands
========================================================================