This paper presents a fast cycle-accurate instruction set simulator (CA-ISS) based on QEMU and SystemC. The CA-ISS can be used for design space exploration and as the processor core for virtual platform construction at the cycle-accurate level. Even though most state-of-the-art commercial tools try to provide all the levels of details to satisfy the different requirements of the software designer, the hardware designer, or even the system architect, the hardware/software co-simulation speed is dramatically slow when co-simulating the hardware models at the register-transfer level with a full-fledged operating system. In this paper, we show that the combination of QEMU and SystemC can make the co-simulation at the cycle-accurate level extremely fast, even with a full-fledged operating system up and running. Our experimental results indicate that with every instruction executed and every memory accessed since power-on traced at the cycle-accurate level, it takes less than 17 minutes on average to boot up a full-fledged Linux kernel, even on a laptop.
[1]
Fabrice Bellard,et al.
QEMU, a Fast and Portable Dynamic Translator
,
2005,
USENIX ATC, FREENIX Track.
[2]
Guy Bois,et al.
SPACE: A Hardware/Software SystemC Modeling Platform Including an RTOS
,
2003,
FDL.
[3]
Jayaram Bhasker.
A SystemC Primer
,
2002
.
[4]
Luca Benini,et al.
MPARM: Exploring the Multi-Processor SoC Design Space with SystemC
,
2005,
J. VLSI Signal Process..
[5]
Rolf Drechsler,et al.
ESL Design and Verification
,
2010
.
[6]
Frank Vahid,et al.
Platune: a tuning framework for system-on-a-chip platforms
,
2002,
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..
[7]
Jordi Carrabina,et al.
Mixed SW/SystemC SoC Emulation Framework
,
2007,
2007 IEEE International Symposium on Industrial Electronics.