Please raise your hand, if you have ever felt like putting a fork in your left eye due to debugging issues. Below is an attempt to ensure that feeling never comes back, and pave way for you to become a Debug Ninja!
So Why is Mastering Debugging Important Today?
In earlier times, debugging was something one did, but no one gave it much attention. Data was manageable, and developers didn't pay much attention on making the process too efficient. Over the past few years, however, communication protocols have become more complex. This is true for interface protocols such as PCIE and USB as well as for bus protocols such as AXI, PLB etc. Today, RTL design and verification engineers have to sift through gigabytes of data in the form of log files and waveform dumps in order to analyze and debug a design.
By some estimates, 70% of IP design time, now-a-days, is spent on verification. A large chunk of that time (~30-40%) is spent in debugging test case failures.