170 likes | 420 Views
Spec-C, Handel-C, SystemC : A Comparative Study. By: Nikola Rank 13 March 2006. What is a Hardware Description Language(HDL)?. A textual approach to describing electrical circuits. Not limited to circuit structure, can describe temporal/operational behavior. Popular examples: VHDL, Verilog
E N D
Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006
What is a Hardware Description Language(HDL)? • A textual approach to describing electrical circuits. • Not limited to circuit structure, can describe temporal/operational behavior. • Popular examples: VHDL, Verilog • Handel C, SystemC, SpecC are not true HDLs!
Motivation for Higher Level • These System-level description languages are crucial for SOC design and testing. • Work at varying levels of abstraction from the underlying hardware. • Simplify hardware/software partitioning by describing both with a single, C-based language. • Enhanced simulation and debugging performance.
Handel C • Developed by Oxford Hardware Compilation Group • Based on the language Occam • Goal: Enable someone not familiar with H/W to do H/W design • Currently, Celoxica provides a development suite called DK4 that uses Handel C.
What does Handel add to ANSI-C? • Parallelism • Timing • Interfaces • Clocks • RAM/ROM • Shared expression • Communications • Handel-C libraries • Floating Point component library • Bit manipulation • Macro functions for hardware block reuse
What doesn’t Handel C support • Recursion • Side effects • Standard libraries • Malloc() • Standard floating point • Pointers • Aside from these, everything else in C is supported by Handel C
Handel C design flow • Sample Handel C design flow (Based on Celoxica toolset) • Goal is implementation of JPEG 2000 algorithm Image source: Celoxica Presentation[1]
System C • Offered by the Open SystemC Initiative (OSCI) • Implemented via C++ library, runs on any C++ compiler. • Includes constructs for testing/simulation as well as synthesis.
System C model Image source: Synthesizable SystemC [2]
Synthesizable Subset • Only a subset of the SystemC library is suitable for synthesis of a circuit. • This subset closely matches VHDL or another underlying HDL. • In reality, most tools actually convert the SystemC to HDL for synthesis.
System C design flow Image source: Synthesizable SystemC [2]
System C from UML? • The next level of abstraction above C++ is UML. • It may be possible to generate synthesizable SystemC code from a UML model. • Leads to even shorter design times. Image source: Synthesizable SystemC Code from UML Models[3]
Spec C • First developed in 1997 at University of California • Uses its own special compiler, a reference compiler is freely available. • Designed to be true superset of ANSI-C • Allows timing specification.
Spec C model • Parallelism • State Transition • Structural Hierarchy • Exception Handling • Timing Constraints • Synchronization • Communication • Data Path
Spec-C design flow Image source: The SpecC Methodology[4]
Conclusions • There is no doubt a push in the direction of higher level languages for hardware design. • Many more alternatives offered, SystemC, Spec C, Handel C, Impulse C, etc… • None are perfect, none are the industry standard (Some more prominent than others). • Future will hold even higher levels of abstraction.
References [1]Software-Compiled System Design:A Methodology for Field ProgrammableSystem-on-Chip Design. EDP paper presentation. Jeff Jussel. April 15, 2003 (Celoxica) [2] Synthesizable SystemC. Federico Angiolini. 2005-2006 DEIS – University of Bologna. [3] Synthesizable SystemC Code from UML Models. W.H. Tan, P.S. Thiagarajan,W.F. Wong, Y. Zhu. School of Computing:National University of Singapore. S.K. Pilakkat. Institute for Infocomm ResearchSingapore http://www.comp.nus.edu.sg/~ctp/publications/UML_SoC.pdf [4] The SpecC Methodology. Andreas Gerstlauer. Center for Embedded Computer Systems: University of California, Irvine. 2001. http://www.cecs.uci.edu/~SpecC/ [5] Handel-C Language Reference Manual. Embedded Solutions Limited: Version 2.1 [6] SpecC Language Reference Manual. SpecC Technology Open Consortium: Version 2.0.December 12, 2002 [7] SystemC 2.0.1 Language Reference Manual. Open SystemC Initiative : San Jose, California. 2003 [8] Presentation by SpecC Technology Open Consortium: http://www.specc.gr.jp/tech/stoc_dac00_presen.pdf [9]A Survey on the Handel-C Language. Altaf Abdul Gaffar. http://www.iis.ee.ic.ac.uk/~frank/surp99/article1/amag97