How to:
- clone this repository
- clone https://github.com/andersondomingues/hellfireos into
/software
(must be/orca-sim/software/hellfireos
) make clean && make
- run as
./bin/single-core.exe image.bin
/bin
: compiled binaries and external libraries/docs
: contains a tutorial and images used in this MD file, also serving as output folder for doxygen/logs
: output from the hardware models, as well as other implementation-specific outputs and debugging/models
: general purpose hardware models (independent modules)/platforms
: platform-specific hardware models (top-level modules)/simulator
: URSA's core/software
: software to be deployed to emulated platforms/tools
: several scripts and helpers
- We have succefully emulated a fully-functional MPSoC platform comprising of a mesh-based NoC architecture interconnecting up to 16x16 processing elements (256 cores). The platform is ORCA MPSoC (see https://github.com/andersondomingues/orca-mpsoc). URSA and ORCA started as the same project, and as the project progressed we decided to split them into two different projects, one for URSA, which is still a simulation API, and another one for ORCA, a fully-functional MPSoC platform. We are still cleaning the repository and setting things up. In meanwhile, I apologize for any "orbitating artifact".
Things we are likely to work on in the next months:
- Automatically generate and export Doxygen documentation to a github of the project, programmatically.
- A VHDL version of the platform. See (https://github.com/andersondomingues/orca-mpsoc)
- Provide an API to use for energy evaluation of applications
- Unit tests on software (mainly for HellfireOS, see (https://github.com/andersondomingues/hellfireos)
- Provide hardware models as static libraries
- Rework task mapping and wiring (code can be cumbersome when dealing with a large number of signals)
- Provide some IDE-specific projects (hopefully they won't inject any dirt in the project)
- Remote debugging using GDB
- Remove eliminate pthreads from models
- Support for C++ apps
- Stub code generator
- A website containing technical and non-technical information on the project.
- Benchmarks! Probably something based on PARSEC but for NORMA archs.
- Memory hierarchy and some memory protection
- Update HellfireOS to match a more stable and recent branch (see (https://github.com/sjohann81/hellfireos)
- Replace multitail with some visualization tools (including, NoC, Task Schedule, memory and other inspections)
- Provide a robust infrastructure so that anyone can create their own models
- Automatic model generation (based on some process algebra)
- Deal with endianess (enables heterogeneous multicore)
- DOOM (see https://github.com/lcq2/risc-666)
- Decent tutorials
- Make sure you have installed
doxygen
andrviz
to your system. - In the root directory, type
make documentation
. Documentation will be deployed todocs/doxygen
folder. - You can access docs by opening
docs/doxygen/html/index.html
in any web browser (e.g.,firefox
). - LaTeX documentation can be generate by typeing
make -C docs/doxygen/latex/
. The output filedocs/doxygen/latex/refman.pdf
contains the generated documentation.
-
HF-RISCV. The hf-riscv core is maintained by Sergio Johann (sjohann81). More information on his work can be found at his repository. Also, our model of hf-riscv core is very based on the one provided by him.
-
HEMPS (and HERMES). The GAPH group maintains the HEMPS project. More information on their work can be found at their website. Provided network-on-chip router model is based on the RTL models available at their repository.
-
HELLFIREOS. We use sjohann81's HellfireOS operating system within the processing tiles of the ORCA platform.
See LICENSE.MD
for details.
Feel free to contact me (andersondomingues), the maintainer of this project: mailto:[email protected].