It should also be noted that there is another method which was not done in this project but can be used to understand the different datapath requirements. This method requires the designer to implement a software emulator of the hardware. The natural process of writing a C emulator can bring out the how the different registers in the datapath and memory must interact. However since in this project there were so many software emulators already written, it was not that beneficial to write yet another one.