For many years people have been using C or C++ as a starting point for developing their hardware and systems. This is because these languages are widely known, quick to write, and give an executable specification, which allows very fast simulation. C or C++ versions of standard algorithms are widely available, which allows easy reuse of legacy and publicly available code. For system-level design, they allow hardware and software descriptions to be described in a single framework.

C++ is widely known, quick to write, and gives a fast executable specification.
for (int i = 0; i < 7; i++)
x[i] = a[i] * b[i];
y[i] = k[i] * x[i];
result += y[i];

However there have been two drawbacks. Firstly, C and C++ don't support the description of some important hardware concepts, such as timing and concurrency. This has led to the development of proprietary C-like languages, which haven't been popular because they tied the user to a single software supplier. Secondly, C and C++ have to be translated manually to a hardware description language, such as VHDL or Verilog, for hardware implementation. This step requires specialist resources, is time-consuming, and often introduces errors that are difficult to find.

The first of these problems was solved by the development of SystemC, which is now a widely-accepted industry standard that adds hardware concepts to C++.

The second of these problems is solved by the development of tools like SystemCrafter SC, which allows SystemC descriptions to be automatically translated to VHDL and Verilog.


Home Technology Products Purchase Support FAQ News Contact About Privacy

© SystemCrafter Ltd 2004-2008
All Rights Reserved