Sharc: Simulator for Hardware Architecture and Real-time Control