ZVM: Verification methodology for quality
I was looking to improve the quality aspects of a verification solution product. It made me question: What is quality? How to achieve quality? What…
I was looking to improve the quality aspects of a verification solution product. It made me question: What is quality? How to achieve quality? What should be the role of verification methodology in achieving quality?
On the side, I was reading this book “Zen and Art of Motorcycle Maintenance” (ZMM) by Robert Pirsig. This is a book about memoirs of motorcycle ride of father and son. While the author is riding an old motorcycle and one of his friend is riding a brand new BMW motorcycle. This BMW motorcycle at some point during runs into starting problems. Author’s friend is upset about it as he was expecting it to be high quality. That’s when author starts thinking about what is quality.
One of the focus areas for the ZMM book is quality.
Quality according to ZMM is defined as equal part science, art and religion. Really a non-intuitive mix – Isn’t it? Not really let’s see how these pieces fit together in the context of functional verification.
Most the verification methodologies are narrowly focused only on science aspects. If we want to really improve quality a more holistic approach is required. That’s where “ZVM : Zen and art of verification methodology” is born.
Let’s get into each of these aspects see what it means in the context of quality and how it applies in the context of functional verification.
Science
Science according to Webster’s dictionary is “knowledge attained through study or practice, esp. obtained through scientific method concerned with physical world”. Requirement of science in achieving quality is undebatable. Science is based on logical reasoning and adopting systematic scientific methods of analysis. No one can deny its application to verification.
ART
Art is expression or application human creative skill and imagination, producing works to be appreciated primarily for their beauty or emotional power.
Why is Verification called art?
Let’s take test bench for example. Test bench is the abstract models of the real world surrounding design under test (DUT). They are not complete model of reality. They are like movie sets just modeling enough of reality to meet the verification and use case requirements.
What aspects of reality should be modeled, how it needs to be modeled and to what extent needs to be modeled in testbench architecture is art. Its art requiring good understanding of the various verification requirements, verification strategy and verification cycle.
RELIGION
Religion is set of laws designed to sustain human race and uplift the human spirit to achieve the ultimate. It’s pursuit that needs to be followed with great devotion.
I am sure you are wondering how the heck religion fits in this scheme for achieving quality. If I ask you to imagine someone who represented epitome of commitment to cause, one of them would surely be religious person. Even when we talk about implementing something with rigor, we refer to it as “let’s do it religiously“.
Verification has religion as well. It demands commitments of magnitude to religious cause to achieve the quality. Commitment towards, no code commits to version control without running check-in regressions. Following the coding guidelines. Writing reusable code. Getting the test working on all configurations. Filing and following up bugs. Every bug, however trivial making sure it makes to bug tracking system. Cleaning up full regressions. Debugging that last failure of seeded regressions. Getting the last bin of that crazy cross coverage hit for coverage convergence.
There is lot of grind involved and unless you have the religious commitment towards it you cannot achieve the desired quality from verification process.
Quality and verification methodology
Verification has evolved along languages from plain vanilla Verilog to object oriented high level verification languages. Verification methodologies have evolved around the promise of quality. Have they delivered us the quality?
My answer is No. We are still far from it. It’s a start. Its a good start and we have to build on this foundation provided by hard work of verification community.
What a verification methodology should do to help achieve the verification quality?
It has to take into account Science, Art and Religion of the Verification. Achieving quality requires a “Holistic approach” by understanding bigger picture of verification, successful verification team compositions and verification project management.
That’s when it occurred to me to truly achieve the quality we need to move beyond the VMM, OVM and UVM to “ZVM”.
ZVM: Verification methodology built on Science, Art and Religion.
Am I using it just for pun? No absolutely not.
Keep calm. Read more on ZVM philosophy here.
What do you think? Does it make sense?