Home > Community > Blogs > System Design and Verification > c to silicon compiler is a high level and a low level synthesis tools
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the System Design and Verification blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

C-to-Silicon Compiler: A High Level and a Low Level Synthesis Tool

Comments(0)Filed under: System Design and Verification, high-level synthesis adoption, C-to-Silicon Compiler, High-Level Synthesis, ESL, architect, C-to-Silicon, SystemC, RTL, TLM, CTOS, TLM 2.0

Some customers have inquired if C-to-Silicon Compiler (CtoS) is a “Low Level” Synthesis tool. The question is usually based on the fact that SystemC is the input language for CtoS. It is partially correct. In reality, CtoS is both a High and a Low level synthesis tool.

On the High Level side CtoS can accept very high level constructs such as C++ “classes” and “templates”. A parameterized “High Level” description of a hardware block (a templetized class) can be instantiated inside the SystemC module and synthesized by CtoS.

On the other hand, SystemC, in general, and CtoS, in particular, can also accept very Low Level constructs when necessary. For example, a very complex I/O protocol with very specific timing requirements can be specified in SystemC and synthesized into hardware. Not every I/O protocol can be defined at a High Level. Trying to specify complex protocols at a High Level was the failure of the early High Level Synthesis tools.

Additionally, SystemC and CtoS provide other “Low Level” features such as the ability to describe multiple processes and various instances of the same hardware block running concurrently. The “Low Level” communication protocol between these multiple processes can also be specified. This is not possible in a single process C/C++ based design.

In conclusion, what makes CtoS a viable synthesis tool for the design of complete Digital Systems is its ability to synthesize both “High Level” and “Low Level” features described in the same SystemC code. Complete systems cannot be described and synthesized if one stays in the “High Level Only” design paradigm.

This Team ESL posting is provided by Dr. Sergio Ramirez, Sr Staff Product Engineer for the C-to-Silicon Compiler high level synthesis product. Product Engineer for the C-to-Silicon Compiler high level synthesis product.


Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.