Quantcast
Channel: Cadence Digital Implementation Blogs
Viewing all articles
Browse latest Browse all 335

Functional Correctness—The Forgotten Benefit of HLS

$
0
0

I like to ask questions, because you learn a lot that way. In fact, I did a survey earlier this year and learned that high-level synthesis users’ experiences are exceeding the non-users’ expectations, and that HLS is being used for a wider variety of design types than even I knew. Recently I asked one of my favorite questions, and got an answer I truly didn’t expect.

My favorite question to ask new HLS users: “What made you decide to use HLS?”

The answer is usually one of the big three:

  1. Productivity
  2. Productivity
  3. Or Productivity

And for good reason. Productivity is the most well-understood and most cited advantage of HLS, but it isn’t the only one. And maybe it is not even the most valuable one, as this user’s answer highlighted.

I got an answer that I don’t hear often: functional correctness. As you can imagine, this piqued my curiosity, so more questions ensued. I’ll spare you the whole conversation, so let me summarize.

Their previous project just taped out… late. The problem was that they found a functional flaw just before the originally scheduled tapeout. (Luckily, I might add. Finding a problem after the tapeout would have been much worse!) The testing exposed a flaw in a corner case, with the RTL diverging from the specification in a significant way.

Which, in the end, is what steered them towards HLS. They had a C model for at least part of the sub-system to help with the specification work. But then spec was “thrown over the wall” to the design team, who then designed the RTL from scratch.

Had they used HLS, they would have caught the issue much earlier, probably by testing the C model. Even if the corner case was only detectable in RTL (I do not know the exact nature of the corner case), the RTL would have been available much sooner, and the bug would have been much easier to fix. It would have been a trivial fix in the C code, I’m told, but it was a nightmare to figure out how to make a minimal change in the RTL.

To be clear, they did make the change, and they did tape out. But it was late and costly. So now they are using HLS to avoid a similar situation in the future.

If you are not currently an HLS user, you may wonder “how does HLS help verification?” or even “what is the verification flow with HLS?” (In fact, email me to let me know your questions!) I’ll explain that in this a future blog, but suffice it to say that the forgotten benefit of HLS, functional correctness, caused this team to join the ranks of HLS users.

Now I’m looking forward to the next answer I get to my most common question!

Speaking of looking forward… like much of the world, the Pursley household is anxiously awaiting the Justice League and especially Star Wars: The Last Jedi movies. Ahead of those, we did see Thor: Ragnarok, and our teenage movie critic gave it 8 out of 10 stars. Personally, I believe it was worthy of 9 stars, but I defer to his expertise.

What do you find, or expect, to be the biggest advantage of HLS in your flow? Let me know by dropping me an email.

Information about Stratus, Cadence's HLS tool, are on the Stratus Product Page.


Viewing all articles
Browse latest Browse all 335

Trending Articles