The Devil Inside

In a recent blog post, Harry Foster looks at the growing the challenge of design debug. Numbers generally vary when it comes measuring the actual impact of debugging in the project cycle, but they also have one thing in common: they are significant. The post points to two surveys showing that amount of time spent debugging jumped from 42% of the verification cyle in 2003 to 52% in 2007. If verification is the bottleneck of ASIC design flow, then debug is the bottleneck in the bottleneck.

So what do we do to address the issue? Harry suggests that there is no silver bullet for this and advocates for a “multifaced solution“.

But what if instead of trying to simply the debugging the challenge, we aimed to eliminate it?

Preparing Recommendations

If verification and debug has grown to be such a problem these days, it is because of our inability to design correctly to start with. While verification methodologies have greatly evolved with SystemVerilog and OVM, designs are still created with flows, languages and abstractions originally deployed in the early 90’s. RTL design flows are running out of steam, but preserving the status quo in hardware design puts the burden on the verification teams.

If we ambitioned to create bug-free designs, generating them in a correct-by-construction fashion from high-level specifications, the verification task would obviously be made a lot easier. Confirming this trend, 68% of respondents to a recent industry survey ranked “reducing the verification effort” their #1 motivation for adopting high-level synthesis (HLS).

For sure “error is human”, but is this a reason to accept bugs in our designs?

                                        errare humanum est, sed perseverare diabolicum

 And if this topic is of interest, you might be interested in this article: Boosting RTL Verification with High-Level Synthesis

About Thomas Bollaert

imageMy first encounter with HLS, back then behavioural synthesis, dates more than 15 years. Since then my ventures have led me to explore many aspects of the ESL design flow, including HW/SW co-design, architecture exploration and of course, C synthesis. Five years ago, I joined Mentor to develop the Catapult C product line in Europe. Recently, my little family followed me all the way from Paris to Oregon, where I now serve as product marketing manager for Mentor Graphics' high-level synthesis product line. Visit Thomas Bollaert’s Blog

Preparing Recommendations

Comments (↓ Add Your Own)

3 Comments on this Post

Commented on 7:38 PM, Jan 23, 2010
By B.Bemer

Hi Thomas, Nice blog! Your latin quote stands in English for "Error is human, but to persist in the mistake is diabolical". Yes, our flows are imperfect, but once the flaws identified, what kind of devil makes us persist? Excellent question... Is this the reason for the title of this post?

Commented on 1:45 AM, Jan 25, 2010
By Thomas Bollaert

Actually the title directly refers to the song by INXS. It was playing on the radio as I was driving to work... And indeed a bug is really a "devil inside" the design. There is also a line in the song that goes "It's hard to believe we need a place call hell" which I was really tempted to append with "...when you are trying to debug RTL"!

Commented on 5:08 AM, Mar 2, 2011
By DVCon: Wally Rhine’s Keynote « Thomas Bollaert’s Blog

[...] of chip failures were still due to functional problems. The issue as already been discussed on this blog: RTL design is where most errors are being introduced. But can it be a surprise given that RTL [...]

Add Your Comment

Please complete the following information to comment or sign in.

(Your email will not be published)