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

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.

[1]  Laurent Maillet-Contoz,et al.  Using transactional level models in a SoC design flow , 2003 .

[2]  Sunil P. Khatri,et al.  Towards acceleration of fault simulation using Graphics Processing Units , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[3]  Franco Fummi,et al.  HIFSuite: Tools for HDL Code Conversion and Manipulation , 2010, 2010 IEEE International High Level Design Validation and Test Workshop (HLDVT).

[4]  Huawei Li,et al.  nGFSIM : A GPU-based fault simulator for 1-to-n detection and its applications , 2010, 2010 IEEE International Test Conference.

[5]  Hiren D. Patel,et al.  Parallel simulation of mixed-abstraction SystemC models on GPUs and multicore CPUs , 2012, 17th Asia and South Pacific Design Automation Conference.

[6]  David J. Greaves,et al.  Using RTL-to-C++ translation for large soc concurrent engineering: a case study , 2003 .

[7]  Franco Fummi,et al.  FAST-GP: An RTL functional verification framework based on fault simulation on GP-GPUs , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[8]  Wolfgang Ecker,et al.  Impact of Description Language, Abstraction Layer, and Value Representation on Simulation Performance , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[9]  Franco Fummi,et al.  Abstraction of RTL IPs into embedded software , 2010, Design Automation Conference.

[10]  Valeria Bertacco,et al.  GCS: High-performance gate-level simulation with GPGPUs , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[11]  Alper Sen,et al.  Parallel Cycle Based Logic Simulation Using Graphics Processing Units , 2010, 2010 Ninth International Symposium on Parallel and Distributed Computing.

[12]  Franco Fummi,et al.  Automatic Abstraction of RTL IPs into Equivalent TLM Descriptions , 2011, IEEE Transactions on Computers.

[13]  Andrés Takach,et al.  Fast Bit-Accurate C++ Datatypes For Functional System Verification and Synthesis , 2004, FDL.

[14]  Hans-Joachim Wunderlich,et al.  Efficient fault simulation on many-core processors , 2010, Design Automation Conference.

[15]  Daniel Gajski,et al.  Transaction level modeling: an overview , 2003, First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721).

[16]  Valeria Bertacco,et al.  Event-driven gate-level simulation with GP-GPUs , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[17]  Sandeep K. Shukla,et al.  SCGPSim: A fast SystemC simulator on GPUs , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[18]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .