QTRVSIM_CLI(1)
β¨ 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, orforward. β οΈ 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 areI(unsupported Instruction),A(Unsupported ALU operation),O(Overflow/underflow) andJ(Unaligned Jump). you can freely combine them, no cap. and just so we're clear: using this implies theexpect-failoption. β οΈ--d-cache <DCACHE>β the data cache. format ispolicy,sets,words_in_blocks,associativitywhere the policy israndom/lru/lfu. π--i-cache <ICACHE>β the instruction cache. format ispolicy,sets,words_in_blocks,associativitywhere the policy israndom/lru/lfu. π--l2-cache <L2CACHE>β the L2 cache. format ispolicy,sets,words_in_blocks,associativitywhere the policy israndom/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 isRV32IMA. π--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
- ubuntu resolute: qtrvsim 0.9.8-1build1 Β· GPL-3.0-or-later
- ubuntu stonking: qtrvsim 0.9.8-1build1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms