CPUlator Computer System Simulator(cpulator.01xz.net)
cpulator.01xz.net
CPUlator Computer System Simulator
https://cpulator.01xz.net/
6 comments
I wonder if MAME would work as an open-source alternative for these simulations. The built-in debugger and memory views cover most of that, and it doesn't take much to write a minimal driver that messes with some input file [1].
But if you do want some visual feedback like LEDs and such, you would have to write a layout and input logic for that (AFAIK has been done for MIDI synths).
It would also be more appropriate for shellcode / nostdlib experiments, although it's not clear how well CPUlator handles dynamic linking / relocations in their ELF executable support (seems like they build on their server [2], but run in a custom interpreter?)
[1]: https://qufb.gitlab.io/writeups/2023/02/26/Put-A-Sonic-On-It... [2]: https://cpulator.01xz.net/doc/#compiling
But if you do want some visual feedback like LEDs and such, you would have to write a layout and input logic for that (AFAIK has been done for MIDI synths).
It would also be more appropriate for shellcode / nostdlib experiments, although it's not clear how well CPUlator handles dynamic linking / relocations in their ELF executable support (seems like they build on their server [2], but run in a custom interpreter?)
[1]: https://qufb.gitlab.io/writeups/2023/02/26/Put-A-Sonic-On-It... [2]: https://cpulator.01xz.net/doc/#compiling
Oh wow, it supports the NIOS2. I remember my first real "engineering" internship basically involved bringing up a pseudo-OS for this thing, it was super new at the time, and the software - at least with whatever license my employer had at the time - was extremely limited. Essentially no OS, no memory protection, no threading (mostly needed for event dispatch on the platform I was working on) - I think other "softcore" CPUs existed at the time that had linux options but presumably I was being given fairly "they're an intern" tasks so I'm not sure how much they really care. Certainly the bulk of their interns were EE and I was the only one who could actually write software at the time, but on the other hand that meant I didn't know EE :D
[deleted]
The possibility to show real-time visual feedback and debugging capabilities provides an excellent avenue for people to understand the nuances of computer architecture. Through CPUlator, I have been able to guide learners through the use of ARMv7 assembly instructions and their usage who might not have access to ARM hardware themselves. I can't recommend this tool enough.