Functional verification quality
Functional verification quality has big impact on the quality of the design. Quality and functional verification are very closely related. The whole objective of the…
Functional verification quality has big impact on the quality of the design.
Quality and functional verification are very closely related. The whole objective of the functional verification is to build the high quality design. In order to do that all aspects related to functional verification itself should be of high quality.
As a part of ZVM: Verification methodology for quality we have already seen science, art and religion of verification needs to applied together for achieving high quality verification, which in turn increases the chances of achieving high quality design. This is all good but what if, for some reasons process was not followed and now we have quality issues with the functional verification. What to do now?
Here are the series of articles to help restore the quality of the functional verification. There could be varied level of quality issues and each needs varied application of these generic principles to restore quality. These are generic guidelines to help detect the causes and series of steps to address them. A firm commitment to invest time and resources is required to restore the quality. Quality always comes with its own price tag.
Let’s restore and rejuvenate the quality. Before we do that let’s understand what is quality, what are manifestations of poor quality of functional verification and what are major causes for poor quality in functional verification.
What does quality mean?
According to wikipedia, quality in business, engineering and manufacturing has a pragmatic interpretation as the non-inferiority or superiority of something; it is also defined as fitness for purpose. Quality is perceptual, conditional, and somewhat subjective attribute and may be understood differently by different people.
In the context of functional verification, let’s stick with the definition of quality as “fitness for purpose”. It’s a simple and actionable definition. A high quality ASIC design meets its end application’s functional, performance and power goals. Functional verification process should be capable of achieving that. It should ensure that there are not functional issues preventing ASIC designs fitness for purpose.
A high quality functional verification is a trainer that makes DUT fit for the purpose.
What are the manifestations of poor quality of functional verification?
When the functional verification quality is compromised it manifests in the following three forms depending on the design vendor type:
- ASIC company will see it as failing silicon requiring respins
- IP company will see it as bugs reported by the customers
- VIP company will see instability in the customer regressions due to failures
All these can ultimately cause the loss of business.
Why are we only emphasizing functional verification, Aren’t designers are also responsible for quality? Yes. But bottom line is they rely on the safety net provided by the functional verification for functional issues. Design can afford to be naïve but the functional verification has to be always wise.
What leads to poor functional verification quality?
Functional verification quality is result of the quality of all parts of the functional verification process. Quality in each of these parts is essential for the achieving the overall quality. Both people and process are involved in achieving high quality functional verification.
Successful verification teams are composed of specification expert, verification expert, verification manager, verification engineers and automation experts.
Although it’s possible that multiple roles can be played by single individual but all these roles have to be played and played well. When these roles are not adequately staffed with the right people it can create big impact on the quality.
Apart from inadequate staffing some of other key contributors are lack of single point ownership for the test bench architecture and verification strategy. Experts released too early or in the middle to fill the hole in some other critical project leaving this project half baked.
Functional verification a bigger picture will provide you an overview process of the verification. Process of functional verification is made up for three phases.
They are planning phase, development phase and regression phase. Note that each of the successive phase is dependent on the previous phase. Overall poor quality is varied contribution from poor quality of execution from each of these phases.
Poor quality in planning phase leads to poor verification plans and test bench architecture. This is the seed. This grows into tree as the project progresses and yields bitter fruits. Poor planning phase has big impact on the functional verification quality.
Poor quality testbench architecture is more damaging than poor quality of its implementation. But if the poor quality of implementation continues for long time all around even the good testbench architecture will succumb eventually.
Poor quality in development phase leads to primarily the poorly developed test benches and tests.
Poor quality in regression phase is like spoiling the climax of the verification. If the right things have been done in planning phase and development phase, good news is it is easy recover back from quality lapses in the regression phase. If the planning phase and development phase had poor execution regression phase can become hell. Here we are considering a well executed planning phase and development phase. Poor quality in regression phase leads to primarily poorly exercised test suites an unmet coverage goals.