Top Banner
Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006
17

Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

Spec-C, Handel-C, SystemC : A Comparative Study

By: Nikola Rank

13 March 2006

Page 2: 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!

Page 3: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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.

Page 4: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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.

Page 5: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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

Page 6: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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

Page 7: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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]

Page 8: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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.

Page 9: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

System C model

Image source: Synthesizable SystemC [2]

Page 10: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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.

Page 11: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

System C design flow

Image source: Synthesizable SystemC [2]

Page 12: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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]

Page 13: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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.

Page 14: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

Spec C model

Parallelism State Transition Structural Hierarchy Exception Handling Timing Constraints Synchronization Communication Data Path

Page 15: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

Spec-C design flow

Image source: The SpecC Methodology[4]

Page 16: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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.

Page 17: Spec-C, Handel-C, SystemC : A Comparative Study By: Nikola Rank 13 March 2006.

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