( ESNUG 486 Item 7 ) -------------------------------------------- [07/30/10]

Subject: ( ESNUG 479 #4 ) "How many companies are actually using HLS?"

> We recently ran a blind worldwide survey on what companies see as their
> primary reasons for using ANSI-C/C++/SystemC-to-RTL synthesis.  A total
> of 820 engineers responded ... Almost 2/3rds (64%) recognized that high
> level synthesis will get to RTL code faster.
>
>     - Shawn McCloud
>       Mentor Graphics                            Wilsonville, OR


From: Shawn McCloud <shawn_mccloud=user domain=mentor hot calm>

Hi again John,

Mentor's Catapult group ran its 2nd annual blind worldwide survey on High 
Level Synthesis (HLS).  This time a total of 1,076 engineers responded.
We found two interesting results to share with your readers.  One on HLS 
adoption and the other on HLS language preferences.  An interesting question
we asked this year was:

    "Does your organization plan to implement High Level Synthesis 
     (SystemC/C/C++ to RTL) in 2010?" 

               No                 : ############ 37%
               Don't know         : ########## 29%
               Yes                : ######## 23%
               Already have HLS   : #### 12%

12 percent of organizations said they had at least initially implemented 
high level synthesis to generate their RTL code.  By the end of 2010, more 
than 1 in 3 design organizations expected to use HLS tools in-house.  It's 
important to note that this is not 1 in 3 engineers, but rather 1 in 3 
"organizations," that say they will be using HLS.  Even so, it's a healthy 
interest! 

There has been a lot of discussion in your forum about HLS languages and 
specifically about C++ vs. SystemC.  But SystemC is based on C++, so the 
real question is the one of abstraction, that is how much information one 
needs to put in the source description to fully specify the behavior and 
meet the design goals in terms of area, performance and power. 

To make an analogy, Verilog is a language supporting multiple abstraction 
levels.  While it was first adopted for gate-level simulation, designers 
eventually migrated to the higher RTL models that abstracted away the 
gate-level timing, and relied on synthesis tools to manage the timing for 
them.  High Level Synthesis improves designer productivity by abstracting 
away specific implementation details.  So we used this survey to focus on 
the question of timing abstraction.  
      
         "What is the best language for high level synthesis?"

         Don't know                          : ########### 33%
         Untimed (ANSI C/C++, SystemC-TLM)   : ########## 30%
         Timed (SystemC-cycle accurate)      : ######## 25%      
         Matlab                              : #### 12%    

This survey shows an interesting fact: 30 percent of designers prefer 
UNTIMED HLS language input, compared with 25% of designers that prefer TIMED
HLS language input.  This makes sense in that both timed and untimed input 
each have a specific purpose in helping to achieve full chip high level 
synthesis.

  - Timed (SystemC-cycle accurate) descriptions are applicable for the 
    kinds of control structures and complex bus interface protocols 
    typically found in SoCs.  In addition, we have observed another 
    pattern from HLS users:

    1. As some designers move up from RTL, cycle-accurate models offer
       an intermediate abstraction they can easily learn and relate to.
    2. The design can put explicit timing in the source and code more 
       details in the model to gain more direct control over the 
       generated result.  In this case, the designer is consciously 
       trading off abstraction for predictability and control. 

  - Untimed (C++, SystemC TLM) descriptions are ideally suited for 
    algorithmic designs, since designers do not have to worry about hard 
    coding clocks, concurrency and timing behavior directly in the source 
    but use HLS to insert this detail for them.  Mentor's customers using 
    untimed descriptions have indicated that there are three main reasons 
    why they prefer the untimed models. 

    1. These untimed models are much easier to verify and maintain 
       because there are much fewer details in the source. 
    2. The untimed models are more generic and can be more easily 
       retargeted to different architectures across design goals and 
       silicon technology. 
    3. There is an enormous available legacy of untimed models.  While 
       most of them may not be immediately synthesizable (for good QoR), 
       it takes designers less effort to get there from legacy models 
       than to develop new cycle-accurate models.

Mentor Graphics' Catapult C synthesis solution supports both pure C++ and 
SystemC, offering a wide choice of modeling and synthesis options.  Users 
can choose the most appropriate abstraction level for their design needs: 
cycle-accurate SystemC, transaction-level SystemC, and purely untimed C++. 
And to help users make the most out of their ESL flow, Catapult tightly 
links to Mentor Graphics' Vista Architect solution for SystemC modeling, 
debug and analysis for a comprehensive ESL design, verification and 
synthesis flow.

Additionally, as we observed in last year's survey (ESNUG 497 #4), when 
people adopt HLS it is first and foremost to reduce the RTL verification 
effort.  This is why HLS tools must be architected from the ground up with 
verification in mind, and this is why Mentor continues to invest R&D on the
link between HLS and verification.  Higher abstraction is obviously one of 
the keys, but it is not the only one.  For instance, we have recently added
C++ code coverage and linting features to Catapult C.  In an ASIC flow you 
wouldn't freeze Verilog code until you reach sufficient coverage. 
Similarly, you don't want to commit to your C++ code if it hasn't been 
thoroughly tested and tagged as clean for synthesis.  Catapult C's generated
RTL will not only match your input C code - it will help you ensure the C 
code you match is correct.  With a well architected HLS methodology, RTL 
verification becomes automatic and predictable.  As Slumdog Billionaire put
it in ESNUG 481 #7: I really like this functionality as it frees up my time
to do actual design.  Doing unit level verification is really as simple as
coding C++.  Once I got the design working, the unit level verification only
took 2 days."

    - Shawn McCloud
      Mentor Graphics                            Wilsonville, OR
Join    Index    Next->Item









   
 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)