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.
Similar content being viewed by others
References
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
Accellera Systems Initiative (2005) IEEE 1666-2005 Standard SystemC Language Reference Manual. http://www.accellera.org
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
Grotker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer Academic, Norwell
Cai L, Gajski D (2003) Transaction level modeling: an overview. In: ACM/IEEE CODES+ISSS, pp 19–24
TLM Transaction-Level Modeling Library (2009) OSCI TLM-2.0 Language Reference Manual. http://www.accellera.org
Ghenassia F et al. (2003) Using transactional level models in a SoC design flow. Kluwer Academic, Dordrecht
Bombieri N, Fummi F, Pravadelli G (2011) Automatic abstraction of RTL IPs into equivalent TLM descriptions. IEEE Trans Comput 60(12):1730–1743
Carbon Design Systems (2012) Carbon design model studio. http://www.carbondesignsystems.com
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
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
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
NVIDIA (2012) Cuda home page. http://www.nvidia.com/object/cuda_home_new.html
Tumbush G, Hupp M (2007) Dramatically increase the performance of SystemC simulations. In: Proc of DVCon conference
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
Herrera F (2008) Heterogeneous specification and automatic software generation from SystemC for embedded systems. Ph.D. thesis, University of Cantabria
Chatterjee D, DeOrio A, Bertacco V (2009) Event-driven gate-level simulation with GP-GPUs. In: Proc of ACM/IEEE DAC, pp 557–562
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
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
Gulati K, Khatri SP (2008) Towards acceleration of fault simulation using graphics processing units. In: Proc of ACM/IEEE DAC, pp 822–827
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
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
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
Bombieri N, Fummi F, Pravadelli G (2010) Abstraction of RTL IPs into embedded software. In: Proc of ACM/IEEE DAC, pp 24–29
Aldec DVM (2012) http://www.aldec.com
Snyder W, Wasson P, Galbi D (2012) Verilator—Convert Verilog code to C++/SystemC. http://www.veripool.org/wiki/verilator
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
EDALab s.r.l. (2012) EDALab networked embedded systems. http://www.edalab.it/
Author information
Authors and Affiliations
Corresponding author
Additional information
This work has been partially supported by the European project FP7-ICT-2011-7-288166 (TOUCHMORE).
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-012-9092-z