i think some logic design courses are like this. you're given a fpga dev board (that has a bunch of peripherals and ports on it) and you code up a cpu and a few memory/io controllers and then in order to do something you have to assemble some machine code and run it.
my understanding is that it is a substantial undertaking, especially if you're interfacing with hardware peripherals.
alternatively you could write a mips (subset) emulator and assembler in python and probably get the same understanding in a fraction of the time.
my understanding is that it is a substantial undertaking, especially if you're interfacing with hardware peripherals.
alternatively you could write a mips (subset) emulator and assembler in python and probably get the same understanding in a fraction of the time.