SystemC/TLM2.0 productivity library wrapping the Extendable Instruction Set Simulator ETISS as a tlm cpu core.
Requires the following dependencies
- ETISS - tested with 36902d32ae760aa3c413ca06189e6515bc28d79c
the following infrastructure
- gcc - tested with v9.3.0
- cmake (>= 3.15)
- [conan - tested with v1.40.3]
After cloning the repo and entering into it:
cmake -S . -B build -DETISS_PREFIX=<path/to/etiss/install> [-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