Abstract
SystemC is becoming the reference language for hardware description in EDA community. It is suitable for describing hardware at several abstraction levels, and it can be used to develop devices for programmable, CPU-based, systems. In such a context, there are several requirements to meet. The hardware under development can be an extension module for an existing system, possibly with no knowledge on the actual system implementation. At the same time, the module to develop can be minded as a CPU-independent device that should be evaluated against different processors. Hence, the developer should leverage different techniques, depending on the development environment involved.
We present a framework that allows to co-simulate the hardware under development and the software, in a system extending context as well as in a CPU-centered design. Such a framework can use different abstraction levels for the hardware, thus allowing to meet the best accuracy/performance tradeoffs. Moreover, when required, the CPU can be replaced on the fly, keeping the software portion just marginally changed (or not modified at all), then realizing the required modularity of the design.
Similar content being viewed by others
References
Buck JT, Ha S, Lee EA, Messerschmitt DG (1994) Ptolemy: a framework for simulating and prototyping heterogeneous systems. Int J Comput Simul 4(2):155–182
Balarin F, Chiodo M, Giusto P et al. (1997) Hardware–software co-design of embedded systems: the Polis approach. Kluwer Academic, Dordrecht
Liem C, Nacabal F, Valderrama C, Paulin P, Jerraya AA (1997) System-on-chip co-simulation and compilation. IEEE Des Test Comput 14(2):16–25
Valderrama C, Nacabal F, Paulin P, Jerraya A (1998) Automatic VHDL-C interface generation for distributed co-simulation: application to large design examples. Des Autom Embed Syst 3(2/3):199–217
Coste P, Hessel F, Le Marrec P et al (1999) Multilanguage design of heterogeneous systems. In: International workshop on hardware–software codesign, pp 54–58, May 1999
Mentor Graphics Inc, Seamless CVE, http://www.mentor.com/seamless
Liu J, Lajolo M, Sangiovanni-Vincentelli A (1998) Software timing analysis using HW/SW co-simulation and instruction set simulator. In: Proceedings of IEEE international workshop on hardware/software co-design, pp 65–69
Semeria L, Ghosh A (2000) Methodology for hardware/software co-verification in C/C++. In: Proceedings of IEEE Asian and South Pacific design automation conference (ASP–DAC), pp 405–408
Lahiri K, Raghunathan A, Lakshminarayana G, Dey S (2000) Communication architecture tuners: a methodology for the design of high-performance communication architectures for system-on-chips. In: Proceedings of ACM/IEEE design automation conference (DAC), pp 513–518
Fummi F, Martini S, Perbellini G, Poncino M (2004) Native ISS-SystemC integration for the co-simulation of multi-processors SoC. In: Proceedings of IEEE design automation and test in Europe, pp 564–569
Moussa I, Grellier T, Nguyen G (2003) Exploring SW performance using SoC transaction-level modelling. In: Proceedings of IEEE design automation and test in Europe, pp 120–125
Benini L, Bertozzi D, Bruni D et al. (2003) SystemC co-simulation and emulation of multi-processor SoC designs. IEEE Comput 36(4):53–59
Yoo S, Bacivarov I, Bouchhima A et al (2003) Building fast and accurate SW simulation models based on hardware abstraction layer and simulation environment. In: Abstraction layer. Proceedings of IEEE design automation and test in Europe, pp 550–555
Bacivarov I, Yoo S, Jerraya AA (2002) Timed HW-SW co-simulation using native execution of OS and application SW. In: Proceedings of IEEE international high level design validation and test workshop, pp 51–56
Formaggio L, Fummi F, Pravadelli G (2004) A timing-accurate HW/SW co-simulation of an ISS with SystemC. In: Proceedings of IEEE international conference on hardware/software codesign and system synthesis, pp 152–157
Bouchima A, Yoo S, Jerraya AA (2004) Fast and accurate timed execution of high-level embedded software using HW/SW interface simulation model. In: ASPDAC’04: Asia South Pacific design automation conference, January 2004, pp 469–474
Ultimodule Inc, http://www.ultimodule.com
RedHat eCos, http://sources.redhat.com/eCos
CoWare—the ESL design leader, http://www.coware.com/
GNU project Web server, http://www.gnu.org/software/
De Man H, Verkest D, Desmet D (2000) Operating system based software generation for systems-on-chip. In: DAC-37: 37th design automation conference, June 2000, pp 396-401
CarbonKernel project home page, http://savannah.nongnu.org/projects/carbonkernel
Xenomai project home page, http://www.xenomai.org
ICS Triplex ISaGRAF, www.altersys.com
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Fummi, F., Loghi, M., Perbellini, G. et al. SystemC co-simulation for core-based embedded systems. Des Autom Embed Syst 11, 141–166 (2007). https://doi.org/10.1007/s10617-007-9006-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-007-9006-7