FleetCode

The FleetCode is a Java library used to create Fleet software. It presents a single interface to multiple execution platforms, of which there are currently three:

  1. A software interpreter.

  2. A capacity-accurate FPGA simulator.

  3. A custom-silicon (TSMC 90nm) implementation being developed at Sun Labs.

The FleetCode consists of implementations of the first two execution platforms, plus Java code for three APIs:

  • An API for describing Fleets, Ships, Docks, and the ability to introspect upon them.

  • An API for representing Fleet Instructions, and reading/writing them from/to binary format.

  • An API for instantiating and controlling a “slave” execution platform, including the ability to invoke instructions on demand and read back output as it is produced.

The FleetCode includes implementations of all of these APIs for the software interpreter and FPGA simulator, plus an implementation of the first two APIs for the custom silicon. An implementation of the third API for the custom silicon chip via JTAG is planned.

Getting the FleetCode

You can download a snapshot here or you can use git to get the very latest:

git clone http://fleet.cs.berkeley.edu/repos/fleet.git/

There is a “gitweb” interface hosted here.

Using the FleetCode

Before proceeding, you should read the Fleet architecture specification first; it can be found  here.

When you're ready to write code, the javadoc can be found here. There is also a tutorial.

All public classes and methods in edu.berkeley.fleet.api should be considered stable and finalized; they will be changed only if the physical hardware changes, and backwards compatibility will be maintained if possible. All other APIs are likely to change substantially.