I recall in the not too distant past a particular floating point bug that took the world by storm. It brought to the common person an acute awareness about how hardware bugs impact their daily life.
For me, it struck home when even my mother, who lived her life in technical obscurity, worried about how the floating point bug might prevent her from using her computer. As the world scrambled to fix the bug, it brought to light the necessity of hardware manufacturers and tool vendors to provide better solutions that ensure that their new hardware worked correctly.
Enter the need for faster simulation, assertion-based verification, smarter testbenches, better verification methodology and a slew of supporting products and technology.
It was simple economics. Manufacturers found it crucial to expose and fix these bugs before they found their way into chips and millions of consumer products. That's because re-engineering and fixing all the broken hardware is expensive, time consuming and a public relations nightmare.
Fast forward 16 years and read today's headlines. Massive automotive recalls bringing an even greater public awareness and anxiety about software problems affecting mission-critical systems. Only this time it's not a program on your computer that can fail, but systems that ensure your family's safety!
Software? Mission Critical to the average person? How can this be? Software was something that didn't have to be correct the first time. You could always patch the software and get it out to consumers with a new download or service pack update.
Things have certainly changed, haven't they? In the case of cars, what once was in the domain of mechanical engineers to ensure the safety and integrity of critical systems has now transitioned into the domain of embedded processors and software. Do you think patching all the software in millions of cars worldwide will be easy?
Again, using my mother as a litmus test, she certainly understands the magnitude of the recent auto recalls and the danger of braking systems that could fail. Of course, this doesn't just apply only to the automotive industry. More and more of what the average person depends upon and relies on is increasingly controlled by software running on embedded processors.