What's the main difference between the two?
What's the main difference between the two?
Our final project in the first class was to develop a software simulator in Unix for a MIPS processor and get it to run software that was created by the assembler we had to write in our system tools class.
Our final project in the last class was to develop a synthesizable Verilog implementation of a basic MIPS processor (with bonus credit for making it superscalar). It was really cool to see a computer system created by me from the ground up including an assembler, loader, and linker and using the simulator we wrote previously to check the Verilog implementation against.
Fantastic material, was a good read, and I still have my copies of both books 20 years after starting my undergrad.
Now I kind of want to implement a MIPS processor in software, write a machine monitor, assembler, loader, and linker for it and see if I can get that working on an FPGA....