Another vote for support of software development, verification and integration.
We received the following letter from Mike Mintz of Trusster (www.trusster.com).
Hi Gabe et al.,
Great to see the DACeZine! The articles and layout look good.
I am also glad to see Richard as a contributor. I do, however, have an issue with “intelligent testbenches.” I do not believe that the goal should be tools that help assemble, run, and show coverage of testbenches. Our goal should be to get software running on the hardware/system as soon as possible. Having the software run as intended is often more important than a bug free design.
Our EDA industry likes to stop at the chip/board delivery stage. Yet, a product is a combination of software and hardware. And programming is the critical path. We must facilitate the product, not just the verification.
The software industry has been trying to shorten its schedule and their efforts seem to parallel this intelligent testbench concept. It is called “programming by intention” and the software industry has been trying to achieve this programming model for years. I personally believe we will never achieve this goal. As Bjarne Stroustrup said, “Programming is a human activity. Forget that and all is lost.” With due respect to Ruby on Rails, the software industry has not achieved “intention based programming” and we in the EDA industry should learn from that.
So what to do? As Frederick Brooks said, “There is no silver bullet.” The answer lies somewhere in the connection between software and hardware simulation/emulation and, even more importantly, the connection between the hardware and software teams.
Mike Mintz, Trusster (www.trusster.com)
Thanks for writing. You are correct, there is no silver bullet and engineers cannot abdicate their responsibility to the tools. Professional creativity is at the root of every good and robust design and without it we cannot produce good products. It is also true that when we are talking about verification, we cannot depend on just one product or one method. Today's designs are complicated, and mostly consist of heterogeneous blocks of hardware and software. Engineers must have the choice of methods and tools that best apply to specific portions of the design, including the entire system. As you can read in the article by Gary Smith the lack of tools to support software development and debugging is founded on financial arguments. What is needed, as pointed out by both Richard and Gary in this issue, is the understanding that a specific segment of the software industry needs new tools solving new problems in multicore geometries, and hardware software integration and debug in a highly parallel execution environment. You observe that: "the EDA industry likes to stop at the chip/board delivery stage." Providing advanced and revolutionary tools to support development and verification of highly parallel software blocks is quickly becoming a necessity to achieve this very goal since the software is an integral part of the chips and boards we have supported since our inception as an industry.