QTRVSIM_CLI(1)

πŸ“¦
version 0.9.8 Β· 2 versions
, in ubuntu resolute, ubuntu stonking

✨ QTRVSIM_CLI ✨

okay so bestie, gather round, because we're talking about qtrvsim_cli from the QTRVSIM_CLI(1) manual β€” a RISC-V CPU simulator for education and honestly? she's iconic. πŸ’…


🌸 SYNOPSIS 🌸

qtrvsim_cli [options] FILE

πŸ’– DESCRIPTION πŸ’–

QtRvSim CLI machine simulator. that's it, that's the whole vibe β€” a whole CPU simulator you drive from the terminal like the main character you are. πŸ‘‘


✨ OPTIONS ✨

  • -h, --help β€” shows you the help for the commandline options. your little cheat sheet, bestie 🫢
  • --help-all β€” same energy but it also shows the Qt-specific options. more lore. 🌈
  • -v, --version β€” tells you the version info. which one are we on? we'll get to that at the end πŸ‘€
  • --asm β€” treats the file argument you gave as assembler source. πŸ“
  • --pipelined β€” sets the CPU up to use the five stage pipeline. pipeline girlies rise πŸ”₯
  • --no-delay-slot β€” disables the jump delay slot. sorry to the delay slot, she's out βœ‹
  • --hazard-unit <HUKIND> β€” picks which hazard unit implementation you want: none, stall, or forward. ⚠️ choose wisely
  • --trace-fetch, --tr-fetch β€” traces the fetched instruction (works for both the pipelined core and the not-pipelined one). πŸ”
  • --trace-decode, --tr-decode β€” traces the instruction in the decode stage. (only for the pipelined core, just so you know)
  • --trace-execute, --tr-execute β€” traces the instruction in the execute stage. (only for the pipelined core)
  • --trace-memory, --tr-memory β€” traces the instruction in the memory stage. (only for the pipelined core)
  • --trace-writeback, --tr-writeback β€” traces the instruction in the write back stage. (only for the pipelined core)
  • --trace-pc, --tr-pc β€” prints the program counter register changes. she's moving, she's moving πŸ“
  • --trace-wrmem, --tr-wr β€” traces the writes going into memory. ✍️
  • --trace-rdmem, --tr-rd β€” traces the reads coming from memory. πŸ“–
  • --trace-gp, --tr-gp <REG> β€” prints the general purpose register changes. and here's the slay: you can use * to get all the registers. 🌟
  • --dump-to-json <FNAME> β€” sets up the reporter to dump to a json file. πŸ’Ύ
  • --dump-registers, --d-regs β€” dumps the register state when the program exits. bye, here's my whole vibe, in registers πŸ’€
  • --dump-cache-stats β€” dumps the cache statistics when the program exits. πŸ“Š
  • --dump-cycles β€” dumps how many CPU cycles it took until the program ended. ⏱️
  • --dump-range <START,LENGTH,FNAME> β€” dumps a memory range. 🧠
  • --load-range <START,FNAME> β€” loads a memory range. πŸ“₯
  • --expect-fail β€” expects the program to cause a CPU trap, and if it doesn't, that's a fail. expectation management, but make it hardware 🫠
  • --fail-match <TRAP> β€” the program should exit with exactly this CPU TRAP. possible values are I (unsupported Instruction), A (Unsupported ALU operation), O (Overflow/underflow) and J (Unaligned Jump). you can freely combine them, no cap. and just so we're clear: using this implies the expect-fail option. ⚠️
  • --d-cache <DCACHE> β€” the data cache. format is policy,sets,words_in_blocks,associativity where the policy is random/lru/lfu. πŸ“
  • --i-cache <ICACHE> β€” the instruction cache. format is policy,sets,words_in_blocks,associativity where the policy is random/lru/lfu. πŸŽ€
  • --l2-cache <L2CACHE> β€” the L2 cache. format is policy,sets,words_in_blocks,associativity where the policy is random/lru/lfu. 🧚
  • --read-time <RTIME> β€” memory read access time, in cycles. ⏳
  • --write-time <WTIME> β€” memory read access time, in cycles. (yes bestie it literally says read, we're keeping it exactly as written πŸ™ˆ)
  • --burst-time <BTIME> β€” memory read access time, in cycles. (same situation, word for word, we don't edit the ancestors πŸ’œ)
  • --serial-in, --serin <FNAME> β€” the file connected to the serial port input. πŸ”Œ
  • --serial-out, --serout <FNAME> β€” the file connected to the serial port output. πŸ”Œ
  • --os-emulation, --osemu β€” operating system emulation. we're running a whole OS in here, lowkey πŸ’»
  • --std-out, --stdout <FNAME> β€” the file connected to the syscall standard output. πŸ“€
  • --os-fs-root, --osfsroot <DIR> β€” the emulated system root/prefix for opened files. πŸ—‚οΈ
  • --isa-variant, --isavariant <STR> β€” which instruction set to emulate. default is RV32IMA. 🌟
  • --cycle-limit <NUMBER> β€” limits the execution to the specified maximum clock cycles. put a cap on it 🧒

πŸ¦‹ Arguments πŸ¦‹

  • FILE β€” the input ELF executable file or assembler source. this is your moment, feed her the file πŸ“

πŸ”₯ SEE ALSO πŸ”₯

the full documentation for qtrvsim_cli is maintained as a Texinfo manual. if the info and qtrvsim_cli programs are properly installed at your site, then this command:

info qtrvsim_cli

should give you access to the complete manual. go read her, she ate πŸ’…


and that's a wrap, bestie!! πŸŽ€ this whole thing is qtrvsim_cli 0.9.8, and the manual page is from January 2026. slay, stan, simulate β­πŸ¦‹πŸ’–

πŸ“¦ where this page comes from