OpenHardSim: An open source hardware based simulator for learning microprocessors | IEEE Conference Publication | IEEE Xplore