Get email delivery of the Cadence blog featured here
With so much system functionality now also controlled by software versus hardware alone, it’s become more critical to debug at both the hardware and software levels. Neeti Bhatnagar, a software engineering group director at Cadence, knows this well. Neeti manages teams that develop embedded software debug technologies along with other technologies such as SystemC, including the Indago Embedded Software Debug App that was unveiled earlier this year.
I recently sat down with Neeti to talk about the challenges and rewards of working in a distributed, cross-functional team, the increasing importance of software-hardware debug in SoC design, and how debug needs to advance as designs grow more complex.
What’s your background?
I have undergraduate and master’s degrees in computer science. My master’s thesis was on compilers, so my first job was at a start-up parallel computing company—I got to implement a cross-linker and was the lead architect for the compiler optimizer for a parallel compiler right out of school! This job was what lead to Cadence. I joined Cadence in 1991 to work on compiler optimization techniques for a VHDL simulator.
Other than a brief 6-month stint in customer support in 1993 to see the world from the other side, I have always been in R&D. I have worked on simulation products and system-level design products for most of my career. In the past decade, I have worked on (and still do) SystemC simulation and debug, helped build our Virtual System Platform from the ground up and, more recently, have been looking at bringing embedded software debug into the RTL verification front.
Software is as much of the design as hardware is. So much of the new functionality is coming through software that the role of embedded software is growing. We need to debug hardware and software interactions and use software for verification.
What are the challenges and rewards of working on a distributed, cross-functional team?
When you have a development team that’s distributed, you have to be calculated about your effort to make the team cohesive. It’s a combination of techniques and deliberate project pairing decisions, and it’s also a part of creating a team culture where people identify less with tasks assigned and more with the group objectives. So, at some point, everyone has done a project with everyone else, then it becomes easier.
In a cross-functional team, everybody has a different motivation or point of view. The challenge is to find the middle ground, to recognize the business priorities, and let the different points of view become the strength of the team.
It’s important that what you do has a strong foundation and you can build on it and layer it. At the end of the day, this approach makes you deliver to business priorities a lot more nimbly. It’s not about doing things perfectly; it’s about doing things that make a difference to Cadence’s bottom line and to our customers.
How do you inspire your team? How does your team inspire you?
Team cohesiveness is an inspiration in both ways. It’s about identifying with the team’s goals, which relate to the product and the business objectives, rather than individual goals. This fosters an environment where everyone works cohesively and helps each other. It enables the bringing together of different approaches to solve problems, which ultimately leads to a better product. It also becomes the reason why people enjoy what they are doing because they like working with each other and solving problems together and are willing to learn from each other.
Looking at embedded software debug, what is the next big challenge for the industry to address as chips become even more complex and process nodes continue to shrink?
It really is about hardware/software debug and verification. As an example, a car update now involves a lot of functionality—such as the way we shift gears or how the car performs an auto stop—that is being controlled by software. So software/hardware interactions are really key in terms of debugging. We have to constantly make this better, deliver more capabilities to pin down root causes. Debug with accuracy and speed in a cohesive, synchronized environment is critical to success, whether it’s a mobile platform or a server or any system.
What about the role of SystemC? How do you see this changing as designs grow larger and more complex?
SystemC has traditionally been used in virtual platforms to model blocks and systems at a higher level of abstraction. A lot of times, that’s used to provide an accurate enough representation of hardware that you can use to run real software for early software bring-up. Now in designs, the abstraction level is getting higher and, with high-level synthesis becoming mainstream, we’re seeing more designs starting out at the SystemC level rather than at RTL. This approach brings more productivity and also increases the role of SystemC.
There's been a lot of discussion in the media and in the industry lately about the scarcity of women in tech, especially in management roles. What are some of your ideas for encouraging more women to pursue careers in tech and, in particular, management roles in tech?
In general, we need more women in tech and we definitely need more in leadership roles. We need to make sure we make an effort to both hire and retain talented women. As you rise through management levels, there’s a need for mentorship. It can be a challenge for women to find these mentoring relationships. There has to be more conscious effort to make sure there are opportunities made available to women who are qualified and have the interest. Here at Cadence, I'm a steering committee member of the Cadence Women's Forum, an internal organization where women come together to share ideas, network, and discuss various challenges related to women in business and tech.
More women role models in the tech fields is a key to getting more women to pursue careers in tech fields. I have a son who just finished high school and I see that many of his peers, girls, are interested in science and pursuing careers in science. I am not sure if this may be unique to the Bay Area. This year, the incoming freshman class at Caltech is 47% women and 53% men. I hope this means that we will see more and more women in tech fields in the coming years.
Outside of work, what are some things that you find interesting and fulfilling?
I like to read and my reading interests are cyclic. My son just started at Caltech, so the last few years, a lot my interests have revolved around helping him get ready for what he wants to do. It’s become a very interesting way of getting me more connected with different areas of technology and to explore a lot of adjacencies, such as what’s happening in medical imaging, microfluidics, diagnostics, and bioengineering. And, of course, being the science fiction fan that I am, this new connection to Caltech has renewed my interest in all things related to JPL [NASA’s Jet Propulsion Laboratory] and space travel.
What is something that you cannot miss doing each day?
I like to run, so I’ll run four to five times a week. It is both meditative and energizing. It gets me ready for the day. I also love to talk to people, to engage with them, so I like to walk around the office to interact with my team.