Does anyone really care if a design is bug-free? The cost probably would be prohibitive.
It is possible in theory to create a design with no bugs, but it’s impractical, unnecessary, and extremely difficult to prove for bugs you care about.
The problem is intractable because the potential state space is enormous for any practical design. The industry has devised ways to handle this complexity, but each has limitations, makes assumptions, and employs techniques that abstract the problem.
Industry best practices are to try and identify bugs that cause problems and to fix those. Three primary techniques are used:
- Writing directed tests that target particular behaviors, and for which the outcome is known;
- Employing constrained random test pattern generation that attempts to explore behaviors of the design and look for anomalous results; and
- Deploying verification techniques that can prove that certain properties hold true for a design.
It is important to decide the best technique to use for each problem…
To read the full Semiconductor Engineering article by Brian Bailey, click here.