The common imperative of XtremeEDA engineers is to grow our collective skill set — especially between client engagements.
Generally speaking, XtremeEDA engineers are free to manage their own learning and development path in a way that suits both them and potential clients. Sometimes that means individuals or small teams working toward a particular goal. Other times we work in larger teams toward something more substantial. Here are a few examples of how our engineering staff builds our skill set to prepare for future client engagements.
XtremeEDA Multi-processor Platform (XMPP) Development
It’s very important to XtremeEDA to build and maintain cutting edge DV and design skills. Aside from project management responsibilities with normal client work (which may vary for every engineer), our management team spends considerable time learning about each individual team member. In addition to fostering team spirit and supportive work relationships, we give people a chance to work together on team projects. When an engineer joins our company or is between client engagements, unless there is specific goal for that engineer to research independently, they will typically join an ongoing internal project.
At the moment, our XtremeEDA internal project is a full blown SOC design from scratch. It’s called the XtremeEDA Multi-processor Platform (XMPP), a completely configurable multi-processor platform and UVM-based DV environment. Our intent is to expose our team members to pieces of the development effort that encourages their growth. One focus area is ARM/AMBA experience since our clients frequently ask for engineers with ARM experience. By creating the development platform, we can provide experience for those who do not yet have it, along with mentorship opportunities for those who do. Working on the platform DV environment helps build cutting-edge UVM skills for our DV engineers and exposes them to new methodologies.
The experience of working on our platform has been well received by those exposed to the effort, and the project allows us to build the camaraderie that extends beyond the time spent on that project — even throughout our remote geographical areas. As we continue to grow the project, we plan to demonstrate a platform that treats diverse types of processors and subsystems in a homogenous manner. This allows for rapid configuration and deployment of any mix and number of processor core IPs or models. These include mixing the entire ARM CPU family and RISC-V architecture. Our engineers are then equipped with the hands-on development experience and the ability to apply the techniques to our client projects.
Open-source Development and SVUnit
Back in 2009, two former XtremeEDA colleagues, Bryan Morris and Rob Saxe, wrote a conference paper to introduce unit testing to hardware developers. As part of that paper, they built a draft framework called SVUnit to demonstrate the technique. Eight years later, SVUnit has grown to become well known and well used within the industry by design and verification engineers alike.
Working on SVUnit has been a part time job for me ever since 2011 when I took up the torch from Bryan and Rob. I’ve put a lot of hours into polishing SVUnit, packaging and releasing it as a legitimate open-source framework, and now supporting it for an entire community of developers.
Most of the work I put into SVUnit happened here at XtremeEDA between client engagements. Spending my time doing open-source development has been rewarding for a number of reasons. First, it gave me a chance to learn and apply test-driven development, the most valuable technique I’ve learned since becoming an engineer. Next is the experience I’ve gained by releasing an open-source product to the masses. Then there’s the courage and confidence gained through putting myself and my work into the public eye. Finally, there’s the people and friends I’ve met as a result. Working on SVUnit is what made all of this possible.
Both professionally and personally, using my time at XtremeEDA to focus on SVUnit has helped me grow in ways that I know would not have been possible anywhere else.
Managing Complexity Through Object Oriented Solutions
Most of our internal research is currently dedicated to the XMPP project, an ARM-based general purpose solution for embedded applications. Recent weekly meetings covered UVM register classes, the AHB3 UVC, and verbosity management. Future topics include best practices for tests, configuration objects, and sequence layering.
In today’s ASIC world of ever-shrinking geometries, gate counts keep growing, but schedules remain unchanged. Advances in simulator technology help shrink this gap, but for the verification foot-soldier, it’s all about managing complexity. Opportunities to simplify a DV environment that used to be considered “noise” now add up to a significant tapeout impact. We must take advantage of each and every opportunity to reduce complexity, by using object oriented (OO) solutions wherever possible.
The XMPP team is transitioning from block level to system level testing. Our goal is sending and checking multiple traffic streams between CPUs and peripherals. To that end, we’re fine-tuning sequence APIs and organizing them into layers to make test writing simpler.
Understanding how to take advantage of UVMs built in OO design patterns, and extending them with new patterns, gives us the tools we need to manage complexity. The end result is more knowledgeable engineers and better productivity for our clients.
Preparing for future client engagements is a full-time job for XtremeEDA engineering staff. Whether it’s in teams or as individuals, in public or on our own, we’re working hard with the latest technologies so we hit the ground running wherever we might end up next!
A Template For Evaluating Portable StimulusSeptember 24, 2018
by Neil Johnson, Chief Technologist I’ve written a lot about portable stimulus over the last year, all of it being theoretical. […]Learn More
UVM Reuse: How to use a non-UVM VIP in a UVM environmentAugust 14, 2018
by Ramprasad Chandrasekaran, Principal Verification Consultant What are we talking about? We as a verification community like to talk about creating […]Learn More
Video: Building An Integrated Verification FlowJuly 31, 2018
by Neil Johnson, Chief Technologist DAC2018 has come and gone. It was a great conference as usual with lots of […]Learn More
UVM Gotchas: UVM Register Layer Prediction ModesJuly 17, 2018
by Robin Hotchkiss, Senior Verification Consultant What are we talking about? This post talks about the difference between implicit and […]Learn More