Uncore Components are an important part of the core system that may not be directly part of the core but are used to provide functionality that is critical to the developer ecosystem.
Debug module is the bare minimum, providing breakpoints functionality and a Trace module offers run time execution analysis in detail.
Debug & Trace functionality has become extremely critical to software programmers to allow them insights into the core functionality. This allows programmers to fix bugs in their code, examine memory and send out code execution paths to the debugger.
Verifying Debug Module RTL is a tricky job meant to provide a verification mechanism for the software developer.
Our customer requested Verification of Uncore Debug & Trace module components regardless of the integrated core configuration.
Uncore Verification is very different from verification of the core infrastructure. The main difference being, the ability to verify the Debug and Trace modules with a multitude of core configurations in addition to external input triggers coming from outside the core complex itself.
For a world class leading design center client meeting their requirements was a unique challenge, with a challenging time frame. Apart from pure verification of the contemporary infrastructure, the testbench also required some new changes and development, in tandem with the RTL designers adding in new features for every quarterly release.
Our team quickly developed the expertise needed to achieve all of this in record time and was able to deliver on all key targets due to a solid verification plan and the keen ability to learn on part of the engineers. Consistently delivering on the goals with a collaborative task management system allowed the team to communicate effectively across different time zones while working remotely, accelerating the ramp up time as well delivering feedback on progress for the verification plan. A solid background in version control systems as well as previous experience with open source tools used by the customer was also essential in making sure the project was timely completed for each release. Each quarter we were able to complete tasks well in advance of the requirement and were able to provide the customer suggestions for further improvements as well.