Skip to content

A complete virtual machine simulator based around the microprocessor.

License

Notifications You must be signed in to change notification settings

virtualsquare/uriscv

Repository files navigation

Progetto Sistemi Virtuali 2022/2023

RISCV

Compilare l'emulatore

mkdir -p build && cd build && cmake .. && make && sudo make install 

Eseguire l'emulatore

uriscv-cli

Setup Clang LSP

mkdir -p build && cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
mv compile_commands.json ..

Per toolchain

git clone https://github.com/riscv/riscv-gnu-toolchain
./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32d
sudo make

Note per tesi

  • fare benchmark tra utilizzo del file binario e file elf durante esecuzione dell'emulatore

RISC-V: An Overview of the Instruction Set Architecture

Exceptions Syscalls

Conversione asm MIPS -> RISCV Berkley RISCV Latest RISCV

  • i $ non si ci sono
  • s0-s7 --> s2-s11
  • rfe --> mret
  • k0-k1 --> mscratch,dscratch (using t5,t6)
  • jeq --> beq
  • mult --> da fare
  • mfc0,mfl0 --> non abilitato
  • v0 -> a0

Prerequisiti

  • boost
  • libsigc++

Accorgimenti per libsigc++ su arch

  • se scaricato tramite aur la path usata e' /usr/include/sigc++-2.0, che rompe chiaramente tutto va quindi fatto un symlink a quella cartella in modo che risulti /usr/include/sigc++
  • sigc++config.h ha lo stesso problema, al posto di trovarsi in /usr/include si trova in /usr/lib/sigc++-2.0/include