• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. Verification
  3. C-to-Silicon Compiler: A High Level and a Low Level Synthesis…
TeamESL
TeamESL

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
High-Level Synthesis
CTOS
TLM
high-level synthesis adoption
RTL
System Design and Verification
TLM 2.0
C-to-Silicon
SystemC
C-to-Silicon Compiler
ESL
architect

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

3 Apr 2009 • 1 minute read

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.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information