Skip to main content
Log in

HDTLib: an efficient implementation of SystemC data types for fast simulation at different abstraction levels

  • Published:
Design Automation for Embedded Systems Aims and scope Submit manuscript

Abstract

SystemC is the de-facto standard language for system-level modeling, architectural exploration, performance analysis, software development, and functional verification of embedded systems. Nevertheless, it has been proved that the performance of the SystemC implementation is typically less optimal than commercial VHDL/Verilog simulators when used for register transfer level (RTL) simulation. This is mainly due to the “slow” implementation of bit-accurate data types provided by the standard library. Such a problem limits the simulation performance even when SystemC designs are implemented at higher levels of abstraction (i.e., transaction-level modeling—TLM) and still make use of bit-accurate data types (e.g., for a more accurate verification, or in TLM descriptions automatically generated from RTL). This article presents HDTLib, a new bit-accurate data type library that increases the simulation speed up to 3.45× at RTL and up to 10× at TLM. In addition, when the level of abstraction rises from RTL and better simulation performance is required, accuracy of HW-dependent behaviors is no longer necessary. Thus, the article presents a type abstraction methodology to get rid of low level behaviors and how such a methodology can be combined with HDTLib for guaranteeing a sound tradeoff between accuracy and simulation speed. Finally, more recent works have proposed efficient and promising techniques to boost SystemC simulation through general purpose graphics processing unit (GP-GPU) architectures. In such parallel frameworks, the standard SystemC library for bit-accurate data types is not supported, with a consequent limitation of their application to actual designs. This article shows how HDTLib has been implemented for applying also to these today many-core architectures.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Algorithm 1
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  1. Ecker W, Esen V, Schonberg L, Steininger T, Velten M, Hull M (2007) Impact of description language, abstraction layer, and value representation on simulation performance. In: Proc of ACM/IEEE DATE, pp 1–6

    Google Scholar 

  2. Accellera Systems Initiative (2005) IEEE 1666-2005 Standard SystemC Language Reference Manual. http://www.accellera.org

  3. Ecker W (2007) Impact of SystemC data types on execution speed. http://www-ti.informatik.uni-tuebingen.de/systemc/Documents/Presentation-15-UP2_ecker.pdf

  4. Grotker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer Academic, Norwell

    Google Scholar 

  5. Cai L, Gajski D (2003) Transaction level modeling: an overview. In: ACM/IEEE CODES+ISSS, pp 19–24

    Google Scholar 

  6. TLM Transaction-Level Modeling Library (2009) OSCI TLM-2.0 Language Reference Manual. http://www.accellera.org

  7. Ghenassia F et al. (2003) Using transactional level models in a SoC design flow. Kluwer Academic, Dordrecht

    Google Scholar 

  8. Bombieri N, Fummi F, Pravadelli G (2011) Automatic abstraction of RTL IPs into equivalent TLM descriptions. IEEE Trans Comput 60(12):1730–1743

    Article  MathSciNet  Google Scholar 

  9. Carbon Design Systems (2012) Carbon design model studio. http://www.carbondesignsystems.com

  10. Nanjundappa M, Patel HD, Bijoy AJ, Shukla SK (2010) SCGPSim: a fast SystemC simulator on GPUs. In: Proc of ACM/IEEE ASP-DAC, pp 149–154

    Google Scholar 

  11. Sinha R, Prakash A, Patel HD (2011) Parallel simulation of mixed-abstraction SystemC models on GPUs and multicore CPUs. In: Proc of ACM/IEEE ASP-DAC, pp 1–6

    Google Scholar 

  12. Bombieri N, Fummi F, Guarnieri V (2012) FAST-GP: an RTL functional verification framework based on fault simulation on GP-GPUs. In: Proc of ACM/IEEE DATE, pp 1–6

    Google Scholar 

  13. NVIDIA (2012) Cuda home page. http://www.nvidia.com/object/cuda_home_new.html

  14. Tumbush G, Hupp M (2007) Dramatically increase the performance of SystemC simulations. In: Proc of DVCon conference

    Google Scholar 

  15. Takach A, Gutberlet P, Waters S (2004) Fast bit-accurate C++ datatypes for functional system verification and synthesis. In: Proc of FDL conference, pp 337–345

    Google Scholar 

  16. Herrera F (2008) Heterogeneous specification and automatic software generation from SystemC for embedded systems. Ph.D. thesis, University of Cantabria

  17. Chatterjee D, DeOrio A, Bertacco V (2009) Event-driven gate-level simulation with GP-GPUs. In: Proc of ACM/IEEE DAC, pp 557–562

    Google Scholar 

  18. Chatterjee D, DeOrio A, Bertacco V (2009) GCS: high-performance gate-level simulation with GP-GPUs. In: Proc of ACM/IEEE DATE, pp 1332–1337

    Google Scholar 

  19. Sen A, Aksanli B, Bozkurt M, Mert M (2010) Parallel cycle based logic simulation using graphics processing units. In: Proc of IEEE ISPDC, pp 71–78

    Google Scholar 

  20. Gulati K, Khatri SP (2008) Towards acceleration of fault simulation using graphics processing units. In: Proc of ACM/IEEE DAC, pp 822–827

    Google Scholar 

  21. Kochte MA, Schaal M, Wunderlich H-J, Zoellin CG (2010) Efficient fault simulation on many-core processors. In: Proc of ACM/IEEE DAC, pp 380–385

    Google Scholar 

  22. Li H, Xu D, Han Y, Cheng KT, Li X (2010) nGFSIM: a GPU-based fault simulator for 1-to-n detection and its applications. In: Proc of IEEE ITC, pp 1–10

    Google Scholar 

  23. Stoye W, Greaves D, Richards N, Green J (2003) Using RTL-to-C++ translation for large SoC concurrent engineering: a case study. IEEE/IET Electron Syst Softw 1(1):20–25

    Article  Google Scholar 

  24. Bombieri N, Fummi F, Pravadelli G (2010) Abstraction of RTL IPs into embedded software. In: Proc of ACM/IEEE DAC, pp 24–29

    Google Scholar 

  25. Aldec DVM (2012) http://www.aldec.com

  26. Snyder W, Wasson P, Galbi D (2012) Verilator—Convert Verilog code to C++/SystemC. http://www.veripool.org/wiki/verilator

  27. Bombieri N, Di Guglielmo G, Ferrari M, Fummi F, Pravadelli G, Stefanni F, Venturelli A (2010) HIFSuite: tools for HDL code conversion and manipulation. EURASIP J Embed Syst 2010:1–20

    Article  Google Scholar 

  28. EDALab s.r.l. (2012) EDALab networked embedded systems. http://www.edalab.it/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nicola Bombieri.

Additional information

This work has been partially supported by the European project FP7-ICT-2011-7-288166 (TOUCHMORE).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bombieri, N., Fummi, F., Guarnieri, V. et al. HDTLib: an efficient implementation of SystemC data types for fast simulation at different abstraction levels. Des Autom Embed Syst 16, 115–135 (2012). https://doi.org/10.1007/s10617-012-9092-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10617-012-9092-z

Keywords

Navigation