• R/O
  • SSH
  • HTTPS

puzzlebox: Repository summary


Recent Commits RSS

Rev. Time Author Message
r62 2009-05-05 00:06:51 ohsawa GC bugs are fixed that PuzzleBox GC module is not check c...
r61 2009-05-04 02:08:01 ohsawa All mark-and-sweep GC functions are implemented in the Pu...
r60 2009-04-23 00:40:20 ohsawa Now free pointer manager can control evaluation stack for...
r59 2009-04-19 23:57:21 ohsawa PuzzleBox Free Pointer module is modified using an alloca...
r58 2009-04-12 04:17:46 ohsawa PuzzleBox VM is updated to get input data before ISBSY be...
r57 2009-04-12 04:15:59 ohsawa PuzzleBox evaluation stack is modified to reduce area and...
r56 2009-04-11 23:10:01 ohsawa Loader supports binary transfer to external memory via se...
r55 2009-04-11 20:02:43 ohsawa Some timing bugs in RTL is fixed. PSEQ now supports binar...
r54 2009-04-11 02:14:09 ohsawa The name of loader changes to zload. Loader supports dete...
r53 2009-04-10 22:06:19 ohsawa Serial device definition is moved to the Makefile. README...

README

PuzzleBox alpha: Graph Reduction Machine for LazyK

1. Run a sample program on the PuzzleBox Virtual Machine
1.1 Install requred packages
To execute PuzzleBox Virtual machine, following packages are required.

	SystemC 2.2
	Verilator 3.700
	CMUCL 19a

1.2 Compile PuzzleBox Virtual Machine

	% cd vm
	% (edit Makefile as you like :-)
	% make

1.3 Comple a sample LazyK code to a SKI combinator file

	% ../compiler/compile.sh ../src/sample/fact.l fact.lz

1.4 Execute PuzzleBox Virtual Machine with a compiled source.

	% echo "" | ./lazy fact.lz

Finally, the number "6" will be output as the result of (fact 3).

Another example,

	% ../compiler/compile.sh ../src/sample/add7.l add7.lz
	% ./lazy add7.lz

reqires input data from 0 to 255 separated by space or newline,
and EOF (Ctrl-D) indicates the end-of-input-data.
These outputs are the list of numbers that are the result of +7.







2. Run a sample program on the PuzzleBox implemented on the FPGA
2.1 Prepareing execution environments
To execute PuzzleBox on the FPGA, following software and hardware are required.

	Linux PC with RS-232C serial port for controlling PuzzleBox
	Nios II Embedded Evaluation Kit(NEEK), Cyclone III Edition
	QuartusII 8.1 (on windows machine)

On the Linux PC, serial port /dev/ttyS? (i.e. /dev/ttyS0) must be accessable and
the port must be connected to NEEK via an RS-232C cable.


2.2 Compile PuzzleBox FPGA Design to configure FPGA
On the Windows PC,

	(Install the USB-Blaster Driver in QuartusII)
	(Connect the Windows PC to the NEEK using a USB cable for configuration)
	% cd syn\altera
	% compile.bat
	% compile.bat program

2.3 Compile Program Loader for PuzzleBox on the FPGA

	% cd loader
	% (edit SERIALPORT in Makefile)
	% make

2.4 Comple a sample LazyK code to a SKI combinator file

	% ../compiler/compile.sh ../src/sample/fact.l fact.lz

2.5 Execute PuzzleBox on the FPGA with a compiled source.

	(Connect the Linux PC to the NEEK using a RS-232C cable for execution)
	% echo "" | ./zload fact.lz

Finally, the number "6" will be output as the result of (fact 3).

Another example,

	% ../compiler/compile.sh ../src/sample/add7.l add7.lz
	% ./zload add7.lz

reqires input data from 0 to 255 separated by space or newline,
and EOF (Ctrl-D) indicates the end-of-input-data.
These outputs are the list of numbers that are the result of +7.

Show on old repository browser