Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Lisp > Lisp on an FPGA
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 27 Topic 12465 of 13148
Post > Topic >>

Lisp on an FPGA

by =?ISO-8859-1?Q?J=FCrgen_B=F6hm?= <jboehm@[EMAIL PROTECTED] > May 11, 2008 at 11:36 PM

Under the working title "LispmFPGA" I recently completed a first
milestone on the way to an autonomous, "bare metal" Lisp on a CPU
specifically designed to execute compiled Lisp code.

The system on a chip (SoC) comprises

- a Lisp adapted, stack oriented, microprogrammed 32 bit-CPU
(given the preliminary name of E01)
- a character oriented VGA controller
- an SRAM controller
- PS/2 keyboard controller
- serial input/output controller
- some bus logic

All this is implemented with Verilog HDL on a Xilinx Spartan 3 FPGA. The
FPGA board as used now provides in addition to the above features
1MB=256Kx32bit SRAM.

On the software side, there exists

- a compiler, written in Common Lisp, which translates a subset of
Common Lisp into the machine code of the E01-processor. This subset
shall be called Lisp-E01. The compiler-code itself uses mostly only
constructs from Lisp-E01.

- an instruction level emulator of the E01-processor written in Common
Lisp.

- a simulator of the full FPGA SoC including interrupts produced by key
presses and correct reaction to writes into the VGA-memory. This is
written in C++/Qt

- a VPI driven interface providing VGA output and key-input to a Verilog
testbed model of the SoC

- a system kernel written purely in Lisp-E01 providing

   - the data types

    cons, string,
		array (1-dim),
		symbol,
		32bit-fixnum,
		template, closure

    and a basic set of manipulation functions
		
   - a stop and copy garbage collector
	
   - functions for keyboard input and elementary output
	
- building on the kernel: A simple text-editor application written in
Lisp-E01
	

Additional information (and some pictures) can be found at

www.aviduratas.de/lisp/lispmfpga/

  Currently there is nearly no do***entation, but if, as a result of
this announcement, someone is becoming interested in this project, maybe
wi****ng to take part in the development, I will write up the necessary
do***entation.

  Actually it would be very welcome if someone could take part in the
project, as in a few weeks I will have next to nil time anymore to drive
the project further.

If you ask for possible uses of such a project, the primary answer is
probably:

- educational purposes

including educating oneself (as I did) about Lisp, compiler and
interpreter construction, FPGAs, Verilog, computer architecture,
microprocessor design,

as well as maybe sometime writing an introductory text which provides
introduction to the above topics following the course of the LispmFPGA
project.

- a lisp programming toy

Additionally, as a system like the above (even with more RAM) can be
realized for about 100$, it might become a toy for Lisp enthusiasts and
a learning tool for young people who want to own and program a computer
they can understand and control completely, as was the PET 2001 or C64
in former times.

- a microcontroller programmable in Lisp(????)

This would make a complete overhaul of the CPU necessary, to get a more
compact opcode structure. Also the compiler had to be improved in terms
of time and space efficiency of the generated code. Currently

size(obj.code) ~ 1.8 size(source code)

holds, which is probably to large for embedded applications.


Anyone who is interested in the project is invited to mail me!

Greetings

Jürgen Böhm

-- 
Jürgen Böhm                                            www.aviduratas.de
"At a time when so many scholars in the world are calculating, is it not
desirable that some, who can, dream ?"  R. Thom
 




 27 Posts in Topic:
Lisp on an FPGA
=?ISO-8859-1?Q?J=FCrgen_B  2008-05-11 23:36:13 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-11 19:43:34 
Re: Lisp on an FPGA
rpw3@[EMAIL PROTECTED] (  2008-05-11 22:33:41 
Re: Lisp on an FPGA
rpw3@[EMAIL PROTECTED] (  2008-05-11 22:27:27 
Re: Lisp on an FPGA
=?ISO-8859-1?Q?J=FCrgen_B  2008-05-12 19:45:56 
Re: Lisp on an FPGA
Frank Buss <fb@[EMAIL   2008-05-12 22:51:54 
Re: Lisp on an FPGA
Frank Buss <fb@[EMAIL   2008-05-12 22:37:36 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-12 18:04:05 
Re: Lisp on an FPGA
Frank Buss <fb@[EMAIL   2008-05-13 00:55:50 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-12 22:34:13 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-12 22:56:41 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-12 23:02:29 
Re: Lisp on an FPGA
Pascal Costanza <pc@[E  2008-05-13 10:14:32 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-13 10:39:13 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-13 11:57:42 
Re: Lisp on an FPGA
Pascal Costanza <pc@[E  2008-05-13 20:54:53 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-14 15:42:25 
Re: Lisp on an FPGA
Pascal Costanza <pc@[E  2008-05-15 11:04:03 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-15 06:36:24 
Re: Lisp on an FPGA
Pascal Costanza <pc@[E  2008-05-15 12:49:35 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-15 11:20:25 
Re: Lisp on an FPGA
Frank Buss <fb@[EMAIL   2008-05-13 19:40:51 
Re: Lisp on an FPGA
Pascal Costanza <pc@[E  2008-05-13 20:55:43 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-13 00:21:32 
Re: Lisp on an FPGA
=?ISO-8859-1?Q?Pertti_Kel  2008-05-13 10:20:53 
Re: Lisp on an FPGA
Ken Tilton <kennytilto  2008-05-13 11:26:05 
Re: Lisp on an FPGA
Petter Gustad <newsmai  2008-05-15 08:25:05 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 18:02:10 CDT 2008.