Most electronic Systems and Systems on Chips are heterogeneous.
They may have the same processors and different software or they may have collections of different processors.
Either way they are very difficult to program.
Traditionally hardware is used to develop the software on but due to more and more issues with controllability and visibility into
running software on these multicore platforms different approaches are needed.
In this paper we discuss how software simulation or virtual platforms are used as the
vehicle to develop software on and how this approach provides a better approach with many benefits.
Case studies are presented of developing interprocessor communications with Freescale Vybrid-Kinetis platforms and also
OS porting, bring up and verification on an Altera Cyclone V SoC FPGA.