SystemC/TLM2.0 productivity library wrapping the Extendable Instruction Set Simulator ETISS as a tlm cpu core.
Requires the following dependencies
- ETISS - tested with 0e9a9c8738bada27b840795b7cfdaa6c7e4e1a44
the following infrastructure
- gcc - tested with v9.3.0
- cmake (>= 3.15)
After cloning the repo and entering into it:
cmake -S . -B build -DETISS_PREFIX=<path/to/etiss/install> -DSystemCLanguage_DIR=/path/to/systemc/lib/cmake/SystemCLanguage [-DCMAKE_BUILD_TYPE={...}]
cmake --build build [--parallel $(nproc)]
In the VP's CMakeLists.txt add etissvp submodule after the scc submodule.
...
add_subdirectory(<path/to/scc>)
add_subdirectory(<path/to/etissvp>)
...
- Minimal Target Software
export RISCV=<path/to/riscv/gnu/toolchain>
$RISCV/bin/riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 -T examples/barebone_vp/target_software/link.ld -nostartfiles examples/barebone_vp/target_software/crt0.s examples/barebone_vp/target_software/helloworld.c examples/barebone_vp/target_software/syscall.c -DETISSVP_LOGGER=0xf0000000 -o target_software.elf
- Execute Target Software
build/examples/barebone_vp/barebone_vp --etiss examples/barebone_vp/ini/etiss.ini --elfs target_software.elf