Described in C and can be Synthesized from HLS tool. The codes are tested on LegUp and Vivado HLS tools.
- LegUp HLS (from University of Toronto, open source)
- Vivado HLS (from Xilinx)
Run an application or set of applications on the emulator. Before that modify the config.h file on the config subdirectory to enable the profiler. Remove the comment on #define PROFILE. It is give a rough estimation of most frequently used instructions. Depending on the profile results add instructions on the 'SUBLEQ' machine.
Remove the comment from the #define PRINT from the config.h and run the simulation to check the number of instructions and the dump the content of register file.
Each 'SUBLEQ' routine can be debugged by using the built in debugger. To enable the debugger, remove the comment from the each #define DEBUG_operation. In case of correct execution debugger will not report anything. For wrong calculation, input and output values will be printed.
- libelf
- Haskell-Platform
Firstly download and extract the archive or clone the repository.
# clone the repository
$ git clone https://github.com/Hara-Laboratory/Hirundo.git
$ git submodule init
$ git submodule update
Build elf2mem
and copy it to a directory, which is exists in $PATH
.
$ cd elf2mem
$ make
$ cp elf2mem /path/to/the/dir # usualy ~/bin or /usr/local/bin
$ cd ..
Build subleq-toolchain
and install it.
$ cd subleq-toolchain
$ cabal install
$ cd ..