What do you say when your little one asks you, “Dad! What do
you do”? Well I said, “I am an engineer”. For his age, he knew who is a driver,
a doctor and a policeman. So the next question was “What does an engineer do”?
I pointed him to different man made stuff around to explain him what all an
engineer does. As an inquisitive kid he wanted to know if I build them all.
That is when I tried to explain different engineering functions building different artifacts. So the question came back as to, “What do you do”? Finally,
I told him that, “I find BUGS in the designs”. The next one was HOW? Given that
he watched The Angry Bird movie recently & loves to play that game so I
picked from there to explain what a verification engineer really does.
Figure 1 : Labeled screenshot of The Angry Birds game |
As in the figure above, the screenshot of the game is called
TESTBENCH for us. The target that is seen on the right is called the DESIGN
UNDER TEST or DUT in short. Our goal is to hammer the DUT with minimum
iterations such that all the BUGS inside it like the pigs above get kicked out.
On the left you see a series of angry birds waiting to take the leap. We refer
to them as the PACKETS or SEQUENCE ITEMS. They are all from the same base class
“angry_birds” i.e. have certain characteristics in common while some different
features in each one so as to ensure we hit the DUT differently. We sequence
these birds (sequence items) in such a way so as to generate different
scenarios to weed out the pigs (bugs). This scenario is called a TEST CASE. The
catapult shown is known as the DRIVER in our testbench. It takes the angry bird
(sequence item) and throws (drives) it on to the DUT at different points known
as INTERFACES of the DUT. Once the angry
bird (sequence item) hits the DUT, there is an inbuilt MONITOR in the game (testbench)
that confirms if the flight taken is useful or not & if it is, how much? If the hit resulted in correct outcome the SCOREBOARD gives a go ahead and this leads to the scores that we get and we call it COVERAGE. The high score is
the maximum coverage achieved with this test case. When we are able to kill all the pigs (here bugs)
hidden in different parts of the DUT, we are all set to move to another screen
i.e. new test case targeting another part of the DUT. Once all tests at a given
level pass, we move to the next level which is a little tougher. We can call it
moving vertically i.e. block to subsystem to SoC/Top OR moving horizontally
within a given scope i.e. more complex test scenarios or stress tests. Usually
when we have passed all levels, by that time another version of the game is
released and we move to that one i.e. next PROJECT.
After explaining it to my son, I felt he would be fascinated
with my work. He thought about it and said, “Dad, so you don’t really work, you
go to office and play”!!!
All I could tell him was, “Become a Verification
Engineer and you can play too at work”!!!
Disclaimer: "The postings on this blog are my own and not necessarily reflects the views of Aricent"
Disclaimer: "The postings on this blog are my own and not necessarily reflects the views of Aricent"
Wow..!!
ReplyDeleteGreat Imagination..!!!
Lovely Analogy Sir.. !!
ReplyDeletesimple n precise
ReplyDeleteCreative analogy and a superb illustration to accompany the article :-) Play at work!!!
ReplyDeleteCould not explain it better! Pretty creative!
ReplyDeletenice one
ReplyDeleteReally nice clamp of verification flow with the game. well written!
ReplyDeletesuperb explanation sir
ReplyDeleteNice mapping !!
ReplyDeletesimple and intuitive way of explanation...
ReplyDeleteGreat post.
ReplyDeleteSatta King