How Good Is Good Enough?

ESL isn’t just about creating new chips. It can be used to justify not doing things the way they’ve always been done.

popularity

By Jon McDonald
I’ve heard a few comments recently questioning how good is good enough. How good does a device have to be before it’s above questioning its capabilities? When designing some new whiz-bang device how do we know when we can stop?

I think most engineers will agree there is always room for improvement. There are additional optimizations, refinements or alternative approaches that may yield a better design, but we just haven’t had the luxury of time to explore these optimizations and design alternatives. And all of this without even mentioning the additional features that can always be added to improve our device.

In engineering we have many competing priorities. Continuous improvement is an oft-quoted mantra. At the same time most engineering organizations are very risk averse. If something hasn’t been done before then no one wants to try it for the first time on their project. Hardware design groups are very good at implementing a given function. The challenge we have is that faithful implementation of a function does not necessarily result in a successful device.

There are many factors affecting our success, some under our control and some not. The RTL implementation process is one of the things squarely under our control, but that’s not enough for today’s devices. The ability to determine whether our RTL implementation is the best is generally beyond the resources available to be applied. Generally we cannot try many different implementations with dramatically different architectures to see what best addresses our goals. We have a well-defined, reasonably predictable process for implementation but it’s just too expensive to radically depart from what we’ve done in the past for a given RTL implementation.

Looking at what’s happening in system-level design, and specifically what is happening with transaction-level modeling, organizations are creating early models of their systems for multiple purposes. Everything from performance analysis to virtual prototyping is being tried at the transaction level. I believe one of the biggest reasons organizations are so interested is that transaction-level design provides the ability to get a better answer to the question, ‘How good is good enough?’

Personally, I don’t believe we will ever top improving our ability to answer that question. ESL is just another step on the path of continuously improving our understanding and ability to predict and quantify the design choices we have before us.

The fun part of this is that we are opening up our ability to question the status quo. Now that we have a way of quantifying our possibilities we can justify the risk associated with a radical new approach by showing what will be gained by the wager. We don’t have to accept an implementation just because we’ve always done it that way. Ultimately we can take our designs that have been good enough in the past and show that they can be much better than we ever expected.

–Jon McDonald is a technical marketing engineer for the design and creation business unit at Mentor Graphics.