3 ms·
Yeah, there's probably a good article or two in that. Cliff notes: It's basically an extension of the Dual CPU setup mentioned in http://www.gtoal.com/sbt/ ht
by loadzero 7y ago
Yeah, there's probably a good article or two in that.
Cliff notes:
It's basically an extension of the Dual CPU setup mentioned in http://www.gtoal.com/sbt/ http://www.gtoal.com/sbt/
In that article, Graham Toal discusses a hack where you can bootstrap a new emulator core from an existing one by making a custom emulator that drives both cores at the same time.
After each clock tick, you check the states of both processors for divergence and halt with the diff if there is one.
- zentiggr 7y agoFirst I've heard of the technique, that is amazing. Makes me consider getting back to lower level coding again, even just test code, just to see it in action.
- loadzero 7y agoIt's a great technique. Using it, and a suitable test program, you can bootstrap an emulator core for something simple like a mips, z80 or 6502 in a day or two. I highly recommend it as a low-level itch scratching programming exercise.
- FullyFunctional 7y agoCo-simulation is widely used for verifying RTL implementations, see fx. dromajo.org but it's a general useful thing and I've used in many contexts, even for verifying a compiler against an interpreter.
- exlurker 7y agoThank you for this, amazing labour of love! And this article really gets my mind churning ... :)