ABSTRACT

The state of hardware-assisted development has changed fundamentally since the first edition in 2006. This chapter describes how a typical modern system-on-chip (SoC) design and the different development engines—from virtual prototyping through register-transfer-level (RTL) simulation, acceleration and emulation, and field-programmable gate array (FPGA)-based prototyping and bring-up on-chip prototypes—are being used in concert, outlining their individual strengths and weaknesses. Hardware has to be developed using integration of intellectual property into subsystems, subsystems into SoCs, and SoCs into systems. During the aforementioned project phases, verification and software development are mainly done on four different types of core execution engines—virtual prototyping, RTL simulation, in-circuit emulation, and FPGA-based prototyping. To better extend to subsystems and the full SoC, verification acceleration uses specialized hardware attached to the simulation workstation and moves the device under test into hardware. With growing complexity of FPGAs, custom FPGA prototypes found more and more usage as internally developed platforms in the 2000s.